In this course, students will learn how to write object-oriented code using Java. Concepts will focus on object-oriented thinking, software composition, inheritance and polymorphism, and design principles. Programming techniques, assignments and lab exercises will focus on Java, specifically, the language and its core libraries. The course will be conducted lab-style with a mix of lecture, lab assignments and projects. The course will also cover an elementary introduction to the C programming language.

Announcements

Schedule

Date What Happens Materials
Mon 8/27 Week 1 - Lab 1: Essentials Lab 1 - Due Friday 8/31
Wed 8/29 C-0: Intro Intro Slides
Mon 9/3 Week 2 - NO LAB C-0 - Due Tuesday 9/4
Wed 9/5 C-1: Memory  
Mon 9/10 Week 3 - Lab 2: C I/O C-1 - Due Tuesday 9/11, Lab 2 - Due Friday 9/14
Wed 9/12 C-2: Funcs/Structs C-2 - Due Thursday 9/20
Mon 9/17 Week 4 - Lab 3: C Quiz!  
Wed 9/19 C-3: Data Structures C-3 - Due Thursday 9/27
Mon 9/24 Week 5 - Lab: HW Time  
Wed 9/26 C-4: C to Java  
Mon 10/1 Week 6 - Lab: Exam Review  
Wed 10/3 MIDTERM Redo by 11/18
Mon 10/8 Week 7 - NO LAB  
Wed 10/10 Java-1: OOP Java-1 - Due Thursday 10/18
Mon 10/15 Week 8 - Lab: Exam Review Read HFJ Chaps 1-3; Project 1 Algorithm - Due 10/21
Wed 10/17 Java-2: OOP Design  
Mon 10/22 Week 9 - Lab: Java File I/O Read HFJ 4, 5, 7; Project 1 - Due 10/28
Wed 10/24 Java: Collections  
Mon 10/29 Week 10 - Lab  
Wed 10/31 Java: GUIs  
Mon 11/5 Week 11 - Lab  
Wed 11/7 Java: Files/Networks  
Mon 11/12 Week 12 - Lab  
Wed 11/14 Java: Multi-Threading  
Mon 11/19 Week 13 - Lab  
Wed 11/21 NO CLASS  
Mon 11/26 Week 14 - Lab  
Wed 11/28 Java Practice  
Mon 12/3 Week 15 - Lab  
Wed 12/5 Semester in Review  
Mon 12/10 Lab