This page lists the reading assignments and self-test exercises for CS 320. Each reading assignment will be posted at least one week in advance.

Write your answers to the self-test exercises in the Google Doc you created in Assignment 1.

Because we will be using only a limited amount of class time for lectures, it is extremely important that you do the readings and the self-test exercises. Please come to class prepared to discuss the reading and ask questions!

Key to reading assignments:

  • UD is UML Distilled
  • XPE is Extreme Programming Explained
  • HFOO is Head-First Object-Oriented Analysis & Design
Class Readings and Self-Test Exercises
Wed, Jan 18 None (first day of class)
Fri, Jan 20

HFOO, Appendix ii

Lecture 2 notes

Reading self-test questions: answer the following questions in your own words:

  • What is a class?
  • What is an object?
  • From your own personal perspective, how do you feel about object-oriented programming? What do you think the point of it is? (There is no right or wrong answer here.)
  • What is the purpose of UML class diagrams?
Mon, Jan 23

UD, Chapter 2

Lecture 3 notes

Reading self-test questions: answer in your own words:

  • What are the advantages of using an iterative process instead of a waterfall process?
  • In what ways do you think UML (a visual notation for describing the design of software) would be useful in a software development process?
Wed, Jan 25

HFOO, Chapter 1

Reading self-test questions:

  • answer the questions on pages 7, 11, 27, 37
Fri, Jan 27

Git for designers (Note: you can skim sections 4 and 5, "Branching" and "More Useful Tools".)

Self-test exercise: using a computer with cygwin installed (such as any KEC lab computer), start a Cygwin Bash Shell and run the following commands:

cd h:
export EDITOR=nano
git config --global user.email "username@ycp.edu"
git config --global user.name "Your Name"
git clone http://faculty.ycp.edu/~dhovemey/git/Hello_CS320.git
cd Hello_CS320
make
./hello.exe

In the commands above, username is your YCP username, and Your Name is your name.

Next, make some changes to hello.c (which will be in the H:/Hello_CS320 directory. Use make to recompile, then re-run the program. Use git diff to see your changes. Then, use git add -u and git commit to commit your changes. Repeat, so that you commit several versions of the program. In your Google Doc, write about your experience: what are your impressions of using Git? In general, how do you think version control will be useful to your team?

Mon, Jan 30

UD, chapter 9

Self-test exercise: write one use case for your team project in the format described in the chapter. The use case should describe the user's experience in making use of one of the important features of your system.

Wed, Feb 1

HFOO, chapter 2

Self-test exercises: answer the "pencil" problems as you read

Fri, Feb 3 No reading - we will be working on use cases in class
Mon, Feb 6

HFOO, chapter 3

Self-test exercises: answer the "pencil" problems as you read

Wed, Feb 8

HFOO, chapter 4

Self-test exercises: answer the "pencil" problems as you read

Fri, Feb 10 No reading - we will be working on analysis models in class
Wed, Feb 15 Design Principles and Design Patterns pages 1-12 (OCP and LSP).
Fri, Feb 17 Single Responsibility Principle
Mon, Feb 20

XPE Chapters 1-7 (don't worry, the chapters are short)

Self-test exercise: Answer the following question:

  • Which (if any) of the practices described in Chapter 7 do you think your team should employ this semester? Why?
Wed, Feb 22

XPE Chapter 9

  • Which (if any) of the practices described in Chapter 9 do you think your team should employ this semester? Why?