Computer Science 62
Data Structures and Advanced Programming
Spring 2014

Course Info Syllabus Lectures Assignments Handouts

Course Overview: This course combines work in program design, analysis, and verification with an introduction to the study of data structures that are important in the construction of sophisticated computer programs. We will primarily be using the object-oriented programming language, Java, though later in the course you will learn to develop programs in C++ as well. 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 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.

By the end of this course you should have a good understanding of the object-oriented design, coding, and debugging of programs in Java and C++, 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.

Prerequisite: Computer Science 51 or equivalent.

Time and Place: Mon, Wed, and Fri. 9:00-9:50AM in Edmunds 114

Textbook:

  • Duane Bailey, Java Structures, sqrt(7) edition, 2007.
  • Mark Allen Weiss, C++ for Java Programmers, 2004. Pearson Prentice Hall. (Highly recommended)

Coursework
Your work in this course will fall into several major areas which are described below. All of your coursework should be completed following the guidelines of the Academic Honesty Policy (see below).

Readings:
Readings will be taken from the textbook as well as from provided handouts. It is expected that you come to class with the reading already done. The readings for each class can be found on the assignments page.

Daily Problems:
There will be daily problems assigned from the reading. It is expected that you come to class having done these problems. Although they will not be collected, they may show up on the Friday quizzes and the exams. The daily problems can be found on the assignments page.

Friday Quizzes:
There will be regular Friday in-class quizzes during the first five minutes of class. The purpose of these quizzes is to ensure you are keeping up with the course and to give you practice for the midterm and final exams. Friday quizzes cannot be made up but the two lowest scores will be dropped.

Lab Assignments:
Labs will be held on Wednesday afternoons. The purpose of the lab is to introduce you to new software tools and to prepare you for the weekly programming assignment. Please arrive well prepared for the lab or you will waste your time and ours. Most lab assignments will be submitted at the end of the lab period. Lab attendance is mandatory! Late lab assignments will not be accepted.

Weekly Programming Assignments:
These are separate from the lab assignments. There will be 10 to 12 weekly programming assignments in this course due Sundays at 11:59pm. All assignments will be submitted electronically via the dropbox (which will be explained in lab). Weekly programming assignments may be turned in up to four days late with a penalty of 5% per day late.


Academic Honesty Policy:
The academic honesty policy can be found here. Students are responsible for reading and understanding the academic honesty policy in its entirety.

Grading Breakdown:
Weekly Programming Assignments 40%
Midterm 25%
Final 25%
Labs and Friday Quizzes 10%

Campus Resources:
  1. To request academic accommodations due to a disability, please contact Dean Collins-Eaglin

  2. The Quantitative Skills Center is a new learning center dedicated to supporting quantitative skill development for Pomona students. The QSC offers free group and individual study sessions facilitated by our QSC Fellows. We offer a number of course-specific study sessions, but you can also meet with a Fellow to review specific topics (for example: exponential and logarithmic functions, single and multivariate equations, balancing chemical equations, basic statistical analyses, etc.) used in a wide variety of courses. To find out more details and sign up for a study session, please visit www.pomona.edu/qsc.

  3. The Writing Center (on the ground floor of Smith Campus Center across from the Living Room) offers students free, one-on-one consultations at any stage of the writing process - from generating a thesis and structuring an argument to fine-tuning a draft. We also work with students on all aspects of oral presentations. The Writing Fellows - Pomona students majoring in subjects including Economics, Computer Science, English, and History - will work with you on an assignment from any discipline. Consultations are available by appointment, which you can make online: writing.pomona.edu. The Writing Center also offers drop-in hours Sundays through Thursdays from 8-10pm.

Last modified: Wed Jan 15 15:54:01 PST 2014