CIS-1912 Syllabus
Welcome to CIS-1902 DevOps!
In today’s rapidly evolving software landscape, the difference between a good engineer and a great engineer lies in understanding how to deploy, manage, and maintain production systems.
This course aims to bridge the gap between academic programming and real-world software development by teaching you the tools and practices that power production systems.
We’ll explore the world of DevOps through hands-on experience with industry-standard tools and practices. Our journey will be guided by building an agentic AI system from the ground up, giving you practical experience with the entire development lifecycle. Each class will combine theoretical concepts with hands-on labs, ensuring you understand both the “why” and “how” of modern software deployment.
What You’ll Learn
- Networking Fundamentals: Understand how services communicate in distributed systems
- Containerization & Orchestration: Master Docker and Kubernetes for scalable deployments
- Infrastructure as Code: Learn Terraform & Helm for automated infrastructure management
- CI/CD Pipelines: Build automated testing and deployment workflows
- Monitoring & Observability: Implement comprehensive logging and alerting systems
Prerequisites
CIS1200 and CIS1210 are required prerequisites. Students must be familiar with Git and comfortable using Unix/Bash.
Having taken NETS212 or knowing Python and Javascript/HTML are nice to haves, but not required.
The following background knowledge will be helpful and may boost your chances of being enrolled:
- Understanding of backend-frontend architecture
- Familiarity with databases and ORMs
- Familiarity with HTTP/APIs and basic networking concepts
- Comfort working with large codebases
- Ability to learn from documentation
Grading
- [50%] Homework Assignments
- [35%] Final Project
- [15%] Attendance & Participation
- Late Policy: You have five total late days, no questions asked. Up to two late days can be used per assignment (except final project). Additional late days will result in 25% deduction per day, up to 50% maximum deduction.
- Attendance will be graded through the labs we do in class. You can miss up to 2 labs no questions asked, although you should still do them to learn!
Course Policies
- Assignments are intended to be done alone. Feel free to discuss the problems at a high level, but you must write all code by yourself.
- You may (and are expected to!) use the internet when completing assessments. Understanding documentation and Stack Overflow is a crucial skill in industry. However, you may not make any posts asking for external help online (come to office hours instead).
- There are no restrictions on using LLMs to aid you in completing assignments, but students are urged to rely on them only for things such as documentation type queries or conceptual questions. Relying too heavily on LLMs will only hinder your learning process. While LLMs have become an increasingly powerful tool in software development, ultimately one still needs to understand the code it outputs before employing it.
- Licensing Information: You are free to use or extend these projects for educational purposes provided that (1) you do not distribute or publish solutions, (2) you retain this notice, and (3) you provide clear attribution to the University of Pennsylvania, including a link to https://www.cis1912.org/.