Carnegie Mellon University

Java Programming Course

Data Structures & Algorithms in Java

Syllabus, Assignments and Grading


This sequence of courses known as Java I, Java II and Java III cover six sequential and tightly integrated semantic units of material. This course, Java III, covers semantic units 5 and 6. The overall objective of each unit is briefly described below. Following that is a more comprehensive list of topics expected to be covered in each unit. Unit 1: Grid City provide a careful introduction to object-oriented thinking and Java programming

Unit 2: Working with numbers

extend the concepts learned in Unit 1 by using numbers in the richer (and more complex) computational environment of today's computers

Unit 3: Working with flows of information

examine programming manipulations for handling characters of information read from the keyboard through the constant flow of information from files and other streams.

Unit 4: Working with lots of objects

expand fundamental programming knowledge by looking at ways to work with lots and lots of instances of the same kind of objects and as well as with many diverse kinds of objects

This course covers Unit 5 and Unit 6:

Unit 5: Working on the cutting edge

explore Java programming of database-back websites and applets.

Unit 6: Working on the network

explore topics in network based programming

Recall, this sequence of courses known as Java I, Java II and Java III cover six sequential and tightly integrated semantic units of material. Above was a quick list of topics covered in each semantic unit. Below is a more detailed list of topic covered in each sematic unit of material. This course, Java II, covers semantic units 3 and 4.

Topics in Unit 1, Grid City, include: Secondary coverage of: searching, sorting or binary tree Topics in Unit 2, Working with numbers, include: Secondary coverage of: examine computer architecture, random number generators.

Topics in Unit 3, Working with flows of information, include: Secondary: text and web search Topics in Unit 4, Working with lots of objects, include: Secondary: sorting, data mining.

This course covers Unit 5 and Unit 6

Topics in Unit 5, Working on the cutting edge, include:

Secondary: data-based backed programs

Topics in Unit 6, Working on the network, include: Secondary: distributed computing


Programming is a learned skill. That means in order for you to master it, you must do it. No one has found a magic implant that can provide you with the knowledge and experience that comes from programming without having you actually spend time programming. Therefore, in practice, progamming courses require a lot of work and time.

In order to help you through the learning process, I have carefully constructed a curriculum I believe provides comprehensive coverage without overwhelming you. In addition, I have split what would have been 3 or 4 assignments into about 10 smaller mini-assignments in order for you to gain experience shortly after being introduced to the material in class. This should improve your ability to master the material on a timely basis.

Grading Policy

Your final grade in this course is based on:

  1. 50% mini-assignments and quizzes
  2. 50% final exam

In addition, there will be lots of extra credit possible. Grades are determined on a flexible, but somewhat absolute scale; basically this means that if you earn the points, you get the grade. Therefore, you are not in relative competition with each other as much as with your own performance. Frankly, it is my sincere desire that you each master this material and earn an A.

Related Course links

Summer 2001 Data Structures & Algorithms in Java []