CS 257: Software Design

Fall 2018

Help

Samples

Class Notes

Week 1

Getting started thinking about software. Also, a few new tools.

Week 1.5

Start learning vim or emacs in a terminal. Every programmer should know how to use one or both of these venerable editors. They're both old, extremely widely available, and very powerful. It takes time to learn them, but it's worth it.

Week 2

Test-driven development (TDD). What makes a good functional interface?

Week 3

More on code quality. HTTP-based APIs.

Week 4

Web application planning; user stories & use cases; git workflows, etc.

Week 5

Mockups, SQL & other database stuff, Flask

Week 6

Midterm break, API implementation, HTML & CSS

Week 7

Web application: HTML, CSS, and & Javascript

Week 8

Usability & interaction design. JavaFX. Design patterns.

Weeks 9, 10

MVC, final project, miscellaneous