Introduction to Programming (CPSC 124)
—Hobart & William Smith Colleges, Fall 2014
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.

TOPICS READING NOTES
Week 1
(Sept. 1 - 6)
  • command-line input
  • int & double data types
  • variables & assignment
  • 2.1–2.2
    2.4.1 (opt.)
    4.3.6 (opt.)
  • Lab #1 due on Friday, 09/05
  • new tools: Unix command line; javac and java
  • Week 2
    (Sept. 7 - 13)
  • using library methods
  • boolean & String data types
  • Growing programs: delayed concerns
  • 2.3.1
    3.2
  • HW #1 due on Thursday, 09/11
  • Lab #2 due on Friday, 09/12
  • smaller topics: Integer.parseInt(), Double.parseDouble(), and the Math class
  • Week 3
    (Sept. 14 - 20)
  • conditional Execution (if, if/else)
  • loops (while)
  • Growing programs: Developing program logic
  • 3.2
    3.5.1–3.5.3
    Lab #3 due on Friday, 09/19
    Week 4
    (Sept. 21 - 27)
  • loop patterns
  • interactive I/O, using Java's Scanner class
  • 2.4.6
    3.1–3.3
    3.5.4
    4.5.3 (opt.)
  • HW #2 due on Thursday, 09/25
  • Lab #4 due on Friday, 09/26
  • smaller topics: testing for equality
  • new tools: Java development with Komodo IDE
  • Week 5
    (Sept. 28 - Oct. 4)
  • exception handling
  • for-loops
  • arrays
  • array traversal patterns
  • 3.7.1–3.7.2, 8.3.1–8.3.2
    3.8.1–3.8.3
    7.1–7.2.2
    Lab #5 due on Friday, 10/03
    Week 6
    (Oct. 5 - 11)
  • arrays and aliasing
  • array traversal patterns
  • 3.8.4–3.8.5
  • Exam #1 on 3/6
  • Lab #6 due on Friday, 10/10
  • new tools: DrJava; Unix I/O redirection
  • Week 7
    (Oct. 12 - 18)
  • multi-dimensional arrays
  • batch-style I/O
  • 2.3
    11.2 (opt.)
  • Fall Recess (no class on 10/13)
  • HW #3 due on Friday, 10/17
  • Week 8
    (Oct. 19 - 25)
    Method definition:
  • procedures and functions
  • the return statement
  • method contracts & documentation
  • parameter passing: by value vs reference
  • 4.1–4.4
  • Lab #7 due on Friday, 10/24
  • NOTE: I am away at a conference this week. Class will be taught by Prof. Stina Bridgeman.
  • Week 9
    (Oct. 26 - Nov. 1)
  • Growing programs: abstraction and prototype
  • using Objects: String, Scanner, and files
  • The null value
  • wrapper classes: Integer, Double, Character
  • file I/O
  • 2.3.3
    4.5–4.6
    8.4.1
  • HW #4 due on Thursday, 10/30
  • Lab #8 due on Friday, 10/31
  • Week 10
    (Nov. 2 - 8)
  • objects and classes
  • inheritance & polymorphism
  • encapsulation and information hiding
  • 5.1–5.5
  • HW #5 due on Wednesday, 11/05 (cancelled)
  • Week 11
    (Nov. 9 - 15)
  • this & super
  • interfaces
  • Graphical User Interfaces (GUI)
  • 5.5–5.7
    5.8 (opt.)
    6.1–6.2
  • Lab #9 due on Friday, 11/14
  • HW #6 due on Saturday, 11/15
  • Week 12
    (Nov. 16 - 22)
  • GUI events and event handling
  • GUI layout
  • 6.3–6.4
    6.5–6.7
  • Exam #2 on 11/17
  • new tools: Java development with Eclipse IDE
  • Week 13
    (Nov. 23 - 29)
    GUI programming
  • Monday's class will be in the Gulick 208 lab
  • HW #7 due on Tuesday, 11/25
  • Thanksgiving Recess begins on 11/26
  • Week 14
    (Nov. 30 - Dec. 6)
  • correct and robust programs
  • unit testing
  • 8.1–8.4
  • Final Project proposals due on Monday, 12/01
  • Lab #10 due on Friday, 12/05
  • new tools: JUnit
  • Week 15
    (Dec. 7 - 12)
    open topic: choices include further GUI techniques, Java's lambda construct, searching & sorting, and network programming, and concurrency
  • HW #8 due on Thursday, 12/11
  • LAB: project work
  • Last class day is Friday, 12/12
  • Finals Week Presentation of final projects on Thursday, December 18, 8:30 - 11:30 am.

    John H. E. Lasseter