This class is about software design. Software design is about how to effectively structure and organize code so that it is:
- Functional
- Understandable
- Easy to evolve
- Testable
- Reusable
By the end of the course you should have met the following outcomes:
- Learn principles of effective software design
- Understand design patterns and their application
- Learn to effectively document and communicate software designs
- Gain experience with cloud computing
- Apply 1-4 on a significant software project
The content for this course can be accessed using the following links:
- Instructor Information - Instructor contact information
- Syllabus - Course syllabus and policies
- Schedule - Course schedule
- TAs - TA policies and schedule
- Instruction - Pre-class preparation, Lecture slides/files/notes/videos, In-class exercises
- Image Editor - Image Editor assignment specification
- Tweeter - Tweeter project overview and specifications
- Slack - Invitation to course Slack
- AWS Account Info
- Canvas - Take quizzes and view grades
Image Source: Dall-E

