Note: Course web pages and resources are only available during quarters in which class is being taught

Course Description

CS 148 is about "programming in the large" - Students in the class study how to design, implement, and test complete, end-to-end applications and systems. The class instruction emphasizes learning by doing and independent innovation: Students spend most of their time on problems related to their group projects (and less time on traditional homework assignments). Moreover, student teams define their own projects (with help from the instructional staff to ensure success in the class time frame). Along the way, students learn the phases of a software project, how to work well within a team, and the basics of software analysis and design, including user interface principles, tips for satisfying clients, automated system build and testing strategies, UML, version control, and more.


Computer Science 32 with a grade of C or better.

Course Goals

  1. Students gain personal experience with each of the typical phases of a large-scale programming project, including requirements and domain analysis, system design, implementation, and testing.
  2. Students gain experience working in groups to develop a reasonably complex software system.
  3. Students learn object-oriented analysis and design principles and techniques.
  4. Students learn to effectively implement and test object-oriented software systems.

Course Specifics

Class/Section Times: TBD
TAs/LAs/Readers: TBD
Chandra Krintz <>
Office: Department of Computer Science, Henley Hall 2009
Office Hours: TBD

Schedule of Lecture Topics

Grading Policy

Course grades will be calculated according to the following distribution of credit:

Letter grades will be assigned as follows:
≥ 93%    AExceptional scores may earn A+
90-92.9%   A- Scores will be rounded to
the nearest 0.1 percent
87-89.9%   B+
83-86.9%   B
80-82.9%   B-
77-79.9%   C+
73-76.9%   C
70-72.9%   C-
67-69.9%   D+
63-66.9%   D
< 63%   D-Very poor scores may earn F