CS 6300: Software Development Process

Instructional Team

orso_course

Alessandro Orso
Creator, Instructor
Buzz

Will Johnson
Head TA
Buzz

Erin Paciorkowski
Head TA

Overview

This course provides an in-depth study of the process of developing software systems, including: the use of software processes in actual product development; techniques used to ensure quality of the software products; and maintenance tasks performed as software evolves. By the end of the course, students will understand the role of software processes in the development of software and will have experienced several types of processes, from rigid to agile. Students will also become familiar with a variety of modern technologies and development techniques and understand their connection to software processes.

This course counts towards the following specialization(s):
Computing Systems
Interactive Intelligence

Foundational Course

Computing Systems Specialization Core          Interactive Intelligence Specialization Core

Preview

Course overview

Sample Lesson

Sample Syllabus

Summer 2019 syllabus
Summer 2019 schedule

Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.

Before Taking This Class

Suggested Background Knowledge

Students should be familiar with at least one programming language (Java strongly preferred) and with basic software engineering concepts. Students are also expected to have taken an undergraduate software engineering course or have some experience in industry.

If you answer "no" to any of the following questions, it may be beneficial to refresh your knowledge of this material prior to taking CS 6300:

  1. Have you taken a software engineering course before or have you had some experience working as a software engineer in a company?
  2. Are you familiar with basic software engineering concepts, such as requirements, software design, and software testing?
  3. Are you familiar with the Java language? (Knowing another object-oriented language, such as C++ or C#, may be enough, but please keep in mind that all assignments and projects are Java-based.)
  4. Are you comfortable, or even excited about, learning new technologies and working with software tools?
  5. Do you have enough flexibility to work with a team that meets (remotely) on a regular basis?
  6. To gain an understanding of a typical CS 6300 project, please read the description of our Mobile Android App for Managing TODO Lists assignment.
Technical Requirements and Software
  • Browser and connection speed: An up-to-date version of Chrome or Firefox is strongly recommended. We also support Internet Explorer 9 and the desktop versions of Internet Explorer 10 and above (not the metro versions). 2+ Mbps is recommended; the minimum requirement is 0.768 Mbps download speed.
  • Operating system:
    • PC: Windows XP or higher with latest updates installed
    • Mac: OS X 10.6 or higher with latest updates installed
    • Linux: any recent distribution that has the supported browsers installed
  • Ability to install additional (free) software, such as the Eclipse Integrated Development Environment, on the machine used for the course.
  • Google Hangouts will be used for office hours.

Academic Integrity

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.