Course Pack SD
Course Pack SD
1.THE SCHEME
The scheme is an overview of work-integrated learning opportunities and gets students out into the real
world. This will give what a course entails.
Tutorial 0 0
Self-Study
Practical
0 0
Tutorial
Theory
Practical
Instruction CIE SEE
delivery Self-study 0 4
Total 3 3 45 0 0 60 50% 50%
Course
Course Lead Mr. Mahesh Kumar Chouhan Coordinat Ms. Anjali Patel
or
Theory Practical
Names Course Mr. Mahesh Kumar Chouhan
Instructors Dr. Kuldeep Singh Kaswan
NA
Ms. Anjali Patel
Mr. Harshvardhan Choudhary
2. COURSE OVERVIEW
The System Design course equips students with the skills to create scalable, efficient, and secure software
systems, addressing both functional and non-functional requirements. With high industry demand,
especially from tech giants and IT service companies in India and abroad, the knowledge gained is crucial
for roles in software architecture, scalability, performance optimization, and security. Major players like
Google, Amazon, TCS, and Infosys heavily invest in system design expertise, making this course
essential for aspiring software professionals.
3. COURSE OBJECTIVE
The course on System Design aims to equip students with a comprehensive understanding of designing
scalable, reliable, and efficient systems. Objectives include distinguishing between functional and non-
functional requirements, understanding the components and life cycle of system design, and mastering
both structured and object-oriented analysis and design. Students will learn about database choices,
sharding, replication, normalization, and denormalization. The course covers high-level design (HLD) and
low-level design (LLD) principles, including scalability, load balancing, caching, content delivery
networks, and message queues. Emphasis is also placed on testing, quality assurance, security measures,
and modern practices like CI/CD, API gateways, and data partitioning techniques.
4. PREREQUISITE COURSE
: for internal circulation 1
only :
COURSEPACK
FRAMEWORK
PO12 Life-long learning: Recognize the need for and have the preparation and ability to engage in independent
and life-long learning in the broadest context of technological change
PSO2 Demonstrate Engineering Practice learned through industry internship and research project to solve live
problems in various domains.
RIUC515T.1 √ √ √
RIUC515T.2 √ √ √
RIUC515T.3 √ √ √ √
RIUC515T.4 √ √ √
PO12
PSO1
PO1
PO7
PSO2
PO3
PO5
PO6
PO8
PO2
PO4
POs
PO10
PO11
PO9
COs
RIUC515T.1 3 2 2 1 3 1 1 1 1
RIUC515T.2 2 2 3 3 2 1
RIUC515T.3 1 2 3 2 3 2 3 1 2 1
RIUC515T.4 1 2 2 2 3 1 1 3 3 2 1
Note: 1-Low, 2-Medium, 3-High \ *first semester first course and first Course Outcome
Self-study
Tutorial
Practical
Tutorial
Practical
Theory
Theory
Total
Total
Total no. of
classes
⚫ TextBook
1. Systems Analysis and Design" by Kenneth E. Kendall and Julie E. Kendall, 9th edition.
2. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems"
by Martin Kleppmann, 1st edition
⚫ ReferenceBooks
1. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph
Johnson, and John Vlissides, 1st Edition
2. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence by Pramod J. Sadalage and
Martin Fowler, 1st Edition
3. Scalability Rules: 50 Principles for Scaling Web Sites" by Martin L. Abbott and Michael T. Fisher, 1st
Edition
⚫ Journals
IEEE Xplore
ACM Digital Library
⚫ Webliography
GeeksforGeeks System Design Tutorial
coursera.org/specializations/system-design
⚫ SWAYAM / NPTEL / MOOCs
NPTEL :: Computer Science and Engineering - System Analysis and Design
6
are aligned on the syllabus so that students are aware of what course outcomes they are required to meet, and how the
program outcomes are supported. Assessment documents should clearly communicate what is being done with the data
results and how it is contributing to the improvement of the program and curriculum.
Designing quality assessment tools or tasks involves multiple considerations if it is to be fit for purpose. The set of
assessments in a course should be planned to provide students with the opportunity to learn as they engage with formative
tasks as well as the opportunity to demonstrate their learning through summative tasks. Encouraging the student through
the use of realistic, authentic experiences is an exciting challenge for the course faculty team, who are responsible for the
review and quality enhancements to assessment practices.
S.No. Problem KL
1 Define functional and non-functional requirements. KL1
2 List the phases of the System Design Life Cycle (SDLC). KL1
3 Define database sharding. KL1
4 Define load balancing. KL1
5 List the components of High-Level Design. KL1
6 Define Low-Level Design (LLD). KL1
7 List different types of software testing. KL1
8 Explain the difference between functional and non-functional requirements with examples. KL2
9 Describe each phase of the SDLC. KL2
10 Explain how database sharding improves scalability. KL2
11 Explain the difference between horizontal and vertical scaling. KL2
12 Explain the CAP theorem in the context of system design. KL2
13 Explain the difference between authentication and authorization. KL2
14 Describe the importance of software quality assurance. KL2
15 Identify functional and non-functional requirements for a library management system. KL3
16 Apply the SDLC to develop a simple student registration system. KL3
17 Design a sharding strategy for a social media platform. KL3
18 Implement a basic load balancer using a chosen technology or framework. KL3
19 Apply HLD principles to design a content delivery network (CDN). KL3
20 Apply data partitioning techniques in designing a distributed database. KL3
21 Develop a unit testing plan for a new software module. KL3
22 Analyze a case study of an e-commerce website and classify its requirements into functional
KL4
and non-functional.
23 Compare and contrast two SDLC models (e.g., Waterfall vs. Agile). KL4
24 Analyze the impact of sharding on database performance and maintenance. KL4
25 Analyze the benefits and drawbacks of horizontal scaling in a distributed system. KL4
26 Analyze the trade-offs between availability and consistency in a distributed system. KL4
27 Analyze the role of API gateways in microservices architecture. KL4
28 Analyze the security vulnerabilities in a given system and suggest measures. KL4
8
29 Evaluate the importance of non-functional requirements in the success of a system. KL5
30 Evaluate the effectiveness of the Agile SDLC model in a software development project. KL5
31 Evaluate different sharding techniques for a large-scale e-commerce application. KL5
32 Evaluate the effectiveness of load balancing techniques in maintaining system performance. KL5
33 Evaluate the use of consistent hashing in a distributed caching system. KL5
34 Evaluate different design patterns used in system design. KL5
35 Evaluate the effectiveness of continuous integration and continuous delivery (CI/CD) in
KL5
software development.
36 Design a requirements document for a new mobile application, including both functional and
KL6
non-functional requirements.
37 Create a detailed project plan using the SDLC for developing a healthcare management
KL6
system.
38 Create a sharding implementation plan for a real-time messaging application. KL6
39 Design a load balancing solution for a high-traffic web application. KL6
40 Create a high-level design for a scalable and reliable file storage service. KL6
41 Create a class diagram for an online booking system using UML. KL6
42 Create a comprehensive testing strategy for a cloud-based application. KL6
43 Design a fault-tolerant system architecture for a financial application. KL6
44 Develop a load testing plan for an online streaming service. KL6
45 Create a disaster recovery plan for a critical business application. KL6
46 Design an API gateway for a microservices-based application. KL6
47 Create a migration strategy for moving an on-premises application to the cloud. KL6
48 Develop a real-time data processing pipeline for a sensor network. KL6
49 Design a monitoring and alerting system for a distributed application. KL6
50 Create a data backup and restore plan for a cloud-based database system. KL6
51 Design an authentication and authorization system for a multi-tenant application. KL6
52 Develop a scalable architecture for a social media platform. KL6
53 Create a service mesh architecture for managing microservices. KL6
54 Design a content delivery network (CDN) for a global application. KL6
16. STUDENT-CENTERED LEARNING (SELF-LEARNING TOWARDS LIFE-LONG-
LEARNING)
Self-Learning, self-doing, and application of the knowledge acquired through the course after gaining adequate
knowledge
It’s a typical course-based project to be carried out by a whole class in groups of four students each; they should exhibit higher
level Knowledge Levels (Bloom’s Revised Taxonomy). To enhance their skill set in the integrated course, the students are
advised to execute course-based Design projects.
The students, in a group not exceeding 4, are expected to conceive an idea based on the content (objectives/ outcomes)
and apply suitable knowledge to demonstrate their ability to learn.
1
0
: for internal circulation 1
only : 1