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.