CSC 062
Data Structures and Advanced Programming


This course couples work on program design, analysis, and verification with an introduction to the study of data structures that 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 the object-oriented programming language, Java. We will see that the object-oriented style of programming is extremely useful in designing large, complex programs and supporting reusable software.

Students will be expected to write a collection of 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.

Equally important is the ability to analyze programs for correctness using big-"O" notation. This will help us evaluate the trade-offs in different choices of algorithms and data structures.

The formal pre-requisite for this course is Pomona CS 52. We also assume that all students enrolled are comfortable writing small to medium-sized programs (< 10 pages of code with several interacting classes) in Java. The knowledge assumed is generally equivalent to that of CSCI 051 as offered at either Pomona or CMC or the Computer Science advanced placement exam. Be aware that neither CS 5 at HMC or CS 30 at Pomona satisfy the prerequisites for this course. In particular, neither teaches the Java skills required for this course. If you have any doubts as to whether your programming experience is sufficient for this course, please see us as soon as possible.

If you have never programmed in Java, check with the instructors for proper placement. As part of likely forthcoming curricular changes in CS, the sections of CS 62 taught in Fall 2018 and beyond will likely not require the knowledge of Java, and Java will be taught in the course. However, all sections taught during the 2017-18 academic year will continue to depend on the knowledge of Java.

By the end of this course you should have a good understanding of object-oriented design, coding and debugging of programs in Java, and have a good understanding of how one might analyze programs for correctness and efficiency. In particular, you will understand the trade-offs involved in selections of different data structures and algorithms to solve computational problems.

This course is a prerequisite for most upper level Computer Science courses. As part of continuing curricular changes in CS, sections of CS 62 will no longer teach C or C++. Instead that material will be taught in CS 105 taught at Pomona. Students should be aware, however, that sections of CS 105 taught at HMC will assume programming background in C. Thus students wishing to take that course at HMC will be required to learn C on their own.

Academic Accommodations

If you are seeking academic accommodations, you must contact your home college’s disability coordinator to establish accommodations. You should plan to meet with your coordinator to discuss appropriate accommodations and may be asked to provide documentation necessary to verify disabilities. Further information is available from the Student Disability Resource Center at CUC.

Use of electronics in the classroom

Laptops, tablets, and cell phones may not be used during lecture without advance permission of the instructor. Several studies (and our personal experience) has shown that these devices are a distraction and interfere with learning. Other studies have shown that taking notes by hand is more effective for learning than taking notes on a computer. We strongly recommend that you print out the lecture notes before class (they should be posted by 8:30 a.m. each class day) and annotate them by hand.

Pomona College prohibits video or voice recording of any lecture or discussion, except in cases that the office of the Dean of Students has granted a student permission according to the College’s Disability Accommodations Policy, or when permission is granted by the instructor. Please see one of the instructors if you wish to record lectures or lab sessions.