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

  • For grading questions:
    • post an issue to github in your repository and put @fall20-2113/ta in the textbox to notify the teaching team.
    • fill up this form
  • Please fill up this form if you want to use a late pass and open an issue in your repository as well like for any grading question.
  • Check Blackboard for announcements and use Slack for questions and updated office hours.
  • Fill in this form for office hours attendance.

Schedule

Part 1: Introductory C programming Materials Due Dates
Week 1 Mon 8/31 - Lab: Essentials
Wed 9/2 - C0 lecture: Intro
Lab 1 - Due Friday 9/4
Week 2 Mon 9/7 - Labor Day: No Lab
Wed 9/9 - C1 lecture: Memory
C0 - Due Thursday 9/10
Week 3 Mon 9/14 - Lab: C I/O
Wed 9/16 - C2: Funcs/Structs
C1 - Due Thursday 9/17
Lab 2: C I/O - Due Friday 9/18
Week 4 Mon 9/21 - Lab: Valgrind and GDB
Wed 9/23- C3 lecture: Data Structures
C2 - Due Thursday 9/24
Week 5 Mon 9/28 - Lab: Q & A
Wed 9/30 - C4 lecture: Final Notes on C
C3 - Due Thursday 10/1
Week 6 Mon 10/5 - Lab: Midterm review
Wed 10/7 - Lecture: Midterm
Project 1 - posted
 

Part 2: Intermediate Java programming Materials Due Dates
Week 7 Mon 10/12 - Lab: Project 1
Wed 10/14 - Java 1 lecture: OOP
Read HFJ Ch 1-3
Project 1 - Algorithms Due 10/18 by 7PM
Week 8 Mon 10/19 - Lab: Java File I/O
Wed 10/21 - Java 2 lecture: OOP Design
Java 1 lecture: OOP - Due Thursday 10/22
Java File I/O - Due Friday 10/23
Week 9 Mon 10/26 - Lab: Q & A
Wed 10/28 - Java 3 lecture: More OOP
Read: HFJ Ch 4, 5, and 7
Project 1 - C implementation Due 10/29
Week 10 Mon 11/2 - Lab: Continuation Java 3
Wed 11/4 - Java 4 lecture: Abstraction and Interfaces
Project 2 - Announced
Read: HFJ Ch 6 and 8, interfaces and inheritance
Java 3 - Due Thursday 11/5
Project 1 - Java implementation Due Wednesday 11/4

Part 3: Advanced Java Topics Materials Due Dates
Week 11 Mon 11/9 - Lab: Project 2
Wed 11/11 - Java 5 lecture: GUIs
Project 2 - Part 0 Due Monday 11/9
Week 12 Mon 11/16 - Lab: Project 2
Wed 11/18 - Java 5 lecture: GUIs
Project 2 - Part 2 Due Monday 11/30
Week 13 Mon 11/23 - Lab: Project 2
Wed 11/25 - No lecture: TG break
Project 2 - Due Monday 11/23
Week 14 Mon 11/30 - Lab: Project 2
Wed 12/2 - Java 5 - Inner Classes & Java 6 lecture: Files/Networks
Project 3 - announcedRead HFJ Chaps 12, 13, and 15
Week 15 Mon 12/7 - Lab: Q & A
Wed 12/9 Java 7: Multi-Threading
Project 3 - Due 12/16