CSC 121: Programming & Problem Solving
Fall, 2007

Tue/Thu, 10:00-11:15 a.m.
Chambers 3234


Outline


Instructor:
Stephen L. Davis; click here for my weekly schedule.

Text:
Robert Sedgewick & Kevin Wayne, Introduction to Programming in Java, Addison Wesley, 2008
Overview:
This is a first course in computer science with emphasis on computer programming. It is intended for students with little or no experience in the subject and for whom prior computer use has not progressed much beyond simple word processing. No prior computer programming experience is expected of students in this course, though you are expected to know your way around a computer keyboard. However, this is a rigorous course that involves problem solving in an open-ended though syntactically restricted environment. The issue is often not just how to solve a particular problem, but how to solve a (parametrized) class of similar problems and to express that solution as a computer program. Math-phobic students looking to satisfy the mathematics core requirement who have difficulty following or constructing a logical sequence of steps will find an easier time of it in a course like MAT 110 (Finite Mathematics) or MAT 118 (Exploring Mathematical Ideas).

We plan to cover most of the material in the first three (of four) chapters in the text according to the plan described in the Schedule Guesstimate below. The first chapter discusses the basic building blocks of programs, the second chapter deals with a modular approach to building and maintaining programs, and the third chapter introduces object-oriented programs.

Evaluation:
We will have regular homework and projects, one take-home writ, two in-class reviews, and a self-scheduled final examination. A rough recipe for the proportions in which these events combine to produce your evaluation is (An explanation of my grading system is available in a web-based memo.)

Class Policies:
The projects, writ, reviews, and final examination are pledged events; you are expected to be vigilant in upholding the Honor Code. In some cases projects may be the result of a collaborative effort of teams of two or three students. In these cases the pledge is a "group pledge," though specific attribution of work on the various components of the project is expected.

The Code of Responsibility prohibits "unauthorized review, transfer, or alteration of information on the computer." Plagiarism is an Honor Code violation.

Homework will be assigned and monitored regularly. Collaboration on homework is encouraged. However, you are responsible for work which bears your name; that is, it is presumed that you understand and can defend any work which you submit. If you have any questions regarding ground rules for individual events, do not hesitate to ask for clarification.

Come to every class meeting and come on time. Missing class deprives both you of a first-hand class experience and your classmates of your particular perspectives. I monitor attendance; missing 20% of class meetings can trigger action to encourage more faithful attendance. In any event, you are responsible for all material discussed in class, whether you are present or absent.

Schedule Guesstimate: (volatile!)
Class Dates Chapter Discussed Event  Section Topic
Aug 28, 30 1.1, 1.2 ..    1.2: Bulit-in Types
Sep 4, 6 1.3 ..  1.3: Conditionals & Loops
Sep 11, 13 1.4 ..  1.4: Arrays
Sep 18, 20 1.5 .. Mid-week Writ  1.5: Input & Output
Sep 25, 27 1.6 ..  1.6: Case Study
Oct 2, 4 2.1 ..  2.1: Static Methods
Oct 9, 11 2.2 Review Review #1  2.2: Libraries & Clients
Oct 16, 18 no class .. Fall Break  
Oct 23, 25 2.3 ..  2.3: Recursion
Oct 30, Nov 1 2.4 ..  2.4: Case Study
Nov 6, 8 .. 3.1  3.1: Data Types
Nov 13, 15 .. Review Review #2  
Nov 20, 22 3.2 no class Thanksgiving  3.2: Creating Data Types
Nov 27, 29 .. 3.3    3.3: Designing Data Types
Dec 4, 6 .. 3.4    3.4: Case Study
Dec 11, 13 debrief Reading Day     
Dec 14--20 Final Examination