Operating Systems

CS 301 - Fall 2018

Course Information

Course Code
CS 301
Semester
Fall 2018
Credits
3
Location
AB7/102

About This Course

This course provides a comprehensive introduction to operating systems, covering fundamental concepts such as process management, memory management, file systems, and concurrency. Students will gain hands-on experience with system programming and learn how modern operating systems manage computer resources efficiently.

Learning Objectives

By the end of this course, students will be able to:

  • Understand the core principles of operating system design
  • Implement process scheduling algorithms
  • Analyze memory management techniques
  • Design concurrent programs using threads and synchronization
  • Understand file system organization and implementation
  • Evaluate system performance and optimization strategies

Prerequisites

  • Data Structures and Algorithms
  • Computer Organization and Architecture
  • Systems Programming in C

Staff

Instructor

Nipun Batra
Professor, Computer Science
Email: nipun.batra@iitgn.ac.in

Teaching Assistants

  • Chanda
  • Subisha
  • Chamanvir

Schedule

Lectures:
Tuesday, Thursday, Friday
11:00 AM - 12:00 PM
Room AB7/102

Labs:
Monday
10:00 AM - 12:00 PM
Room AB7/109

Course Resources

Textbook

Operating Systems: Three Easy Pieces
by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau

This free, comprehensive textbook covers all major operating system concepts with clear explanations and practical examples.

Development Environment

Ubuntu VirtualBox VM

Pre-configured Ubuntu virtual machine with all necessary tools and libraries for course assignments.

Course Code

Code Examples

All code examples, demonstrations, and programming exercises used in lectures and labs: - Process API examples (fork, exec, wait) - CPU scheduling simulations
- Memory management programs - Threading and synchronization examples

Project Ideas

Project Proposals

Collection of project ideas and proposals for the course project component.

Assessment & Grading

Component Weight Description
Quizzes (4) 40% 10% each, covering major topics
End Semester Exam 10% Comprehensive final examination
Programming Assignments (2) 8% Individual coding projects
Lab Exams (2) 20% 10% each, hands-on practical exams
Group Project 20% Team-based implementation project
OS Zine 2% Creative technical communication

Grading Policies

  • Score Negotiation: Only for unchecked questions or totaling mistakes
  • Late Submissions: 10% penalty per day
  • Collaboration: Encouraged for learning, but submissions must be individual
  • Academic Integrity: Strictly enforced according to institute policies

Important Notes

  • All programming assignments must compile and run
  • Regular attendance is expected for both lectures and labs
  • Project groups will be formed in the first few weeks
  • The OS Zine is inspired by Julia Evans’ zines