CS 136:
Data Structures and Advanced Programming
SYLLABUS

Spring 2000

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 modern techniques for designing and implementing efficient computer programs, we will be using the 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 G3 computers available in the Computer Science Macintosh Laboratory in room B34, Bronfman. Students should use these machines when possible. It will also be possible to run our compilers on other Macintoshes on the campus network. For those who prefer to work on Windows machines, a compiler is available with the Core Java text, while Metrowerks also puts out a Windows version of its Java compilers. Programs to be turned in should have a Metrowerks project and have been tested on a Macintosh.

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 approximately 9 programs due. All programs will be graded on design, documentation and style (40%), correctness (40%), and efficiency (20%). Programs should be turned in electronically by 11:59 p.m. 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 and well-documented program one or two days late than a non-functioning or non-documented program on time.

There will be two evening midterm exams, tentatively scheduled for Wednesday, 3/8,and Wednesday, 4/26, plus a scheduled final exam. There will be no labs during exam weeks. 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:

Honor Code: Students may give and receive aid in debugging code and discussing issues related to an assignment, but may not collaborate in designing a program or writing code without the explicit permission of the instructor.

Back to:

  • CS 136 home page
  • Andrea Danyluk's home page
  • CS Department home page
  • andrea@cs.williams.edu