CSCI-C212/A592: Introduction to Software Systems

Fall 2024

This class serves as a second-semester computer science course with the intent of introducing students to the Java programming language and its pragmatics. In particular, we emphasize object-oriented programming, data structures, and algorithms. Topics are covered at an introductory level, with the intent of preparing students for subsequent computer science classes, e.g., data structures, programming languages, operating systems, and beyond. Student work consists of programming problem sets, paired-programming labs, and written exams.

Upon completion of this course, you should be able to:

Meta

Location: Mondays and Wednesdays, 3:00pm–4:15pm, Luddy Hall (IF) 1106

Instructor: Joshua Crotts, Luddy Hall 3025Q

Office hours: Mondays at 11:30AM-1:00PM, Wednesdays at 1:30PM-2:30PM in Luddy Hall (IF) 0121.

Syllabus: Available in Canvas.

Textbook: Available in Canvas.

Labs

There are 5 labs. Each lab section has 1 lab per week:

Letter Section Time Place Instructors
A5959/5952Th 9:10AM-11:05AMBH 118Lillie Donato,
Owen Harris
B5960/5953Th 4:05PM-6:00PMBH 118Tim "Gilmore",
Jack Liang
C5958/5961Th 6:30PM-8:25PMBH 118Peter Perry,
Ransom Wheeler
D6399/6398F 10:20AM-12:15PMGR 102AKashi Kumar,
George Lisec,
Sparsh Nair
E10759F 1:50PM-3:45PMBH 308Kushagra Gupta,
Gautam Hari,
Josh Rudnik

Course Staff

Name Email Position
Joshua Crottsljcrotts@iu.eduLecturer
Lillie Donatomdonato@iu.eduUndergraduate Instructor
Tim "Gilmore"timgilm@iu.eduUndergraduate Instructor
Kushagra Guptakusgupta@iu.eduUndergraduate Instructor
Gautam Hariharig@iu.eduUndergraduate Instructor
Owen Harrisharriowe@iu.eduUndergraduate Instructor
Kashi Kumarpaakumar@iu.eduUndergraduate Instructor
Jack Liangjacklian@iu.eduUndergraduate Instructor
George Lisecglisec@iu.eduUndergraduate Instructor
Sparsh Nairnairspar@iu.eduUndergraduate Instructor
Peter Perrypetperry@iu.eduUndergraduate Instructor
Josh Rudnikjrudnik@iu.eduUndergraduate Instructor
Ransom Wheelerrawheel@iu.eduUndergraduate Instructor

Tutoring Hours & Schedule

Schedule

Date Topic Reading Lab Problem Set
Aug 26Intro, Variables, Datatypes§1.1PSet1 out
Aug 28Static Methods & Testing§1.3-4Lab01
Sep 2(Labor Day)
Sep 4Strings & Conditionals§1.2 and §2.1Lab02
Sep 9Strings & Conditionals cont.§1.2 and §2.1
Sep 11Methods (Helpers & Recursion)§2.2Lab03PSet1 due,
PSet2 out
Sep 16Loops§2.3
Sep 18Loops cont.§2.3Lab04
Sep 23Arrays§3.1
Sep 25ArrayLists§3.2.1 (up to pp. 126)Lab05PSet2 due,
PSet3 out,
PSet1C due (9/27)
Sep 30Java Collections Framework§3.2-3
Oct 2More Collections & Generics§3.5-6Lab06
Oct 7Midterm Exam Review
Oct 9Midterm
Fall 2023 Midterm; KEY;
Spring 2024 Midterm; KEY;
Spring 2024 Makeup Midterm; KEY;
Practice Fall 2024 Midterm; KEY;
Fall 2024 Midterm; KEY;
PSet3 due,
PSet4 out,
PSet2C due
Oct 14Streams§3.4
Oct 16Streams cont.§3.4Lab07
Oct 21Objects & Classes§4.1
Oct 23Objects & Classes cont.§4.1Lab08PSet3C due (10/25)
Oct 28Mutation & Aliasing§4.2
Oct 30Mutation & Aliasing cont.§4.2Lab09
Nov 4Interfaces§4.3
Nov 6Inheritance§4.4Lab10PSet4 due,
PSet5 out,
PSet6 out
Nov 11Inheritance & Abstract Classes§4.4-5 (up to pp. 287)
Nov 13The "ASPL" Interpreter§4.5Lab11
Nov 18Exceptions & I/O§5.1-2
Nov 20Exceptions & I/O cont.§5.1-2Lab12PSet4C due,
PSet7O out
Nov 25(Thanksgiving Break)
Nov 27(Thanksgiving Break)
Dec 2Searching & Algorithm Analysis§6.1 & §7.1
Dec 4Sorting & Algorithm Analysis§6.2 & §7.1Lab13PSet5 due,
PSet7O due
Dec 9Concurrency§8.4
Dec 11Final Exam Review PSet6 due (12/13),
PSet5C due (12/13)
Dec 16Final Exam at 3:00PM--5:00PM in Luddy (IF) 1106.
Practice Fall 2023 Final Exam; KEY;
Fall 2023 Final Exam; KEY;
Spring 2024 Final Exam; KEY;