Design of computer software systems and introduction to programming in the environment of a contemporary operating system. Topics include a modern object-oriented programming language; building and maintaining large projects; and understanding the operating system interface.
Joshua Crotts, Teaching Java: A Test-Driven Approach
| Name | Position | 
|---|---|
| Joshua Crotts | Lecturer (Section 1727) | 
| Muazzam Siddiqui | Lecturer (Sections 4979, 30791) | 
| Dharmik Bhanushali | Lead Associate Instructor | 
| Chaitrali Rajesh Ghanekar | Associate Instructor | 
| Hemeshwar Konduru | Associate Instructor | 
| Shyam Makwana | Associate Instructor | 
| Akshat Pandey | Associate Instructor | 
| Janmejay Purohit | Associate Instructor | 
| Sakshi Sitoot | Associate Instructor | 
| Ratan Tejaswi Vadapalli | Associate Instructor | 
| Mathew Arbuckle | Undergraduate Instructor | 
| Andrew Cheng | Undergraduate Instructor | 
| Kushagra Gupta | Undergraduate Instructor | 
| Gautam Hari | Undergraduate Instructor | 
| Owen Harris | Undergraduate Instructor | 
| Jack Liang | Undergraduate Instructor | 
| Peter Perry | Undergraduate Instructor | 
There are 15 labs. Each lab section has 1 lab per week:
| Letter | Section | Time | Place | Instructors | 
|---|---|---|---|---|
| A | 4709 | Th 9:10AM - 11:05AM | IF 1019 | Andrew Cheng & Hemeshwar Konduru & Ratan Tejaswi Vadapalli | 
| B | 4159 | Th 11:30 AM - 1:25 PM | BH 118 | Dharmik Bhanushali & Andrew Cheng & Ratan Tejaswi Vadapalli | 
| C | 1728 | Th 1:50 PM - 3:45 PM | BH 118 | Dharmik Bhanushali & Akshat Pandey & Sakshi Sitoot | 
| D | 1729 | Th 4:10 PM - 6:05 PM | SB 221 | Chaitrali Ghanekar & Owen Harris | 
| E | 5596 | Th 6:30 PM - 8:25 PM | I 109 | Jack Liang & Shyam Makwana | 
| F | 35638 | F 8:00 AM - 9:55 AM | BH 145 | Akshat Pandey | 
| G | 8256 | F 9:10 AM - 11:05 AM | I 109 | Ratan Tejaswi Vadapalli & Hemeshwar Konduru & Janmejay Purohit | 
| H | 35639 | F 11:10 AM - 1:05 PM | BH 330 | Hemeshwar Konduru & Janmejay Purohit | 
| I | 9756 | F 11:30 AM - 1:25 PM | I 109 | Mathew Arbuckle & Owen Harris | 
| J | 14900 | F 11:30 AM - 1:25 PM | BH 142 | Kushagra Gupta & Shyam Makwana | 
| K | 9757 | F 1:50 PM - 3:45 PM | I 109 | Gautam Hari & Peter Perry | 
| L | 33813 | F 1:50 PM - 3:45 PM | BH 105 | Chaitrali Ghanekar & Sakshi Sitoot | 
| M | 33811 | F 4:10 PM - 6:05 PM | BH 215 | Kushagra Gupta & Ratan Tejaswi Vadapalli | 
| N | 33816 | F 6:30 PM - 8:25 PM | BH 147 | Jack Liang | 
Note: TJ refers to the required textbook for this class.
| Week | Monday | Wednesday | Lab | Assignment | 
|---|---|---|---|---|
| Jan 8 | Reading: Chapter 1 of TJ Intro, Variables, & Datatypes  | Static Methods & Testing | IntelliJ & Setup | |
| Jan 15 | (MLK Jr. Day) | Strings & Conditionals | Basic Programs | A1 Out (1/17) | 
| Jan 22 | Strings & Conditionals cont. | Methods (Helpers & Recursion) | Methods | |
| Jan 29 | Loops | Loops cont. | Loops | A1 Due (1/31), A2 Out (1/31) | 
| Feb 5 | Arrays | ArrayLists | Arrays, ArrayLists | |
| Feb 12 | Java Collections API | More Collections & Generics | Collections & Generics | A2 Due (2/14), A3 Out (2/14),  A1 Corrections Due (2/16)  | 
| Feb 19 | Streams | Streams cont. | Streams & Review | |
| Feb 26 | Midterm Review Fall 2023 Midterm Fall 2023 Midterm Solutions  | 
        Midterm | (No Lab) | A3 Due (2/28), A4 Out (2/28),  A2 Corrections Due (3/1)  | 
| Mar 4 | Objects & Classes | Objects & Classes cont. | Basic OOP | |
| Mar 11 | (Spring Break) | (Spring Break) | (No Lab) | |
| Mar 18 | Mutation & Aliasing | Mutation & Aliasing cont. | More OOP | A3 Corrections Due (03/20) | 
| Mar 25 | Interfaces | Inheritance | Even More OOP | A4 Due (3/27) | 
| Apr 1 | Inheritance & Abstract Classes | The "ASPL" Interpreter | Even Even More OOP | A5 Out (4/3), Mini-Project Out (4/3) | 
| Apr 8 | (Solar Eclipse) | Exceptions & I/O | Exceptions & I/O | A4 Corrections Due (04/10) | 
| Apr 15 | More on Exceptions, Searching, Algorithm Analysis | Sorting & Algorithm Analysis | Sorting & Searching | A5 Due (4/17) | 
| Apr 22 | Concurrency | Final Exam Review Practice Fall 2023 Final Practice Fall 2023 Final Solutions Fall 2023 Final Fall 2023 Final Solutions  | 
            (No Lab) | Mini-Project Due (04/24), A5 Corrections Due (04/26) |