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: Friday 2:00pm-4:00pm via Zoom, Tuesday 1:30pm-3:00pm 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)

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

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

* Tuesday, April 09: Nicolas talks about threading * Brooke is out today, so her office hours are canceled * Thursday, April 11: Brooke is teaching remotely again today (link is on Canvas) * While finishing Project 4, please take a few minutes to fill out your group member preferences for project 5 so I can put the groups together early next week. * After you're done with project 4, please fill out the peer/self evaluation on Canvas and reflect on what went right/wrong.

Week 13

Week 14

Week 15

Finals Week