Lecture Outline


Part 1

  1. [F Jan 8] Introduction. Computer software from the software creator's perspective. Programming languages for this course.

  2. [M Jan 11] Mathematical introduction. Expressions in a programming language. Integers and operations on integers.

  3. [M Jan 11] Lab 1.

  4. [W Jan 13] Giving things names. Step by step algorithms. Dealing with syntax errors.

  5. [F Jan 15] Defining your own functions. Functions and context.

  6. [M Jan 18] Holiday.

  7. [W Jan 20] Comparisons and boolean values. Solving problems by cases.

  8. [F Jan 22] Functions that yield boolean results. Performing hand simulations with functions.

  9. [M Jan 25] Equations and Recursion.

  10. [M Jan 25] Lab 2.

  11. [W Jan 27] Quiz 1. Review.

  12. [F Jan 29] Checking recursive definitions. Designing recursive function definitions.

  13. [M Feb 1] Characters and Strings.

  14. [M Feb 1] Lab 3.

  15. [W Feb 3] Types.

  16. [F Feb 5] Commands. Programs.

  17. [M Feb 8] Variables. Making decisions with statements. Functions and statements.

  18. [M Feb 8] Lab 4.

  19. [W Feb 10] Procedures. Sanity checking functions.

  20. [F Feb 12] Loops and repetition. Loops for actions.

  21. [M Feb 15] Loops that accumulate.

  22. [M Feb 15] Lab 5.

  23. [W Feb 17] Quiz 2. Review.

  24. [F Feb 19] Loops that search. Using flags.

  25. [M Feb 22] From hand simulation to loops.

  26. [M Feb 22] Lab 6.

  27. [W Feb 24] Infinite loops. Sanity checking loops. Debugging loops. The egoless programmer.

  28. [F Feb 26] Loops inside loops.

  29. [M Mar 1] Creating complete programs. Getting input from the user.

  30. [M Mar 1] Lab 7.

  31. [W Mar 3] Quiz 3.

  32. [F Mar 5] Don't forget recursion. Function contracts. Top-down design


Spring break March 8-12


Part 2

  1. [M Mar 15] Introduction to Java. Variables. Statements.

  2. [M Mar 15] Lab 8.

  3. [W Mar 17] Objects and dot notation. Strings.

  4. [F Mar 19] Functions in Java. Procedures in Java. Output in Java.

  5. [M Mar 22] Java programs. Exceptions and error handling in Java

  6. [M Mar 22] Lab 9.

  7. [W Mar 24] Quiz 4.

  8. [F Mar 26] Input in Java. Using files.

  9. [M Mar 29] Arrays.

  10. [M Mar 29] Lab 10.

  11. [W Mar 31] Searching arrays.

  12. [F Apr 2] Holiday.

  13. [M Apr 5] Sorting arrays.

  14. [M Apr 5] Lab 11.

  15. [W Apr 7] Quiz 5.

  16. [F Apr 9] Efficiency of algorithms.

  17. [M Apr 12] Classes.

  18. [M Apr 12] Lab 12.

  19. [W Apr 14] Continuation of classes.

  20. [F Apr 16] Elementary graphics.

  21. [M Apr 19] Event-driven programming.

  22. [M Apr 19] Lab 13.

  23. [W Apr 21] Quiz 6.

  24. [F Apr 23] Open.

  25. [M Apr 26] Open.

  26. [M Apr 26] Lab 14.


Final exam May 3 11:00-1:30