CS 136:
Data Structures and Advanced Programming

Spring, 1997

This course couples work on program design, analysis, and verification with an introduction to the study of data structures which are important in the construction of sophisticated computer programs. Because we will be interested in studying more modern techniques for designing and implementing efficient computer programs, we will be using a new object-oriented programming language, Java which is likely to become the most popular programming language. We will find that the object-oriented style of programming is extremely useful in designing large, complex programs and supporting reusable software.

We will use the Metrowerks Java compilers on the Power Mac 7100 computers available in the Computer Science Macintosh Laboratory in room B28, Bronfman. Students should use these machines when possible. It will also be possible to run our compilers on other Macintoshes on the campus network (though 32MB of memory is recommended). Java compilers are also available on virtually every other computer platform, though if you wish to use a different platform you will be responsible for obtaining and learning how to use the software.

Students will be expected to write several programs, ranging from very short programs to more elaborate systems. Since one of our goals in this course is to teach you how to write large, reliable programs composed from reusable pieces, we will be emphasizing the development of clear, modular programs that are easy to read, debug, verify, analyze, and modify. We will be taking advantage of the fact that Java is supported by most web browsers by writing several programs that can be embedded in web pages.

Workload and Grading:

There will be 6 to 8 programs due, at least one of which will be rather trivial. All programs will be graded on design, documentation and style (40%), correctness (40%), and efficiency (20%). Programs should be turned in electronically by 11:59pm on the date due (though we typically don't impose the grade penalty for a program turned in within an hour of the deadline). There will be a penalty assessed of 3n % for a program which is n days late. Programs will not be accepted more than four days late. It is usually better to turn in a correct program one or two days late than a non-functioning program on time. See the attached Department policy statement on late work.

There will be two in-lab midterm exams, tentatively scheduled for Wednesday, 3/12, and Wednesday, 4/30, plus a scheduled final exam. Homework exercises (non-programming assignments) will be assigned and collected in class periodically and there may be one or two in-class quizzes. The grading will be weighted as follows:

Back to:

  • CS 136 home page
  • Kim Bruce's home page
  • CS Department home page
  • kim@cs.williams.edu