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 Chaps 4, 5, 7; Project 1 - Due 10/28
Wed 10/24 Java 3: More OOP Java-3 - Due Thursday 11/1. Pets Quiz Solution
Mon 10/29 Week 10 - Lab: Collections and IntelliJ Read HFJ Chaps 6 and 8, IntelliJ tips
Wed 10/31 Java 4: Abstraction and Interfaces Java-4 - no submission. Pets Quiz Solution
Mon 11/5 Week 11 - Lab Project 2 - Phase 1 due Thursday 11/8
Wed 11/7 Java 5: GUIs  
Mon 11/12 Week 12 - Lab Project 2 - Phase 2 due Sunday 11/18
Wed 11/14 Java 6: Files/Networks  
Mon 11/19 Week 13 - Lab Read HFJ Chaps 12, 13, and 15
Wed 11/21 NO CLASS  
Mon 11/26 Week 14 - Lab  
Wed 11/28 Java 7: Multi-Threading  
Mon 12/3 Week 15 - Lab  
Wed 12/5 Java 8: Semester in Review  
Mon 12/10 Lab Project 3 - Due 12/11

Final Exam: Wednesday, December 12, 2018 5:20pm-7:20pm in TOMP 405.

  • See Java 8 for a list of topics on the exam
    • You should expect a C memory diagram problem – look back at the Midterm study guide to review how to solve these problems!
  • Practice Problems
  • Practice Problem Solutions
  • Pratice Programming Problems (covered in class Java 8)
  • Pratice Programming Problem Solutions
  • You will be provided Java and C reference sheets (you will not be expected to write any C code).
  • You will be provided the sample code included with the practice programming problems.
  • You are allowed to bring a single 8.5x11 double sided sheet of hand written notes
  • Part of your exam will be done using IntelliJ on the lab computers.
    • Ensure that you know your github password!
    • Do not setup your github account to use SSH key access!
    • You are strongly encouraged to test using IntelliJ on a lab computer a day before the final exam to checkout and push a piece of code to GitHub.
  • You are encouraged to arrive at the exam early (around 5:00PM) in order to setup your github repository and verify that IntelliJ is operating correctly. You may not begin the exam until 5:20.
  • The room is reserved until 9PM. Students who need extra time can stay until then.