CS 3300: Introduction to Software Engineering (Fall 2022)
Course Information
- Lecture time: Tuesdays and Thursdays, 5:00 pm - 6:15 pm
- Location: College of Computing 17
- Ed : https://edstem.org/us/courses/25961/discussion/
Course Overview
This course introduces techniques in software engineering (SE) with an emphasis on SE process, phases, and tools. The course structure includes software engineering introduction, requirements and prototyping, design and unified software process, and testing and test driven development. Finally, we will use available SE tools to combine the SE knowledge tools in two projects. We will have two main projects in this class where you will be developing and delivering real-world software.
Some pre-requisites for this course include:
- Basic knowledge in some of the SE tools like Eclipse
- Basic Java
- Some client side programming (JS, CSS, HTML)
- Teamworking skills (being able to collaborate effectively with your teammates)
- Cloud computing knowledge is a plus
Schedule
Note: The topics in this course may change.
Date | Topic | Deliverable Released | Deliverable Due | Readings |
---|---|---|---|---|
August 23, 2022 | Introduction and Overview | Teams Creation | Teams Creation Out |
GT Honor Code Ed Discussion |
|
August 25, 2022 | Project 1 Description & Overview | |||
August 30, 2022 | Tools of the Trade #1: Java, Eclipse, Junit Testing, Maven | Planning Assignment Out | Teams Creation Due | Java Eclipse JUnit Maven Class Demo Recording |
September 1, 2022 | Tools of the Trade #2: Version Control, GIT |
GitHub Student Account EGit GIT Demo Notes Branching & Merging Conflicts |
||
September 6, 2022 | Project 1 Work in your respective groups | |||
September 8, 2022 | Tools of the Trade #3: HTML, CSS, JS; |
HTML CSS JS Class Demo Recording - Part 1 HTML CSS JS Class Demo Recording - Part 2 HTML Cheatsheet CSS Cheatsheet JS Cheatsheet Types of databases |
||
September 13, 2022 | Life Cycle Models | Requirements Assignment Out | Planning Assignment Due |
Quiz Slides |
September 15, 2022 | Requirements Engineering | Quiz 1 out and due | Project 1 Progress Report Due |
Quiz Slides |
September 20, 2022 | Class Cancelled | Individual Assignment on REST out | ||
September 22, 2022 | Tools of the Trade #4: JQuery, API, AJAX, REST | 5 ways to make HTTP requests in Node.js | ||
September 27, 2022 | Tools of the Trade #5: Spring Framework, Spring Boot,REST API | Requirements Assignment Due | SpringBoot Demo Recording | |
September 29, 2022 | Tools of the Trade #6: Google App Engine, Google Maps API, Geolocation API | Individual Assignment on GCP out |
GCP Setup Guide Using Eclipse IDE to deploy Java application to app engine |
GCP Demo Recording
|
October 04, 2022 | Software Architecture & Design | |||
October 06, 2022 |
Object Orientation and UML |
Design Assignment Out | Individual Assignment on REST due | |
October 11, 2022 | Design Patterns Presentation & Scoring guidelines | Individual Assignment on GCP due | ||
October 13, 2022 | Project 1 Presentation Day | Project 1 Due | ||
October 18, 2022 | No class - Fall Break | |||
October 20, 2022 | Guest Lecture #1 by Prof. Mahdi Roozbahani | |||
October 25, 2022 | Software Testing Project 2 Description | Test Assignment Out | Design Assignment Due | |
October 27, 2022 | Software testing: Black-box | TSL Class Scripts TSL Generator GitHub Repository- More Examples | ||
November 01, 2022 | Software testing: Black-box Software testing: White-box | |||
November 03, 2022 | Software testing: White-box | |||
November 08, 2022 | Project 2 Touchpoint in Class | Test Assignment Due | ||
November 10, 2022 | Project 2 work in class | Project 2 Progress Report Due | ||
November 15, 2022 | Test Driven Development: Agile, XP, Scrum | |||
November 17, 2022 | Refactoring | Quiz 2 out and due | ||
November 22, 2022 | No silver bullet | |||
November 24, 2022 | No Class - Thanksgiving | November 29, 2022 | Project 2 presentation and demo: Day 1 | Project 2 Due |
December 01, 2022 | Project 2 presentation and demo: Day 2 | |||
December 06, 2022 | No Class - Reading Period |
Office Hours and Questions
Office Hours:
- Instructor: Tuesdays 2:00 PM - 3:00 PM in CoC 253
- Tanuj: Tuesdays 11:00 AM - 12:00 PM
- Sriya: Thursdays 11:00 AM - 12:00 PM
TA Office Hours location: CoC Common Area
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.
Grading
Assignments (30%)
- There will be four group assignments and each will cover 5% of your total grade.
- There will be two individual assignments and each will cover 5% of your total grade.
- All assignments follow the “no-late” policy. Assignments received after the due time will receive zero credit.
- All students are expected to follow the Georgia Tech Academic Honor Code.
Project 1 Progress Report (5%)
- A project progress report should be just one page pdf (less than 500 words single spaced)
- A project proposal should include:
- Introduction/Background
- Software Technologies
- Software output/purpose
- Conclusion
Project 1 (20%)
Project 2 Progress Report (5%)
Project 2 (30%)
-
Quizzes (10%)
- There will be two quizzes based on the lecture theory and each will cover 5% of your total grade.
- The quizzes will be 10 minutes long and will have a 12 hour window for you to attempt.
Rubric
Assignments
Project Progress Report
Project Rubric
Attendance
Attendance at each class session is required of all students. Participation in in-class discussions and activities is integral to learning and applying computer science concepts in your project.
- If you have an institutionally-approved absence (for example, an excuse approved by the Dean’s office) it is not counted against your attendance record. You are required to provide your instructors with documentation (such as a Dean’s letter) of an institutionally-approved absence.
- Students are given three (3) non-institutionally approved absences, for which you are not required to provide any explanation or supporting documents, although a courtesy email to your instructors is appreciated.
- Each additional absence after the allotted three (3) non-institutionally approved absences deducts 1% from a student’s final grade.
- If you are absent, it is your responsibility to check the course agenda and/or to find out from a teammate what you may have missed while absent and to have completed any work due the day you return. If you know you will be absent, please email your instructors as a courtesy. Please speak with your instructors and confirm what needs to be done.
- Attendance will be taken at the beginning of each class; should you arrive late, it is your responsibility to check in with the instructor so that an absence is not recorded. Arriving at class more than 20 minutes late is counted as an absence. If you know that you will be late to class, please let the instructor know.
Additional Resources
- Github Repo for Class demo scripts
- Markdown Cheatsheet
- Github Beginner's Intro - Thanks Markian!
- Git Commands Cheatsheet
- .gitignore
- 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