Introduction to Programming (CPSC 124)
—Hobart & William Smith Colleges, Spring 2015
Calendar
Home | Syllabus | Calendar | Class Notes | Labs and Projects | General Notes

All readings are from David J. Eck, Introduction to Programming Using Java, Seventh Edition.

However, some of our topics are not included in our text! Therefore, be sure, as well, to read the supplementary notes on our topics, posted throughout the semester in the "Class Notes" section of our course site.

LAST MODIFIED: April 11, 2015. The calendar will be updated on occasion to reflect the real pace of the class. The scheduled exams and assignment/lab due dates will remain fixed, however.

TOPICS READING NOTES
Week 1
(Jan. 21 - 24)
  • the model/view/control abstraction
  • command-line input
  • 2.2 ("Variables and the Primitive Types")
    2.4.1 (opt.)
    4.3.6 (opt.)
  • new tools: Unix command line; javac and java
  • No class on Friday, January 23
  • Week 2
    (Jan. 24 - 31)
  • int & double data types
  • variables & assignment
  • Lab #1 due on Monday, 01/25
  • Lab #2 due on Friday, 01/30
  • smaller topics: Integer.parseInt(), Double.parseDouble(), and the Math class
  • Week 3
    (Feb. 1 - 7)
  • boolean data type
  • Growing programs: delayed concerns
  • 2.3.1 ("Built-In Subroutines")
  • Lab #3 due on Friday, 02/06
  • Week 4
    (Feb. 8 - 14)
  • Method usage ("calls")
  • Branches: if, if/else, switch
  • loops: while, for
  • Growing programs: Developing program logic
  • 3.1–3.4 (loops)
    3.5–3.6 (branches)
  • HW #1 due on Thursday, 02/12
  • Lab #4 due on Friday, 02/13
  • Week 5
    (Feb. 15 - 21)
  • String data type
  • loop patterns
  • HW #2 due on Friday, 02/20
  • smaller topics: testing for equality
  • new tools: DrJava; Unix I/O redirection
  • Week 6
    (Feb. 22 - 28)
  • Method definition
  • using Objects: String, Scanner
  • The null value
  • String data
  • interactive and batch I/O: Scanner objects
  • 2.3.3 (String data)
    2.4.6 (Scanner)
    4.1–4.4 ("Subroutines")
    Lab #5 due on Friday, 02/27
    Week 7
    (Mar. 1 - 7)
  • method definitions and contracts
  • Growing programs: abstraction and prototype
  • 4.5.4 (Javadoc)
    4.6 (contracts)
    8.4.1 (assertions)
  • Exam #1 on 03/06
  • Week 8
    (Mar. 8 - 14)
  • arrays
  • 3.8 (arrays)
  • HW #3 due on Thursday, 03/12
  • Lab #6 due on Friday, 03/13
  • Week 9
    (Mar. 15 - 21)

    Spring Break (no classes)

    Week 10
    (Mar. 22 - 28)
  • arrays
  • array traversal patterns
  • 7.1–7.2.2 (array details)
  • Lab #7 due on Friday, 03/27
  • Week 11
    (Mar. 29 - Apr. 4)
  • multidimensional arrays
  • file I/O
  • HW #4 due on Friday, 04/03
  • Week 12
    (Apr. 5 - 11)
  • file I/O
  • objects and classes
  • 5.1–5.5 (class definitions)
    4.7 (instance and static declarations)
  • Lab #8 due on Friday, 04/10
  • Week 13
    (Apr. 12 - 18)
  • objects and classes
  • inheritance & polymorphism
  • encapsulation and information hiding
  • this & super
  • interfaces
  • Graphical User Interfaces (GUI)
  • 5.5–5.7 (interfaces)
    5.8 (nested classes)
    6.1–6.7 (basic GUI design)
  • Lab #9 due on Friday, 04/17
  • Week 14
    (Apr. 19 - 25)
  • GUI events and event handling
  • GUI layout
  • Model/View/Controller pattern
  • exception handling
  • 3.7.1–3.7.2 (exceptions)
    8.1–8.4 (correctness)
    11.2 (opt.)
  • Exam #2 on Monday, 04/20
  • Week 15
    (Apr. 26 - May 2)
    open topic: More on GUI design
  • HW #5 due on Monday, 04/27
  • Week 15 ½
    (May 4)
    wrap up & review
  • HW #6 due on Monday, 05/04
  • Last class day is Monday, 05/04
  • Finals Week Final Exam is Tuesday, May 12, from 8:30AM - 11:30AM

    John H. E. Lasseter