CS 3300: Introduction to Software Engineering (Fall 2024)
Course Information
- Lecture time: Tuesdays and Thursdays, 5:00 pm - 6:15 pm
- Location: Instructional Center 115
- Ed : https://edstem.org/us/courses/42918/discussion/
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
- Lecture Codes demoed in Class
- Markdown Cheatsheet
- Github Beginner's Intro - Thanks Markian!
- Git Commands Cheatsheet
- .gitignore
- Good READMe Files Examples
- Deploying archive files to GCP
- Deploying JAR to cloud
- Deploying an App Engine application using an archive file
- Deploying SpringBoot API to app engine
- Google Datastore helpful links
- Connecting Java Backend with JS frontend
- Create a Docker app with VS Code
- MERN Tech Stack Guide