Skip to main content

CS 581

CS 581 - Fundamentals and Usage of AI in Software Engineering

Credits: (3)

Prerequisites: CS 370

This course provides a comprehensive exploration of generative artificial intelligence, covering foundational concepts, practical applications, and agentic AI systems used to develop software. Students will gain hands-on experience with large language models (LLMs), prompt engineering techniques, and AI-assisted software development.

 

Detailed Description of Content of Course

Topics include:

  1. Foundations of Large Language Models
  2. Working with AI APIs and Local Models
  3. Extended Capabilities and Tool Integration
  4. Retrieval-Augmented Generation (RAG)
  5. Cost and Performance Optimization
  6. Foundations of Effective Prompting
  7. Advanced Prompting Techniques
  8. Domain-Specific Prompting
  9. Evaluation and Testing
  10. Security and Safety
  11. Agentic Systems (architecture, development of, usage)
  12. How agentic systems integrate into traditional Software Engineering activities
  13. Current Topics in the Field

 

Detailed Description of Conduct of Course

This course is structured around hands-on, project-based learning with a strong emphasis on practical application of generative AI techniques. Students will engage with current AI tools and platforms throughout the semester, gaining real-world experience in building AI-powered applications.  Students will create their own AI assistant.  Students will use generative AI during a semester long project.  Specifically they will generate code, read/review AI generated code, perform AI code reviews / security audits, create and automate testing with AI, and produce documentation using AI.

 

Student Learning Outcomes

  1. Explain the fundamental architecture and operational principles of large language models, including transformer architecture, attention mechanisms, tokenization, and training paradigms.
  2. Integrate both frontier model APIs and local models into software applications, making informed decisions about model selection based on performance, cost, and privacy requirements.
  3. Understand how retrieval-augmented generation (RAG) systems use vector databases, semantic search, and appropriate chunking strategies to extend model capabilities with custom knowledge bases.
  4. Design and apply advanced prompt engineering techniques including few-shot learning, chain-of-thought reasoning, structured output generation, and domain-specific optimization to achieve reliable and high-quality AI outputs.
  5. Evaluate AI system outputs using appropriate metrics and testing methodologies, including benchmark creation, A/B testing, and edge case analysis.
  6. Identify and mitigate security vulnerabilities in AI systems, including prompt injection attacks, jailbreaking attempts, and implement appropriate guardrails and safety measures.
  7. Develop autonomous AI agents capable of multi-step reasoning, tool use, and task completion using frameworks.
  8. Apply AI-assisted development tools effectively throughout the software development lifecycle, including code generation, review, testing, debugging, and documentation.
  9. Optimize AI system performance and cost through token management, caching strategies, batch processing, and appropriate model selection for different use cases.
  10. Analyze the ethical implications of generative AI systems and apply responsible AI practices in design, deployment, and maintenance of AI-powered applications.

 

Assessment Measures

Student performance may be evaluated through a combination of project-based assessments, examinations, quizzes, and interactive AI prompts to ensure both practical proficiency and conceptual understanding.

 

Other Course Information

None.

 

Review and Approval

March 11, 2026