CS 6300: Software Development Process

Instructional Team

Alessandro Orso
Alessandro Orso
Creator, Instructor
Sinh Tran
Head TA


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.

Foundational Course Computing Systems Core Course Interactive Intelligence Core Course


Course overview

Sample Lesson

Sample Syllabus

Current syllabus and schedule

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

Course Content

To access the public version of this course's content, click here, then log into your Ed Lessons account. If you have not already created an Ed Lessons account, enter your name and email address, then click the activation link sent to your email, then revisit that link.

Before Taking This Class

Suggested Background Knowledge

Students should be familiar with Java 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?
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.