CS 351: Design of Large Programs

Instructor:

Brooke Chenoweth
Department of Computer Science
Email: bchenoweth@cs.unm.edu (Include course number in a meaningful subject line, please)
Office: FEC 2060
Office Hours: Tuesday 2pm-4pm via Zoom, Friday 1pm-3pm in person, or by appointment

Lectures

Lectures are 9:30 am - 10:45 am TR in Dane Smith Hall 136

Labs

Lab 001 (CRN 43913)

Lab 002 (CRN 43914)

Teaching Assistant

Course Description

This project-oriented course is intended to help students acquire the design and programming skills needed to perform well in professional settings where they are expected to translate customer needs into functioning code. The emphasis is on understanding the complexities and subtleties of object-oriented design and on leveraging off object-oriented programming to deliver large complex programs that are elegant, modular, easy to use, and easy to modify while delivering the expected level of performance. Design and programming concepts are first introduced and illustrated in lectures and later used in the laboratory on a series of projects exhibiting increasing levels of complexity and sophistication. Sequential, concurrent, and distributed design and programming concepts are introduced in this order with the associated projects matching the increase in complexity. Depending on the project, students will be expected to work alone or in small groups. Peer reviews will be an integral part of the laboratory experience.

Syllabus

Handy References and Links

Course Guidelines

Java

Version Control


Lectures and Assignments

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Spring Break

Week 9

Week 10

Week 11

Week 12

Week 13

Week 14

Week 15

Finals Week