CSDS 393/493: Software Engineering

Both undergraduate and graduate students can enroll.

This combined undergraduate/graduate course introduced students to software engineering principles and practices, with a special emphasis on AI-enabled systems. Students learned how to adapt the SDLC to AI projects, explored responsible AI properties, and applied these concepts in a semester-long team project. The course integrated scholarly engagement through paper reviews and encouraged discussion on the ethical and creative use of LLMs in software development. Special attention was given to active learning strategies that work effectively in large classes.

Learning Objectives

  • Master core concepts and practices of software engineering.
  • Apply the SDLC in the context of AI-enabled systems.
  • Analyze and address Responsible AI principles during software development.
  • Collaborate effectively in large, diverse teams on substantial projects.
  • Critically engage with scholarly research in AI engineering.
  • Explore creative, ethical uses of LLMs in software engineering work.

Topics Covered

  • Foundations of software engineering and the AI-adapted SDLC
  • Responsible AI principles: fairness, safety, robustness, explainability
  • Requirements engineering, system analysis, and design for AI projects
  • Team-based development practices and collaborative tools
  • Ethical and creative integration of LLMs in coursework and projects

Project

Students worked in teams to design, implement, and evaluate an AI-enabled software system or tool that incorporated one or more Responsible AI properties. Each project was supervised by a dedicated teaching assistant (TA) and included four scheduled demos throughout the semester to track progress and receive feedback. Projects required:

  • Requirements elicitation and system design
  • Development of maintainable, well-tested software
  • Evaluation of responsible AI properties using metrics and testing frameworks
  • A formal proposal, implementation artifacts, written report, and final presentation
    The structured teamwork and frequent check-ins ensured accountability, consistent progress, and high-quality deliverables. Many projects integrated LLMs and machine learning pipelines, prompting reflection on the ethical and effective use of emerging AI tools in collaborative development.