About this course
Engineer software that is correct, testable, and secure by design, integrating quality assurance and application-security practices throughout the development lifecycle.
Hardened a web application end to end: threat-modeled it with OWASP Threat Dragon, remediated OWASP Top 10 risks, and built a GitHub Actions CI pipeline gating on Semgrep SAST, OWASP ZAP DAST, and dependency scanning, with OpenTelemetry, Prometheus, and Grafana enforcing service level objectives.
Expected outcomes
- Explain the principles of secure software development across the lifecycle
- Analyze the OWASP Top 10 risks and apply secure coding countermeasures
- Construct threat models using data-flow diagrams and trust boundaries
- Evaluate dependency and supply-chain risks and apply provenance controls
- Apply SAST and DAST tooling and interpret their findings critically
- Design automated test suites grounded in coverage and fault-based theory
- Build continuous integration and delivery pipelines with quality gates
- Conduct effective code reviews focused on correctness and security
- Instrument systems for observability with metrics, logs, and traces
- Reason about reliability using service level objectives and error budgets
Key topics
- Automated testing & CI
- Secure coding (OWASP)
- Code review & static analysis
- Reliability & observability
Theoretical foundations
The concepts and results this course rests on.
- Saltzer and Schroeder protection principles and least privilege
- STRIDE threat modeling over data-flow trust boundaries
- Coverage criteria and fault-based testing theory
- Static data-flow and taint analysis with soundness trade-offs
- Trusting-trust and supply-chain integrity reasoning
- Service level objectives, error budgets, and reliability theory
- High-cardinality telemetry and the three pillars of observability
Prerequisites
Course-specific prerequisites:
- Software engineering and object-oriented programming
- Basic computer networks and web applications
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants to generate and refactor application code, then turn the same tools on themselves to find and remediate OWASP Top 10 weaknesses through guided code review. They prompt AI to expand unit and integration suites, propose equivalence classes and edge cases, and draft GitHub Actions pipeline steps that wire in Semgrep, OWASP ZAP, and dependency scans. Agents connected to repository and scanner MCP servers help triage SAST and DAST findings, separating real issues from false positives. AI further helps analyze telemetry and error budgets, but every security fix and test is verified by the team, since vibe-coded changes can quietly introduce new attack surface.
Student project
Teams take one web application and engineer it to be secure, tested, and reliable end to end. They threat-model it, remediate OWASP Top 10 risks, build a CI and CD pipeline with SAST, DAST, and dependency scanning, and add observability and service level objectives. Application security is revisited every week as new attack surfaces appear.
Requirements
- Build a working system, not a set of disconnected exercises.
- Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
- Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
- Carry one running project from specification to a deployed, defensible result across the whole term.
- Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).
Example projects
Assessment & grading
Grading is project-based, with no written exam. Teams of three or four present one running project three times.
| Component | What it covers | Weight |
|---|---|---|
| Project · Specification | Presentation 1 (week 5): problem, objectives, and architecture | 20% |
| Project · Interim | Presentation 2 (week 8): the working system demonstrated live | 30% |
| Project · Final | Presentation 3 (week 13): end-to-end demo with oral defense | 50% |
Tools & platforms
- JUnit or pytest: write unit and integration tests
- GitHub Actions: run continuous integration pipelines
- OWASP ZAP: perform dynamic application security testing
- Semgrep: run static application security testing
- Snyk: scan dependencies for known vulnerabilities
- OWASP Dependency-Check: detect vulnerable libraries
- Trivy: scan images and generate software bill of materials
- OWASP Threat Dragon: build and document threat models
- OpenTelemetry: instrument services for traces and metrics
- Prometheus: collect reliability metrics and define alerts
- Grafana: visualize service level objectives and telemetry
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
- YouTubeLearn Jenkins by Building a CI/CD Pipeline (Full Course)
- CourseraSecure Coding: SSDLC, OWASP and SonarQube Essentials
- YouTubeTesting JavaScript with Cypress (Full Course)
In Hebrew · בעברית
- Campus ILSuper QA - בודק תוכנה
- Campus ILWebSec - אבטחת יישומי ווב
Primary literature
Seminal works to read for graduate-level depth.
References
Books and resources link to an online or publisher page.
- DocumentationOWASP Top 10 Web Application Security Risks
- TextbookThreat Modeling: Designing for Security
- TextbookWeb Application Security: Exploitation and Countermeasures for Modern Web Applications, 2nd Edition
- TextbookIntroduction to Software Testing, 2nd Edition
- TextbookContinuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
- TextbookSite Reliability Engineering: How Google Runs Production Systems
- TextbookObservability Engineering: Achieving Production Excellence
- DocumentationSecure Software Development Framework (SSDF) Version 1.1, NIST SP 800-218
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Core · Semester 1 |
| Networking & Cyber Security | Core · Semester 1 |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Elective |
| Immersive Systems & Game Development | Elective |
| Defense Technologies & Autonomous Systems | Elective |