UIC CS 342 Software Design  

Spring 2017 Syllabus      

G.E.Marai http://evl.uic.edu/cs342

This is a tentative schedule and subject to change.

Please access all readings and assignments through your UIC google account, due to distribution restrictions.

Skit Schedule

Date

Topic

Readings

Assignments

Notes

****

INTRO & CLEAN CODE BASICS

****

01/10

Class mechanics;

Event-Driven Programming

 

Class Information

Hw01: Event-driven Programming out

Example code for Hw01

L01 Slides

01/12

Programming style: Naming

Software Projects

Martin Ch1; Martin Ch2

Reading comments due before class

L02 Slides

01/17

Programming style:

Functions and Comments

Refactoring

Martin Ch3; Martin Ch4

Reading comments due before class

L03 Slides

01/19

Programming style: Formatting; Objects & Data structures

E01 Mock Design exercise

Martin Ch5; Martin Ch6

Reading comments due before class

E02: People exercise out

Hw02: Mock Interview and Use Cases out

Hw01 due

E01 Mock Design due in class

L04 Slides

****

REQUIREMENTS

****

01/24

Requirements Engineering; Interviewing clients

Mock Interview

Techniques for Requirements Elicitation (Rogers Interaction Design Ch 7 part 1)

Questioning Techniques (Manktelow et al)

Reading comments due before class

How to Write Requirements

E02 People due

L05 -- see Piazza post on interview structure

01/26

Use Cases

Mock Interview critique

Intro to Java for C/C++ programmers: Types, Operators, Arrays, Strings

Project Idea Brainstorming

Use Cases and Scenaria (Rogers Interaction Design Ch7 part 2)

The Five Why’s Technique

Reading comments due before class

Hw03: Project Proposal out (see L06 slides and Piazza post)

Hw02 Mock Use Cases due

L06_slides

01/31

Intro to Java for C/C++ programmers: Objects and Classes, Modifiers, Constructors

Form teams

Martin Ch7; Martin Ch8

Reading comments due before class

You MUST do option A or option B before class (see L06 slides and Piazza)

L07_slides

02/02

Project Proposals

Martin Ch9; Martin Ch10

Reading comments due before class

Hw03 due

02/07

Intro to Java for C/C++ programmers: Inheritance

Dreaming in Code Ch3/4 Thoughts on OOP

Reading comments due before class

Hw04 out

L08 slides

****

SPECIFICATIONS

****

02/09

Painless Specifications

In class exercise E03: Workbook, Use Cases and Specs

Spolsky Specs part 1, part 2, and part 4

Reading comments due before class

L09 slides

****

OOD PATTERNS and PROJECT MANAGEMENT

****

02/14

Debugging; the Joel Test

OO Design Patterns 1: Strategy

Spolsky 12 steps

Spolsky Debugging

Reading comments due before class

L10_slides

02/16

Scheduling;

OO Design Patterns 2: Observable

Patterson Ch1

Spolsky Evidence-Based Scheduling

Reading comments due before class

E03 due, if not done in class

L11_slides

02/21

E04: Tools, Roles, and Scheduling exercise;

Colors Exercise

Teamwork

Professional Email

Patterson Ch2

Patterson Ch3

Reading comments due before class

Colors due on Piazza (under your E02 profile)

Hw04 due on Mon 02/20 11:59pm

E04 due in class

L12 slides

02/23

CAVE2 tour

Patterson Ch4

Reading comments due before class

Brief Git tutorial

Prof. Marai out (professional duty)

02/28

CAVE2 & 02/23 readings quiz;

OO Design Patterns 3: Factory Method and Abstract Factory

Patterson Ch5

Reading comments due before class

Hw05 Diagrams  out

L13 slides

03/02

OO Design Patterns 4: Singleton

Patterson Ch6

Patterson Ch7

Reading comments due before class

L14 slides

****

TEAMWORK PRACTICE

****

03/07

Diagrams Critique

Patterson Ch8

Patterson Ch9

Reading comments due before class

Hw06 Wizard of Oz and Testing out

Hw05 due

03/09

Diagrams Critique cont’d

Patterson Ch10

Patterson Ch11

Reading comments due before class

03/14

Hw06 Wizard of Oz demos

Pair programming (pdf)

Hw06 due

03/16

Hw06 Wizard of Oz demos cont’d

No Silver Bullet

****

SPRING BREAK

****

****

TESTING

****

03/28

Guest visit (Startup Culture)

What to do when you’re screwed

Reading comments due before class

Hw07 Refactoring and Alpha out

Hw01 redux due the day before

03/30

GUI Design

Brooks’s Law

Mythical Man Month

Reading comments due before class

L15_slides

04/04

Alpha Release

Hw07 due

Alpha Critique Form

04/06

Alpha Release cont’d

Dogfooding and Slippage

****

HANDLING PROBLEMS

****

04/11

Guest visit (5 Big Tech culture)

Google’s Queen of Chaos

Reading comments due before class

04/13

Feedback:

1) Timely, Specific, Balanced. 2) Private, Unassuming, Structured.

AI software learns to make AI software

Reading comments due before class

E05 Feedback exercise out

Feedback Exercise

In class scenario 1: giver

In class scenario 1: receiver

****

CLOSING OUT

*****

04/18

Testing on Job Interviews

Post Mortems

How Computers Can Make Us Crash

Post Mortem Culture (and the Post mortem template)

Martin Ch9 and Ch10 revisited

Reading comments due before class

Hw08 Beta release out

L16_Slides

04/20

Where to Next

The Computer Scientist as a Toolsmith II

Martin Ch7 and Ch8 revisited

Reading comments due before class

L17_Slides

Catalog Descriptions

CS Flowchart

04/25

Beta Release

Peer-evaluation

Hw09 Public demos and Workbook out

Hw08 due

Beta Critique Form

04/27

Public Demos

E05 due

Hw09 due

Exam week

Study for your other exams :-)