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:
- Foundations of Large Language Models
- Working with AI APIs and Local Models
- Extended Capabilities and Tool Integration
- Retrieval-Augmented Generation (RAG)
- Cost and Performance Optimization
- Foundations of Effective Prompting
- Advanced Prompting Techniques
- Domain-Specific Prompting
- Evaluation and Testing
- Security and Safety
- Agentic Systems (architecture, development of, usage)
- How agentic systems integrate into traditional Software Engineering activities
- 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
- Explain the fundamental architecture and operational principles of large language
models, including transformer architecture, attention mechanisms, tokenization, and
training paradigms.
- Integrate both frontier model APIs and local models into software applications, making
informed decisions about model selection based on performance, cost, and privacy requirements.
- Understand how retrieval-augmented generation (RAG) systems use vector databases,
semantic search, and appropriate chunking strategies to extend model capabilities
with custom knowledge bases.
- 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.
- Evaluate AI system outputs using appropriate metrics and testing methodologies, including
benchmark creation, A/B testing, and edge case analysis.
- Identify and mitigate security vulnerabilities in AI systems, including prompt injection
attacks, jailbreaking attempts, and implement appropriate guardrails and safety measures.
- Develop autonomous AI agents capable of multi-step reasoning, tool use, and task completion
using frameworks.
- Apply AI-assisted development tools effectively throughout the software development
lifecycle, including code generation, review, testing, debugging, and documentation.
- Optimize AI system performance and cost through token management, caching strategies,
batch processing, and appropriate model selection for different use cases.
- 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