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.
Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.
You can view the lecture videos for this course here.
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:
- Have you taken a software engineering course before or have you had some experience working as a software engineer in a company?
- Are you familiar with basic software engineering concepts, such as requirements, software design, and software testing?
- 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.)
- Are you comfortable, or even excited about, learning new technologies and working with software tools?
- Do you have enough flexibility to work with a team that meets (remotely) on a regular basis?
- 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.
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.