Syllabus
Overview
| Course Number | EN.601.425/625 |
|---|---|
| Course Title | Software System Design |
| Term | Fall 2026 |
| Instructor | Dr. Ali Madooei (email: madooei@jhu.edu) |
| Department | Computer Science |
| Level | Upper-Level Undergraduate / Graduate |
| Credit | 3 |
| Location | Homewood Campus, Hodson 213 |
| Instruction Method | In-Person |
Course Description
This course introduces modern software systems design. The focus is on how to design large-scale systems, assess common system design trade-offs, and tackle system design challenges. It covers non-functional requirements, API design, distributed systems concepts, and modern software building blocks (e.g., load balancers, caches, containers, etc.). It also includes case studies of common system design problems, some drawn from interview questions.
Topics include: requirements engineering (stakeholders, functional and non-functional requirements, trade-offs); application architecture (monoliths, layered architecture, service boundaries, microservices); relational data modeling; HTTP and REST API design; single-server capacity and efficiency (caching, indexing, scaling); transactions and concurrency; distributed data (replication, partitioning, sharding); consistency and availability (the CAP theorem); messaging and event-driven systems; and distributed service communication and reliability (RPC, service discovery, observability). The course closes with case studies that put these pieces together into complete system designs.
- Prerequisites [official]:
EN.601.315OREN.601.415OREN.601.615OREN.601.280OREN.601.290OREN.601.340OREN.601.440OREN.601.640OREN.601.421OREN.601.621 - Prerequisites [in plain English]: Experience building web or mobile applications, particularly designing data models for software systems, gained through coursework or relevant work/project experience.
Course Learning Outcomes
Upon successful completion of this course, you should be able to:
- Comprehend the concepts, components, and technology trade-offs involved in architecting a large-scale software system.
- Analyze the requirements and constraints of large-scale software systems, and identify potential scalability and availability issues with various designs.
- Evaluate common system design trade-offs and analyze the implications of different design decisions on reliability, scalability, and maintainability.
- Recognize the complexity of real-world systems behind a seemingly simple system, through case studies.
- Approach and solve system design problems confidently, such as those asked during technical interviews.
- Communicate your design decisions effectively, including the alternatives you considered and why you did not choose them.
These outcomes are aligned with the Computer Science BS Program Student Outcomes (SO1, SO2, SO6).
Lectures
This course is delivered in person on the Homewood Campus, Tuesdays and Thursdays, 12:00 PM – 1:15 PM Eastern, in Hodson 213, from 08/31/2026 through 12/11/2026. All students are expected to attend and actively participate in class activities. Sessions are not recorded (see Approach to Instruction for more on why, and on how lecture time is used).
Readings
All readings are posted online on the course homepage. We call these the “coursebook” for Software System Design. You are expected to read the relevant chapter(s) according to the schedule, including the chapters released for weekend reading (see Approach to Instruction).
Logistics
Please refer to the logistics page for details.
Assessment and Grading
This course is assessed through periodic tests, a final exam, two homework assignments, and class participation.
| Component | Weight |
|---|---|
| Test 1 | 20% |
| Test 2 | 20% |
| Test 3 | 20% |
| Final Exam | 30% |
| Homework 1 | 4% |
| Homework 2 | 4% |
| Class Participation | 2% |
Class participation (2%) is earned by attending lecture and engaging in the in-class activities. There are 27 scheduled lectures this semester. You earn the full 2% by attending 24 of them. The remaining 3 absences are built into the policy precisely so you do not need to explain or document why you missed a lecture, whether illness, travel, interviews, or anything else. So please do not email asking for an excused absence; simply use one of your 3 built-in absences instead.
Homework 1 and Homework 2 (4% each) are two mock system design interviews conducted with a classmate in the second half of the semester; see the Homework page for the format and grading. See the Exams page for the test and final exam format, schedule, and grading policy.
Your course grade is the sum of the components above. Letter grades are subject to the instructor’s evaluation of overall class performance, generally based on the standard scale: 90s → A, 80s → B, 70s → C, 60s → D, below 60 → F; S/U follows the same ranges, with C and above counting as Satisfactory. The cutoff for assigning -/+ to each grade letter is also subject to the instructor’s evaluation of overall class performance.
Academic Integrity
The strength of the university depends on academic and personal integrity. In this course, you must be honest and truthful, abiding by the Computer Science Academic Integrity Policy and Homewood Undergraduate Ethics Policy; please carefully study these resources. In particular, consider the following examples of violations of Academic Integrity:
- Cheating
- Unauthorized collaboration with another individual on assignments, tests, or examinations.
- Studying from an old test or examination whose circulation is prohibited by the faculty member.
- Copying content on an assignment, test, or examination from another individual.
- Use or consultation of unauthorized materials (e.g., notes, books, etc.) on assignments, tests, or examinations.
- Unauthorized discussion of a test or exam during its administration.
- Plagiarism
- Submission of the same or substantially similar work of another person (e.g., an author, a classmate, etc.)
- Facilitating Academic Dishonesty
- Allowing another student to copy from one’s own assignment, test, or examination.
- Making available copies of course materials whose circulation is prohibited (e.g., old assignments, tests, or examinations, etc.)
Please report any violations you witness to your instructor.
Getting Help
Please refer to the logistics page for details on how to get help in this course.
WSE Teaching Policies
The following statements were provided by the Whiting School of Engineering and are incorporated into all WSE course syllabi.
Mental Health Statement
Many students struggle at times with stress and mental health concerns. Johns Hopkins University Mental Health Services has a range of services to support students with their mental health. Beyond clinical services, JHU also has many resources available to support overall student well-being.
For 24/7 behavioral health support, the Johns Hopkins University Behavioral Health Crisis Support Team (BHCST) pairs experienced, compassionate crisis clinicians with specially trained public safety officers on every shift on and around the Homewood campus, seven days a week. The BHCST will provide immediate assistance to those who need it and link individuals in crisis to ongoing support services in the days and weeks that follow. BHCST can be reached directly at 410-516-9355 or by calling Public Safety, 410-516-4600 or 7777, and asking to be connected to a BHCST clinician.
If you have concerns about yourself or another student, please contact:
- For emergencies (threat to self or others): Public Safety 410-516-7777 or 911
- For 24/7 mental health support (mobile, access line and virtual): BHCST at 410-516-9355
- For undergraduate students who may benefit from Case Management services (1:1 support, coordination and connection to relevant campus resources): Student Outreach & Support at 410-516-7857 or
studentoutreach@jhu.edu - For KSAS Graduate Students: Jasmine Harris (
harris@jhu.edu), Director of Student Services – Graduate and Postdoctoral Affairs - For WSE Graduate Students: Megan Barrett (
mmcgui15@jh.edu), Assistant Dean for Engineering Student Affairs
Students with Disabilities – Accommodations and Accessibility
Johns Hopkins University is committed to providing welcoming, equitable, and accessible educational experiences for all students. If disability accommodations are needed for this course, students should request accommodations through Student Disability Services (SDS) as early as possible to provide time for effective communication and arrangements.
For further information about this process, please refer to the SDS Website.
Inclusivity
The following statement was provided by the Homewood Council on Inclusive Excellence and is incorporated into all WSE course syllabi.
Johns Hopkins University is committed to creating a classroom environment that values the diversity of experiences and perspectives that each student brings. Everyone deserves to be treated with dignity and respect. Fostering an inclusive climate is important because research and experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. We invite you to help create a welcoming, vibrant and intellectually engaging classroom climate. Note that you should expect to be challenged intellectually by the instructor, the TAs, and your peers, and at times this may feel uncomfortable. Indeed, growth often requires being pushed beyond your comfort zone. However, at no time in this learning process should someone be singled out or treated unequally based on any aspect of their identity (visible or invisible).
If you ever have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to your instructor or the TAs, who will take your communication seriously and seek mutually acceptable resolutions and accommodations. Reporting will never impact your course grade. You may also share concerns with the department chair, the Director of Undergraduate Studies (Joanne Selinski, joanne@cs.jhu.edu), the WSE Associate Dean of Outreach and Belonging (Darlene Saporu, dsaporu1@jhu.edu), the KSAS Assistant Dean for Diversity and Inclusion (Araceli Frias, afrias3@jhu.edu) or the Office of Institutional Equity (oie@jhu.edu).
In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g., sexual harassment).