CSCI-C212/A592: Introduction to Software Systems

Spring 2025

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

Instructors: Nazim Ashraf and Joshua Crotts and Muazzam Siddiqui

Locations:

Office hours: TBA

Syllabus: Available in Canvas.

Textbook: Available in Canvas.

Labs

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

Letter Section Time Place Instructors
A............
B............
C............
D............
E............
F............
G............
H............
I............
J............
K............

Course Staff

Name Email Position
Nazim Ashrafnaashr@iu.eduLecturer (section 13201)
Joshua Crottsljcrotts@iu.eduLecturer (section 1693)
Muazzam Siddiquimuazsidd@iu.eduLecturer (section 4773)

Tutoring Hours & Schedule

Schedule

Date Topic Reading Lab Problem Set
Jan 13Intro, Variables, Datatypes§1.1
Jan 15Static Methods & Testing§1.3-4Lab01
Jan 20(MLK Jr. Day)
Jan 22Strings & Conditionals§1.2 and §2.1Lab02PSet1 out
Jan 27Strings & Conditionals cont.§1.2 and §2.1
Jan 29Methods (Helpers & Recursion)§2.2Lab03
Feb 3Loops§2.3
Feb 5Loops cont.§2.3Lab04PSet1 due,
PSet2 out
Feb 10Arrays§3.1
Feb 12ArrayLists§3.2.1 (up to p. ???)Lab05
Feb 17Java Collections Framework§3.2-3
Feb 19More Collections & Generics§3.5-6Lab06PSet2 due,
PSet3 out,
PSet1C due (2/21)
Feb 24Streams§3.4
Feb 26Streams cont.§3.4Lab07
Mar 3Midterm Exam Review
Mar 5Midterm
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
Mar 10Objects & Classes§4.1
Mar 12Objects & Classes cont.§4.1
Mar 17(Spring Break)
Mar 19(Spring Break)
Mar 24Mutation & Aliasing§4.2
Mar 26Mutation & Aliasing cont.§4.2Lab09PSet3C due (10/25)
Mar 31Interfaces§4.3
Apr 2Inheritance§4.4Lab10PSet4 due,
PSet5 out,
PSet6 out
Apr 7Inheritance & Abstract Classes§4.4-5 (up to p. ???)
Apr 9The "ASPL" Interpreter§4.5Lab11
Apr 14Exceptions & I/O§5.1-2
Apr 16Exceptions & I/O cont.§5.1-2Lab12PSet4C due,
PSet7O out
Apr 21Searching & Algorithm Analysis§6.1 & §7.1
Apr 23Sorting & Algorithm Analysis§6.2 & §7.1Lab13PSet5 due,
PSet7O due
Apr 28Concurrency§8.4
Apr 30Final Exam Review
Practice Fall 2023 Final Exam; KEY;
Fall 2023 Final Exam; KEY;
Spring 2024 Final Exam; KEY;
PSet6 due (5/2),
PSet5C due (5/2)
Dec 16Final Exam at 3:00PM--5:00PM in Luddy (IF) 1106.