CSC 172
Introduction to Algorithms and Data Structures

Spring, 2001

What's this course about?

This course serves several purposes: it's a second course in computer programming; it teaches the Java computer language; and it begins the systematic treatment of algorithms, data structures, and object-oriented programming. First and most simply, you'll get more experience in programming, with larger and more complex programs than you've written before.

Second, some of you studied the C++ language last semester and others studied Scheme. Both groups will learn a new language, Java, which has some similarities to both C++ and Scheme and is particularly useful for network and Web programming. As a bonus, you'll gain perspective from knowing more than one language, and some of the skill (essential to professional programmers) of learning a new language quickly. We'll concentrate on the syntax of the Java language for the first month or so of the semester, and then spend a few weeks on graphics and applets.

Third, we undertake algorithms and data structures as a topic of study in themselves. An algorithm is a method of solving a computational problem, typically embodied in a computer program, but the same algorithm can form the basis of different programs in different languages. A data structure is a way of organizing information (e.g. an array, structure, list, or tree) so that we can find the parts we want easily and efficiently. Object-oriented programming is an approach to programming that has proven extremely useful in writing and modifying large, complex programs; Java, C++, some versions of Scheme, and most other modern programming languages specifically support object-oriented programming. The second half of the semester will concentrate on algorithms and data structures, as implemented in Java in an object-oriented fashion.

For more information, see the syllabus.

Last modified: Wed Jan 3 11:32:41 EST 2001
Stephen Bloch /