CS 3300: Introduction to Software Engineering (Spring 2020)

Course Information

Instructor:
Mahdi Roozbahani
TA:
Jhanavi Sanjay Sheth (jsheth8@gatech.edu)

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 prior knowledge in some of the SE tools (Eclipse)
    • Java
    • Some client side programming (js, css, html)
    • Knowledge in teamwork and being able to collaborate effectively with your teammates
    • Having cloud computing knowledge is a plus

Note: The topics in this course may change.

Schedule

Date Topic Assignment Due Readings
January 06, 2020 Introduction and Overview | Teams Creation Class Piazza GT Honor Code
January 08, 2020 Introduction and Overview | Teams Creation;
Project Planning (Part 1) | Project 1 Description
Web-app project to find places
January 13, 2020 Tool/Tech day #1: Eclipse, java 8, and Maven Planning assignment out
January 15, 2020 GitHub and Teamwork in class GitHub Student Account , Additional resources
January 20, 2020 No Class - MLK day;
January 22, 2020 Tool/Tech day #3: HTML, CSS;
Tool/Tech day #3: js,jQuery, Ajax (Ex. JQuery Table, and js libraries);
January 27, 2020 Requirements | Discussion of requirements document Requirements assignment out Planning assignment due Class Example Project
January 29, 2020 Software Process or Life Cycle Models
February 03, 2020 Tool/Tech day #4: Spring Boot Server, REST API
February 05, 2020 Tool/Tech day #5: Google App Engine and Location API
February 10, 2020 Guest Lecture by Dr. Light - Software design (Part 1); Designing Software Design assignment out Requirements assignment due
February 12, 2020 Software design (Part 2) | Discussion of design document | Exercise
February 17, 2020 Project 1 discussion, Progress report (one page)
February 19, 2020 Software testing (Black-box)
TSL generator class package
Test assignment out Design assignment due TSL Generator GitHub Repository
February 24, 2020 Software testing (Black-box);
Software testing (White-box)
February 26, 2020 Software testing (White-box)
March 02, 2020 Presentation guidelines
Scoring guidline
Test assignment due
March 04, 2020 Project 1 presentation day
March 9, 2020 Guest Lecture by Soon-To-Be Dr. Yuzhi Guo and Google experience
March 11, 2020 Project 2 description and team creation
March 16, 2020 No Class Spring Break
March 18, 2020 No Class Spring Break
March 23, 2020 No class/ Research travel
March 25, 2020 Transition to online
Class Video Lecture
March 30, 2020 XP and Test Driven Development
Class Video Lecture
April 01, 2020 Refactoring
Class Video Lecture
Project 2 discussion
April 06, 2020 Design patterns and Design patterns examples
Class Video Lecture
Progress report (one page) due
April 08, 2020 Debugging
Class Video Lecture
April 13, 2020 Team work in class to prepare final delivery and presentations; No silver bullet: The Cathedral and the Bazaar
April 15, 2020 Project 2 presentation and demo: Day 1 Submit your GitHub link and Project presentation before 9:30 am (EDT), April 15, 2020
April 20, 2020 Project 2 presentation and demo: Day 2
April 22, 2020 No Class Reading Period

Office Hours and Questions

  • Office Hours:

    • Instructor: Mondays 10:45-11:45am outside the class(access to my office is extremely hard)
    • Jhanavi Sanjay Sheth: Tuesdays 01:30-02:30pm
    • TA Office Hours location: in Klaus building lobby at the first floor (next to room 1325)

  • Piazza will be the main place for course discussions and announcements. If you have questions, please ask it on Piazza 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 Piazza, you can use private messaging in Piazza.

Grading

  • Assignments (20%)

    • There will be four 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 (25%)

  • Project 2 Progress Report (5%)

  • Project 2 (40%)

  • Class participation (5%)

    • Your class participation score will be graded based on attendance and possibly in-class quizzes. For some lectures, I will bring my roll call sheet. I will inform students beforehand in the class not on Piazza that I am going to bring my roll call sheet for the next upcoming lecture.
    • Participation in class discussions (including asking relevant questions in class, volunteering to answer questions on Piazza) will be considered when determining your final grade. It will be especially useful when you are right on the edge of two letter grades.
  • Additional Resources