CS 3300: Introduction to Software Engineering (Fall 2024)

Course Information

Instructor:
Dr. Nimisha Roy
(nroy9@gatech.edu)
GTA (head TA):
Neha Raikar (nraikar3@gatech.edu)
GTA:
Avinash Atluru (avinashatluru@gatech.edu)
UTA:
Krish Ranglani (kranglani3@gatech.edu)

Course Overview

This semester, CS 3300: Introduction to Software Engineering is designed as a Course-based Undergraduate Research Experience (CURE), focusing on the integration of artificial intelligence (AI) tools throughout the software development lifecycle. The course covers fundamental software engineering processes, including requirements gathering, prototyping, design, and testing, while emphasizing hands-on experimentation with AI technologies to enhance efficiency and innovation. Students will participate in two main projects that simulate real-world software development scenarios. These projects will not only apply conventional software engineering techniques but will also enable students to explore, evaluate, and contribute to research on the transformative potential of AI tools in automating and optimizing development tasks. This CURE approach allows students to engage deeply with the material, applying their learning to practical challenges and participating in the creation of knowledge through their project work.

Some pre-requisites for this course include:

    • Proficiency in Java programming
    • Proficiency in using GIT - clone, add, commit, push, pull, branches, merge conflict, pull requests
    • Basic client side programming (JS, CSS, HTML)
    • Basic introductory experience of using LLMs like Chat GPT
    • Teamworking skills (being able to collaborate effectively with your teammates)
    • Basic knowledge of UML diagrams and design patterns
    • Cloud computing knowledge is a plus

Schedule

Note: The topics in this course may change.

Date Topic Deliverable Released Deliverable Due Readings
August 20, 2024 Introduction and Overview | Teams Creation Teams Formation Survey Out on CATME
Sustainability and AI surveys out. Associated Extra Credit assignments published.
AI tools for implementation and design tutorials published
Sustainability in SWD Survey
AI in SWD Survey- Beginning of Semester
How to use GitHub Copilot
How to use OpenAI GPT APIs for Code Generation
How to use AI tools for software design
GT Honor Code
August 22, 2024 Project 1 Overview | Basics of Prompt Engineering Project 1 related assignments released Teams Creation Due (8/25)
August 27, 2024 Tools of the Trade #1: GIT Recap, Code Review, GitHub Action Basics Teams Created; Mentors Assigned
Quiz 1 in Class based on Git
Sign up for Google Cloud Credits - Instructions on Ed.
Open AI credits available to individual teams - Instructions on Ed.
Sign up for GitHub Pro
Git Toolbox for IntelliJ
GIT Demo Notes refresher from CS2340
Google Engineering Practices - Code Review
August 29, 2024 SDLC; Life Cycle Models Extra Credit Opportunity in Class Quizizz Questions
September 3, 2024 Tools of the Trade #2: Junit Testing, Maven, VS Code Participation Assignment for Maven (due 9/4)
Code Review - project 1 Out
Lecture Videos
Demo Notes - Maven
September 5, 2024 Tools of the Trade #3: JQuery, API, AJAX, REST REST Assignment Out Project 1 Planning Assignment Due Lecture Video - parts 1, 2, and 3
Lecture Codes
HTML Cheatsheet
CSS Cheatsheet
JS Cheatsheet
Types of databases
5 ways to make HTTP requests in Node.js
September 10, 2024 Requirements Engineering Extra Credit Opportunity in class
Quiz 2 - GIT, Maven, life cycle model, RE, AJAX, REST [9/11]
Quiz 2 - GIT, Maven, life cycle model, RE, AJAX, REST [9/11] Quizizz Questions
September 12, 2024 Tools of the Trade #4: Spring Framework, Spring Boot,REST API Project 1 Progress Report Due
Demo notes on SpringBoot
September 17, 2024 Tools of the Trade #5: Google App Engine, Google Maps API, Geolocation API GCP Assignment out GCP Setup Guide
GCP Demo Notes Covered in Class - Deploying on CLI
GCP Demo Notes for deploying using Google Cloud Console
September 19, 2024 Project 1 Check in Day with Mentors - progress report feedback, AI tools progress in implementation with TAs, roadblocks, suggestions. REST Assignment Due
September 24, 2024 Software Architecture Extra Credit Opportunity in Class
Midterm Anonymous Survey Released
Project 1 - Requirements Assignment Due Quizizz Slides
September 26, 2024 Software Design - UML and AI Integration
Lecture Video
Top 5 most used architectural patterns
October 01, 2024 Design Patterns and Project 1 guidelines
GCP Assignment due
Midterm Survey Due
Ecommerce Bad Code Design
Ecommerce Code Maintainability Issues
October 3, 2024 Work on Project 1 - No class
October 8, 2024 Project 1 Presentation Day Code Review- project 2 Out Project 1 Due
Code Review - Project 1 Due
CATME Post Project 1 Survey Due
October 10, 2024 Project 2 Description | Software Testing Extra Credit Opportunity in class
Project 2 Topic and MMFs assignment released
Project 1 Design Assignment Due Using GitHub Copilot inline for unit and integration testing
Using GitHub Copilot in chat for unit and integration testing
Additional Resources for Testing
SonarQube setup instructions on GCP VM for code quality feedback
October 15, 2024 No class - Fall break
October 17, 2024 TA Workshop Project 2 Test Assignment Out
October 22, 2024 Project 2 check in with mentors – topic, AI tool usage, testing assignment Project 2 Topic and MMFs assignment grading in class
All Project 2 Assignments Released
October 24, 2024 Software testing: Black-box
TSL Class Scripts
TSL Generator GitHub Repository- More Examples
October 29, 2024 Software testing: Black-box
Software testing: White-box
Quizizz for participation and extra credit in class Postman + Postbot AI for blackbox testing example demo notes
October 31, 2024 Work on Project 2 - No class
November 5, 2024 Software testing: White-box + Quizizz
Quizizz for Extra Credit in Class
AI in whitebox testing Activity
Using SonarQube for code coverage in Maven Project
November 7, 2024 Test Driven Development; Refactoring Refresher. Work on Project 2
Best Code Refactoring Tools
RefactorFirst for Java codebases
Code Analysis with SonarQube
November 12, 2024 Code Smells Refresher. In class Group activity In class Assignment due same day
Quiz 3 Out - Spring, Google App, Architecture & Design, Testing, TDD, Refactoring [11/13]
Quiz 3 Due - Architecture & Design, Testing, TDD, Refactoring [11/13]
November 14, 2024 No silver bullet
November 19, 2024 Project 2 work in your groups - No class Project 2 Test Assignment Due
November 21, 2024 Project 2 work in your groups - No class
November 26, 2024 Project 2 presentation and demo: Day 1. Groups 5, 12, 13, 8, 4, 9 CATME Post Project 2 Survey Out Project 2 Due (Code and Presentation)
Code Review - Project 2 Due
November 28, 2024 Thanksgiving Break
December 3, 2024 Project 2 presentation and demo: Day 2. Groups 3, 6, 1, 10, 7, 11, 2 Project 2 Report Due [12/1]
Project 2 Audience Responses Due [12/4]
CATME Post Project 2 Evaluation Due

Office Hours and Questions

  • Office Hours:

    • TAs: Refer to Canvas homepage
    • TA Office Hours location: CCB 267- Opposite CCB 253

  • Ed will be the main place for course discussions and announcements. If you have questions, please ask it on Ed first because 1) other students may have the same question; 2) you will get help much faster.

  • If it’s something you do not like to discuss publicly on Ed, you can use private messaging in Ed.

Additional Resources