On this page:
1 Modern Software Development with Gen  AI (CMSC 389A)
2 Course Description
3 Learning Outcomes
4 Topics
9.1

Syllabus🔗

Note: This is a tentative syllabus. This course is actively under development and both topics and schedule are subject to change.

    1 Modern Software Development with GenAI (CMSC 389A)

    2 Course Description

    3 Learning Outcomes

    4 Topics

1 Modern Software Development with GenAI (CMSC 389A)🔗

Term: Fall, 2026

Professor: Anwar Mamat (he/him)

Email: anwar@umd.edu

Credits: 3

Prerequisite: a grade of C or better in CMSC216 and CMSC250.

Course Dates: From August 31 to December 21

Lectures: TTh, 12:30-1:45pm, CSI 1121

2 Course Description🔗

The software engineering landscape is shifting rapidly, and CMSC 389A is designed to ensure you are leading the charge. You will master the two most critical skills for the modern developer: using AI to supercharge your own productivity and engineering the next generation of AI-powered software.

The course dives deep into full-stack development, showing you how to leverage AI tools across the entire software lifecycle — from initial system design and rapid coding to automated testing and cloud deployment — while teaching you how to architect and integrate intelligent models directly into your own applications. Students learn core software engineering principles, including version control, testing, architecture, security, UI/UX design, cloud deployment — with AI integrated at every stage. The course balances hands-on tool fluency with critical thinking about AI limitations, correctness, ethics, and responsible use.

By the end of the term, you won’t just be a faster coder; you will be a high-level engineer capable of building complex, AI-native systems from the ground up. Students document their AI usage throughout — recording successes, failures, and lessons learned — culminating in a final reflection on the evolving role of AI in software development. Join us to gain the hands-on experience you need to stand out and build the future of tech!

3 Learning Outcomes🔗

After successfully completing this course, you will be able to:

  • Prompt Engineering — Apply advanced prompting techniques (k-shot, chain-of-thought, RAG, tool calling, self-consistency, reflecion) to get reliable, high-quality outputs from LLMs.

  • AI-Assisted Coding — Use AI coding assistants productively for code generation, refactoring, and debugging — and critically evaluate when to leverage an LLM versus solving problems manually.

  • Full-Stack Development — Build and deploy web applications with a modern stack (FastAPI/Flask + database + frontend) using AI to accelerate every phase.

  • Modular Design Patterns: Code Organization — Decompose problems into well-structured classes using encapsulation, inheritance, and composition; apply design patterns to build maintainable, modular software.

  • Testing & Quality Assurance — Write and generate unit, integration, and regression tests; use TDD; generate property-based and coverage-based tests; evaluate AI-generated test suites for correctness and completeness.

  • Version Control & Collaboration — Use Git effectively for branching, pull requests, code review, and team-based workflows.

  • Code Review — Perform manual code reviews and evaluate AI-assisted code review tools; compare human vs. AI review quality.

  • UI/UX Design — Apply user-centered design principles and use AI for rapid UI/UX prototyping.

  • Security — Run static analysis, identify vulnerabilities, and remediate issues with AI assistance.

  • Agentic Workflows — Build and use autonomous coding agents, custom MCP servers, and multi-agent systems for development automation.

  • Cloud & Deployment — Containerize applications with Docker; deploy to cloud platforms; set up CI/CD pipelines.

  • Documentation — Write clear technical documentation including design docs and API references; use AI to generate and improve documentation while ensuring accuracy.

  • Critical Evaluation — Assess AI-generated code for correctness, security, and maintainability; document AI successes and failures; understand limitations, ethical concerns, and responsible use policies.

4 Topics🔗

The following list of lecture topics will vary according to the pace of the course:

  • Foundations: software engineering overview, GenAI landscape, and development environment setup

  • Version control with Git and GitHub: branching, pull requests, and team workflows

  • Prompt engineering: zero-shot, k-shot, chain-of-thought, RAG, tool calling, and reflexion

  • AI-assisted development with Claude Code

  • Web frameworks: FastAPI, Flask, Streamlit

  • Testing and code quality: pytest, TDD, AI-generated tests, and coverage analysis

  • Databases and cloud tools: SQL, BigQuery, PostgreSQL, and Vertex AI

  • UI/UX design: user-centered design, prototyping, and AI-assisted design tools

  • Software architecture: design patterns, object-oriented design, and code organization

  • Autonomous coding agents and Model Context Protocol (MCP)

  • Multi-agent workflows: concurrent agents, git worktrees, and agentic environments

  • AI-powered code review: manual vs. AI review and automated PR workflows

  • Application Security Risks, Static Code Analysis, Security scanning, and AI-assisted vulnerability remediation

  • Deployment: Docker, CI/CD pipelines (GitHub Actions), and cloud deployment

  • Ethical considerations: IP, energy consumption, workforce impact, and responsible AI use