The full shape of the course, read straight off the syllabus: what it sets out to teach, how it is graded, and every one of the 35 sessions — grouped into modules, with the objective and the core concepts behind each one. Use it as a map for the topic notes, and as a revision checklist before the exams.
A compulsory third-year course that places programming inside the larger framework of how modern software is designed, delivered, and operated.
Software Development & DevOps gives students a holistic view of the software development discipline and of modern DevOps methodology. It starts from the software development life cycle and design principles, moves through architecture, testing, and frontend/backend development, and ends with the operational heart of DevOps: continuous delivery, containers, infrastructure as code, monitoring, security, and the systems-administration basics that underpin them. The throughline is practical: by the end you should be able to stand up an end-to-end DevOps team — agile tooling, code hosting, CI/CD, and deployment strategies — on any vendor stack.
The capabilities the course is designed to leave you with. Together they amount to: design, build, ship, and operate a software feature the way a modern engineering organisation does.
Get a holistic vision of software development practices — how the pieces fit, not just isolated techniques.
Understand the project-management methodologies applied to software, with a focus on Agile.
Leverage key software architecture concepts and patterns.
Set up a testing plan for any software project.
Understand core DevOps concepts that apply to any vendor, and how to implement them in a project or organisation.
Discuss the advantages and trade-offs of different management models applied to software development.
Understand and implement basic Infrastructure as Code concepts used by engineers daily.
Internalise continuous improvement and the mindset for flexible, evolvable architecture.
Leverage cloud-native computing as the substrate for adopting DevOps.
IE's method is collaborative, active, and applied — the professor guides, but students build their own knowledge through a mix of activities. The workload below adds up to 150 hours and defines the weighting of each activity type.
Five components, continuously evaluated across the semester. The exams together carry 45%, but the hard gate is on the final exam, not the average.
Double session, ~160 min, covering the whole course. Split into a theory part (definitions, trade-offs, "when would you use X" reasoning) and a practice part (read/write code, a pipeline or Dockerfile snippet, debug a smelly design) — both are individually gated at 3.5/10 (see pass rule).
Tip: revise theory and practice together — the practice part rewards having actually built the assignments, not just read about them.
Two staged deliverables on one app. A1: build a minimal working application (a repo + README, runnable locally). A2: improve it with DevOps practices — a CI/CD workflow, a Dockerfile, and modular IaC.
Graded on: correctness & completeness, clean structure (principles/patterns applied), git hygiene (clear commits, no secrets), and on-time submission. Format: GitHub repository link.
The in-class and async hands-on work: design-pattern labs, TDD katas, containers, cloud secret management. Continuously evaluated across the semester.
Graded on: completion, evident effort, and participation in forums/blogs. The cheapest marks in the course — they reward simply doing the work on time.
One session, ~80 min, covering the first half (SDLC → DevOps frameworks, Sessions 1–15). Tentative date, confirmed two weeks ahead — do not book travel around it.
Note: unlike the final, the midterm has no separate pass gate; it folds straight into the weighted average.
Team work to design, develop, and release a software feature end-to-end following DevOps methodology, run as Scrum sprints and culminating in a sprint review (demo of working software) and a retrospective (process reflection).
Graded on: the delivered increment, the team's process (sprint artifacts, board hygiene), and the quality of the review and retro exhibitions. Format: shared repo + live presentation.
Every session in the syllabus, grouped into thematic modules. Each module opens with what it covers and the outcomes it targets; each session lists its objective, its topics with a one-line explanation, the core concept where it is technical, a key idea to hold onto, and where it connects in these notes.
Sets the frame for the whole course: what software development is as a discipline, a brief history up to the cloud-and-AI era, the first definition of DevOps, and the phased life cycle every project moves through whether or not anyone names it.
Objective: orient students to the course shape and the discipline, and plant the first definition of DevOps.
Objective: study each SDLC phase, compare the models, and assign Individual Assignment 1.
Notes: 01 · Software Development Life Cycle · Read: Essentials of Software Engineering, ch. on process models — focus on the trade-off table comparing Waterfall, iterative, and Agile.
Before writing serious code, set up the toolbox: an editor, a place to host and version code, and an AI pair-programmer. These are the daily instruments for everything that follows.
Objective: stand up the working environment every later lab depends on.
Notes: 02 · Git Basics
Reusable solutions to recurring design problems, organised by the three Gang-of-Four families. Each session pairs a category with hands-on exercises so the patterns land as code, not vocabulary.
Objective: control how objects are created, decoupling construction from use.
Notes: 03 · Design Patterns · Read: the Gang-of-Four creational chapter — focus on intent and when not to use, not the UML.
Objective: compose objects and classes into larger structures while keeping them flexible.
Notes: 03 · Design Patterns
Objective: manage how objects communicate and divide responsibility at runtime.
Notes: 03 · Design Patterns
The principles that keep code maintainable, and the smells that signal it isn't. Where patterns are the positive vocabulary, this module is the diagnostic one.
Objective: build a shared vocabulary for what makes code good and what makes it rot.
Notes: 04 · Bad Practices & Code Smells · Read: Essentials of Software Engineering on design quality — focus on the link between a smell and the principle it violates.
Objective: bring tools, the three pattern families, and the principles/bad-practices material together into one working picture.
Notes: 03 · Design Patterns · 04 · Code Smells
How the server side is shaped and built: the architectural choices that decide how a system scales, then the concrete libraries that turn that architecture into a running backend.
Objective: understand how backend systems are structured and exposed.
Notes: 05 · Software Architectures · 08 · Backend Components
Objective: get hands-on with the libraries that implement a backend.
Room class ↔ a rooms table) instead of raw SQL, with migrations to version the schema.Notes: 08 · Backend Components
Quality is engineered in, not inspected on. This module covers the testing levels and the discipline — TDD — that makes tests drive design rather than trail behind it.
Objective: build a complete testing plan and practise writing tests first.
Notes: 06 · Testing
The browser as a runtime: the two rendering architectures, the three core web languages, and the tools for inspecting what actually runs.
Objective: understand how the client side renders and how to build it.
<style> — the simplest end of the spectrum, and a deliberate contrast to a JavaScript-heavy SPA. Open the Network tab on this page to see how little it ships.Notes: 09 · Frontend Foundations
Getting working code into production safely: automation with GitHub Actions, the deployment process and strategies that limit blast radius, and the first encounter with Infrastructure as Code.
Objective: automate the path from commit to deployed app.
.github/workflows/ triggered by events (push, PR) that run jobs of steps on a runner: check out code, install, test, build, deploy. This is the CI pipeline from the testing session, made real.ci.yml from memory is a likely practice-exam task and the core of Assignment 2.Notes: 10 · Software Deployment · Read: The DevOps Handbook on continuous integration — focus on the "keep main always deployable" principle.
Objective: choose deployment strategies and treat infrastructure as code.
Notes: 10 · Software Deployment
Steps back to define DevOps properly and survey the frameworks and lean thinking that give it structure — the conceptual centre of the second half of the course.
Objective: consolidate what DevOps is and the frameworks that operationalise it.
Notes: Accelerate · The DevOps Handbook · Read: Accelerate ch. 1–2 — focus on the four delivery metrics and why they predict organisational performance.
The midpoint checkpoint: reviewing Assignment 1, sitting the midterm, and launching the second half's group/individual work.
Objective: close out Assignment 1 and prepare for the midterm.
Objective: assess the first half of the course (≈80 min, one session).
Notes: Quiz & midterm keys
Objective: review the midterm and launch the second-half project work.
Notes: Project briefs
The Agile framework that structures the group assignment: fixed iterations with explicit feedback loops, and the planning tools that support them.
Objective: adopt Scrum as the operating rhythm for the team assignment.
Notes: 07 · Scrum
Software isn't done when it ships — it's observed and maintained. This module introduces monitoring and wiring an app to a monitoring service.
Objective: make a running system observable.
Notes: 10 · Software Deployment
How systems are structured when they grow beyond a single deployable unit — and the law that explains why their shape mirrors the teams that build them.
Objective: design systems that scale and evolve across independent parts.
Notes: 05 · Software Architectures · Team Topologies · Read: Team Topologies — focus on the four team types and three interaction modes.
The operational discipline of running reliable services at scale: Site Reliability Engineering, incident management, and the service-level vocabulary that defines "reliable".
Objective: operate services reliably and respond to failure systematically.
Notes: 11 · DevOps Security · Accelerate
The engine room of DevOps over four sessions: delivery pipelines and strategies, containers, container infrastructure in the cloud, and modular Infrastructure as Code — directly feeding Assignment 2 and the group project.
Objective: establish continuous delivery and its release strategies.
Notes: 10 · Software Deployment
Objective: package an application to run identically anywhere.
Dockerfile; a running instance of that image is a container. Image vs container is the layers-vs-running-process distinction.docker build to create the image, docker run to start it, mapping a port so the host can reach the app..git and secrets) and starting FROM a full OS. Use a slim/minimal base, a .dockerignore, and order layers so dependencies cache separately from source — small images build and deploy faster and expose less attack surface.Notes: 10 · Software Deployment
Objective: run containers in cloud infrastructure through automated workflows.
latest tag. Without immutable version tags (e.g. the git SHA) you can't tell what's running or roll back precisely — and two deploys can silently mean different code. Tag every image with its commit.docker run from last session.Notes: 10 · Software Deployment
Objective: structure Infrastructure as Code so it can be reused and composed.
Notes: 10 · Software Deployment
Shifting security left into the delivery pipeline: secure delivery and infrastructure, security culture and frameworks, and the practical handling of secrets and authentication.
Objective: make security a continuous, cultural part of delivery.
Notes: 11 · DevOps Security · Read: The DevOps Handbook security chapter — focus on integrating security into the daily pipeline.
Objective: handle secrets and identity correctly in practice.
.gitignore before the first commit.Notes: 11 · DevOps Security
The systems-administration foundations under everything DevOps: secure network access, UNIX permissions, and a hands-on workshop tying them together.
Objective: access and secure remote systems the way operators do.
root is all-powerful, so day-to-day work uses unprivileged users and sudo.chmod 777 "to make it work". It grants everyone full access and is a classic security hole; private keys must be 600 or SSH rejects them. Default to the least permission that works, not the most.rwxr-x--- and explain a port-forward command — concrete, examinable sysadmin skills under every managed cloud service.Objective: practise sysadmin skills hands-on.
The course closes by exercising the Scrum loop on the group project — a sprint review and a retrospective — before the final exam consolidates everything.
Objective: demonstrate the group's delivered increment to stakeholders.
Notes: 07 · Scrum · Group assignment
Objective: inspect how the team worked and commit to improvements.
Notes: 07 · Scrum
Objective: assess the whole course (double session, ≈160 min).
Notes: Quiz & midterm keys · Assessment rules
The terms that recur across the course — around fifty, in one place. Roughly the order they appear in the program; a fast revision checklist before either exam.
Four recommended texts. The first two are the DevOps canon for this course; the others ground it in software engineering and team design.
The science behind DevOps: building and scaling high-performing technology organisations. The research that links specific delivery practices (deployment frequency, lead time, MTTR, change-fail rate) to organisational performance — the empirical backbone of the course's DevOps claims.
ISBN 9781942788355 · Digital
How to create world-class agility, reliability & security in technology organisations. The practical companion to Accelerate — the Three Ways (Flow, Feedback, Continual Learning) and concrete practices for CI/CD, telemetry, and security. A must-read for any organisation scaling its IT capability.
ISBN 9781950508402 · Digital
The software-engineering foundation: life cycle, process models, design, and quality. Grounds the first half of the course — SDLC, principles, patterns, and testing — in established engineering theory.
ISBN 1284228991 · Digital
Organising business and technology teams for fast flow. Operationalises Conway's Law — the four team types and three interaction modes that let an organisation shape its architecture by shaping its teams.
ISBN 9781942788829 · Digital