Schedule (What happens, When)
CSSE 221 – Fundamentals of Software Development Honors
Fall 2008–2009

Also see the Due Dates and (from the syllabus) the Late (and early) Assignment Policy and guidelines for maintaining Academic Integrity.

 

Week Session Topics Reading Summaries and References DyKnow notebooks Homework Projects
0

0

before Thu Sep 4

Details
  • Install software
  • Read syllabus
Complete Homework 0 before the first class session.
0

1

Thu Sep 4

Details
  • Version control: TortoiseSVN and Subclipse
  • IDE: Eclipse
  • UML class diagrams
  • Object-Oriented Programming (OOP)
  • Review: Object references, Iteration
  • Section 2.10: Object References
  • Section 6.1 through 6.4: Iteration
  • Chapters 1 through 6 (skim)
    Homework 1
In-class:

 

Multi-day:
JavaEyes
1

2

Mon Sep 8

Details
  • Introduce capsule format
  • UML class diagrams
  • Object-Oriented Programming (OOP)
  • Java interfaces
  • Javadoc documentation
  • Using APIs
  • Chapters 1 through 6 (skim)
    Homework 2
1

3

Wed Sep 10

Details
  • Unit testing using JUnit
  • Implementing interfaces: a tool to writing to a specification
  • Using generics
  • Chapters 1 through 6 (skim)
    Homework 3
1

4

Thu Sep 11

Details
  • Using APIs: Sun's and user-defined ones
  • Section 11.1: Reading and Writing Text Files
    Homework 4
2

5

Mon Sep 15

Details
  • Exceptions
  • Example of capsule deliverables
  • Chapter 11: Input/Output and Exception Handling
    Homework 5
In-class: Exceptions

 

Multi-day:
BigRational
2

6

Wed Sep 17

Details
  • UML as a communication tool
  • Writing methods you don't call
  • The this keyword
  • Inheritance
  • Sections 9.1 - 9.2
  • Sections 10.1 - 10.4
    Homework 6
2

7

Thu Sep 18

Details
  • Polymorphism and dynamic binding
  • Section 9.3
    Homework 7
3

8

Mon Sep 22

Details
  • Polymorphism and dynamic binding
  • Arrays and ArrayLists
  • Debugging in Eclipse
  • Chapter 7
    Homework 8
In-class: ArrayAndArrayList

 

Multi-day:
BallWorlds
3

9

Wed Sep 24

Details
  • Implementing Graphical User Interfaces (GUIs) - Swing
  • UML class diagrams
  •  
    Homework 9
3

10

Thu Sep 25

Details
  • Using Swing
  • Event-driven Programming
  • Iterative Enhancement Plans
  • Chapter 8
    Homework 10
In-class: SwingDemo

 

Multi-day:
Fifteen
4

11

Mon Sep 29

Details
  • Adapter classes
  • Nested classes
  •  
    Homework 11
4

12

Wed Oct 1

Details
  • Function objects
  • The Comparator interface
  • Using generic classes
  •  
    Homework 12
In-class: ComparatorDemo

 

Multi-day:
Fifteen
4

13

Thu Oct 2

Details
  • Java WebStart, Applets
  •  
    Homework 13
5

14

Mon Oct 6

Details
  • Iterators
  • The Big-Oh notation
  • Big-Oh analysis: loops
  •  
    Homework 14
5

15

Wed Oct 8

Details
  • The Java Collection hierarchy
  • Choosing data structures based on efficiency
  • Big-Oh analysis: sequential lists, linked lists
  •  
    Homework 15
5

16

Thu Oct 9

Details
  • Implementing linked lists
  • Recursion on recursive data structures
  • Trees
  •  
    Homework 16
6

17

Mon Oct 13

Details
  • Implementing linked lists
  • Recursion on recursive data structures
  •  
    Homework 17
6

EXAM
Mon Oct 13

Details
  • Written Exam 1:
    Sequential, linked and recursive data structures; Choosing appropriate data structures and algorithms on them; and Big-Oh analysis
  • 1 hour EVENING EXAM, 7 - 8 p.m., in G-310
  • You may start as early as 6 p.m. & stay as late as 9 p.m.
6

18

Wed Oct 15

Details
  • Project workday, attendance is optional
Homework 18
6

--

Thu Oct 16

Fall break, no class            
7

19

Mon Oct 20

Details
  • Project management: Scrum, standup meetings
  • Recursive algorithms
  • Tail recursion and Memory tables
  •  
    Homework 19
7

20

Wed Oct 22

Details
  •  
    Homework 20
7

21

Thu Oct 23

Details
  • Advanced GUI topics
  • File input/output
  •  
    Homework 21
8

22

Mon Oct 27

Details
  • Algorithms for searching and their efficiency
  • The Java Collection hierarchy: Algorithms and data structures for searching
  •  
    Homework 22
8

23

Wed Oct 29

Details
  • Algorithms for sorting and their efficiency: insertion sort, selection sort
  • The Java Collection hierarchy: Algorithms and data structures for sorting
  •  
    Homework 23
8

24

Thu Oct 30

Details
  • More algorithms for sorting and their efficiency: mergesort, quicksort
  • Lower bound on sorting; linear-time sorting algorithms
  •  
    Homework 24
9

25

Mon Nov 3

Details
  • C for Java Programmers
  • C: Compiling
  • C: Expressions
  • C: Statements, including branching and iteration
  • C: Functions, writing and calling
  • C: Arrays
  • C: Pointers and call by reference
  • C: Input and output
  •  
    Homework 25
9

26

Wed Nov 5

Details
  • C: Arrays and Pointer arithmetic
  • C: Pointers and memory allocation
  •  
    NO Homework 26
9

EXAM
Wed Nov 5

Details
  • Written Exam 2:
    Recursion ; Choosing appropriate data structures and algorithms on them; and Big-Oh analysis
  • 1 hour EVENING EXAM, 8 - 9 p.m.
  • You may start as early as 7:15 p.m. & stay as late as 10 p.m.
9

27

Thu Nov 6

Details
  • C: Pointers and memory allocation, continued
  • C: File input/output
  •  
    NO Homework 27
10

28

Mon Nov 10

Details
  • C: Strings
  • C: String library functions
  •  
    Homework 28
10

29

Wed Nov 12

Details
  • C: Structures
  • Implementing linked lists in C
  •  
    Homework 29
10

30

Thu Nov 13

Details
  • Implementing trees in C
  • Course evaluations
  • Written Exam 3: Compare and contrast C and Java
  •  
Homework 30  
11

31

Tue Nov 18

Details
  • Final Exam (optional), Tuesday November 18, 6 p.m., Olin 257