Computer Science 209

Software Development


General Information

Professor Ken Lambert
Office Parmly Hall 406
Phone 458-8809
email lambertk@wlu.edu
Home page http://www.wlu.edu/~lambertk/

Lecture

Office Hours

M/W/F 1:25-2:20   Science 214

M/W/F 9:00-10:00

T/R 1:00-2:00


Brief Overview

This course introduces the concepts, tools, and techniques used in software development. Topics include

Classroom work will consist of lecture and discussion. Written work will consist of several team-based programming projects, homework exercises that employ tools used in software development, and a comprehensive final exam.


Course Objectives

After taking this course, you should be able to


Readings

The book listed below are required. All but the first are available to W&L students via Safari Books. We will have additional readings from journal articles and books on reserve in the Science Library.

Horstmann Object-Oriented Design and Patterns, Second Edition
$59.30 (Amazon)
Horstmann Core Java for the Impatient, 1st Edition
Safari Books
Horstmann Core Java Volume I — Fundamentals,10th Edition
Safari Books
Bell and Beer Introducing GitHub: A Non-Technical Guide, 2nd edition
Safari Books
Beck JUnit Pocket Guide: Quick Look-up and Advice
Safari Books
Burnette Eclipse IDE Pocket Guide: Using the Full-Featured IDE
Safari Books

            
 
 
 

 

 

 

 

 


Grading

The written work for the course will consist of


Attendance and Other Policies


Academic Integrity

Programming projects, homework exercises, and exams should be written individually. Deliberate concealment of sources constitutes plagiarism and will result in a failing grade for the course and a report to the EC. Please familiarize yourself with W&L’s policy on plagiarism at http://library.wlu.edu/research/ref/cite_plag.asp.

 


Final Exam Policy

The final exam for this course will be given during the final exam week. You can take this exam during any of the regularly scheduled exam periods that week. You must supply an exam envelope to the instructor or the department administrative assistant no later than noon on the last day of class. You must specify a provisional day and time on the envelope, which you are free to change on the clipboard provided outside the door of Parmly 407 any time that week. Email or phone requests to reschedule will not be accepted.

The exam will be given in Parmly 405, and you should arrive promptly before the appointed time. If you are more than 15 minutes late, you will have to reschedule your exam. If you are more than 15 minutes late to the last exam period on Friday afternoon, you will receive a grade of 0 on your exam.

Students who have approved academic accommodations must make arrangements to use those accommodations directly with the instructor no later than the last day of class. Students approved for extra time will receive that time at the tail end of the morning exam period or before the beginning of the afternoon exam period (for example, ending at 1:30 PM for a morning exam or beginning at 12:30 PM for an afternoon exam). Students approved for a low-distraction testing location should reserve that space during the last week of classes (following instructions distributed by Director of Disability Resources Lauren Kozak.


Accommodations

Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student’s responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.


Tentative Schedule (caution: this will change!)

Monday Wednesday Friday
Sept 4

Introduction

Basic Java syntax and semantics

 

Sept 11 I/O and numbers

Primitive and reference types

Equality and comparisons

Strings and arrays

 

Classes and methods

Sept 18

Preconditions, postconditions, exceptions, and javadoc

 

Packages

GUIs with BreezySwing

 

Collections and interfaces

 

Sept 25 File processing Inheritance and composition Abstract classes

 

Oct 2

Iterators

 

GUIs with Swing and AWT

 

Graphics and

GUIs

Oct 9

Numeric I/O and handing errors with dialogs

Loading images from files

On to Eclipse!

Reading day
Oct 16

Design patterns: iterator, composite, and decorator

The strategy pattern: comparisons and layouts

The strategy pattern: map, filter, and reduce

Oct 23

The adapter pattern

Specializing by subclassing

The proxy pattern

Oct 30

Linked structures

The singleton pattern I The singleton pattern II
Nov 6 The singleton pattern II

Tools: JUnit

Refactoring and extreme programming
Nov 13

Refactoring and extreme programming

 

Paul Graham essays Paul Graham essays
Nov 27 Project presentations Project presentations

Project presentations

 

Dec 4 Project presentations

Project presentations

Project presentations


Presentations

Video recordings of lectures (Tegrity site)

0-Introduction

1-I/O and Numbers

2-Equality, Comparisons, Types, Strings, and Arrays

3-Java Classes and Methods

4-Error Handling, Exceptions, and Documentation

5-Packages

6-Easy GUIs with BreezySwing

7-Collections and Interfaces

8-File Processing

9-Inheritance and Composition

10-Abstract Classes

11-Iterators

12-GUIs, Model View Controller, and Layouts

13-Graphics and GUIs

14-Numeric Input, Error Handling, and Standard Popup Dialogs

15-Displaying Images from Files

16-On to Eclipse!

17-Design Patterns: Iterator, Composite, and Decorator

18-The Strategy Pattern: Comparisons and Layouts

19-The Strategy Pattern: Map, Filter, and Reduce

20-The Adapter Pattern

21-Specializing by Subclassing

22-The Proxy Pattern

23-The Singleton Pattern: Introduction

24-The Singleton Pattern and Recursive Data

25-Unit Testing

26-Refactoring


Programming Projects


Links

Java for Python Programmers

Java at Oracle's Web Site

Java 8 Documentation

BreezySwing

Paul Graham's Web Site

Working With jar Files

Further Readings in Software Development

Pair Programming

Refactoring

Eclipse Web Site

ArgoUML - A Free UML Authoring Tool

JUnit Web Site

Hillside's Patterns Page

PageTutor's ColorPicker 3