CS 50: Programming Project

Instructor

Professor Peter Cappello - cappello at cs.ucsb.edu - Office Hours

Instruction Schedule

Lecture: Tuesday and Thursday: 12:30 - 1:45 in Psychology 1902.

Discussion: Instead of a customary discussion section, each team meets with the instructor/client once a week for 30 minutes at a mutually agreed upon scheduled time. All team members are expected to be present - individual absences are noted. Meetings begin on the second week, but you may wish to interact with the instructor/client during the first week.

Description

CMPSC 50 is about "programming in the large" - how to design, implement, and test large programs. You learn primarily by doing, spending most of your time contributing to your team project (as opposed to traditional homework assignments). Along the way, this course introduces:

Prerequisites

CMPSCS 20 is the pre-requisite: You are expected to begin the quarter with a level of competency in Java programming equal to that of students who have passed CMPSC 20 at UCSB. CMPSC 50 is intended for Computer Science pre-majors. Other students may enroll, only as space permits.

Why have a lower division course on programming projects?

Course Outcomes

You should:

  1. Learn how to create object designs by applying a set of principles and heuristics. In particular, you have an opportunity to learn about:
    1. object-oriented analysis, design, and programming
    2. design patterns
    3. testing
  2. Experience team programming on a project that is large enough to warrant a team. Being part of a team requires communication skills that are not required of solo programming. It is challenging to construct and maintain a harmonious team where each member is fully productive.
  3. Present your software system to prospective clients or investors.

As an instructor, my goals for you are to:

Topics

Textbook

Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd Ed., Prentice Hall PTR, 2005.

Reference books

If you want only 2 books on Java programming, Effective Java, by Joshua Bloch, should be one of them.

If you want only 2 books on object-oriented programming, Design Patterns, by Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides, should be one of them.

Workload

This is a 4-credit course at UCSB. You are expected to finish this course in 10 weeks, working intelligently for an average of 10 hours/week.

Discussions & Lectures

Please email the instructor regarding what you would like to see in future lectures, so he can better accommodate your wishes.


 cappello@cs.ucsb.edu © Copyright 2010 Peter Cappello                                           2010.04.22