CS 2340 Objects and Design

Summer 2013 Syllabus for Sections A and GR

Last updated on 2013-07-24 at 11:14.

This open-access part of the syllabus contains schedule and general information for my sections. The official CS 2340 for all sections, additional resources and all grade-related information are on T-Square.

There is also a general syllabus here: cs2340-syllabus.pdf

Please read and be sure you fully understand the cs2340-course-policies.html.


Be a TA for Fall 2013. See Recruiting-2013Summer-2013Fall.pdf


Chris Simpkins

CCB 133



Schedule and Office Hours



Highly recommended:


Guaranteed grades will be determined by the usual non-curved cutoffs:

val letterGrade = courseAverage match {
  case avg if avg >= 90 => 'A
  case avg if avg >= 80 => 'B
  case avg if avg >= 70 => 'C
  case avg if avg >= 60 => 'D
  case _ => 'F



Development Tools


  • Text Editors - an intro to text editors for beginning programmers
  • Basic Unix and Emacs - a tutorial introduction to Unix and Emacs that will give you the basic skills you need for this class should you choose to use a unix-like operating system like Ubuntu Linux or Mac OS X
  • Basic Unix and Vim - same as Basic Unix and Emacs but using Vim instead of Emacs
  • Java 7 on Mac OS X - follow this guide if you have a Mac.
  • Tomcat - instructions for installing, running, and developing web apps for Tomcat


Lecture Schedule

This schedule is subject ot change. The further in the future, the less certain the schedule.

Date Topics Readings and Example Code
Tools and Technologies
2013-05-13 Introduction Syllabus

Git Basics

Team Formation

PG 1-3
2013-05-20 Pro Java blackjack
2013-05-22 Web Applications Tomcat, Tomcat Docs
2013-05-27 Memorial Day - No Class  

Web Applications

Problem Domain

Agile Software Development

Agile Software Development

Testing and Refactoring

ASD 1-3

ASD 4-5

2013-06-05 Build Automation Ant
Clean Code and Design

Clean Names

Clean Functions

CC 1-2

CC 3


Clean Comments

Clean Formatting

CC 4

CC 5

M1 due 2013-06-14

Drop Deadline: 2013-06-14


Software Design

Git for Teams

ASD 7, ASD appx A, CRC Cards

PG 4-6

2013-06-19 Demo: Unit Testing and Ant

Ant, Junit

M2 due 2013-06-21

2013-06-24 Team Work Day  
2013-06-26 Guest Lecture M3 due 2013-06-28

Clean Classes

Clean Tests

CC 6,10

CC 9

2013-07-03 Clean Boundaries CC 8, 11-12, ASD appx A
2013-07-08 Midterm Review CC 1-10, ASD 1-4
2013-07-10 Midterm Exam  
Object-Oriented Design
2013-07-15 Team Work Day  
2013-07-17 Object-Oriented Design M4 due 2013-07-17
2013-07-22 Design Patterns M5 due 2013-07-22
2013-07-24 Team Presentations  
2013-07-29 Final Checkstyle, Cobertura