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
- post an issue to github in your repository and put
- 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 |