Al Idian

Course Review: Software Development Process

2022-08-20

Georgia Tech Online Master of Science in Computer Science (OMSCS) is an innovative, award-winning graduate program offered by the College of Computing at Georgia Tech. (Wikipedia)

As I make my way through this program, I intend to write short, opinionated reviews of the courses I complete. My intended audience for this is the current or prospective OMSCS student who is considering taking these courses.

Overview

CS6300 is an introductory course on the software development process. It emphasizes skills and knowledge essential to anyone joining a modern software team and is probably one of the least challenging courses in the OMSCS program. If you have experience working in a software development team, expect to already know many of the things covered in this course.

Topics covered include the software development life cycle, version control systems, the fundamentals of system architecture and design, and software testing. Before taking this, make sure you are comfortable with Java and object-oriented programming.

Projects

This past semester, there were six assignments and two projects composed of several deliverables. All assignments and projects can be completed on any reasonably-modern machine, regardless of processor or operating system.

Each assignment was relatively short, meant to be completed in a week. Some could be as trivial as completing a survey or doing basic-to-intermediate operations in git and GitHub. The most time-intensive assignments involved designing and writing unit tests for a small Java app. Each assignment was weighted differently, ranging between 2 and 18 percent of the final grade.

The two projects were more intensive. One was completed as part of a group and the other was individual:

Learning materials

Lectures were all pre-recorded and are of better quality than any other course I’ve seen so far in the OMSCS program. Much credit here goes to the instructor, Dr. Alessandro Orso, who succeeds at communicating his passion for the topics at hand.

There is no course textbook but two readings cited near the end of the semester are well worth reading for any software development professional: The Cathedral and the Bazaar by Eric Raymonds and No Silver Bullet by Frederick Brooks.

Exams

There are no graded exams in this course. Simple end-of-module (mini-) quizzes are provided to help gauge student engagement and understanding.

Teaching staff

Unlike all other courses I have taken so far in OMSCS, the professor is heavily involved in the day-to-day of CS6300. He holds weekly office hours and is responsive (as much as can be expected) in the course discussion board.

In general, the course is managed impeccably by the professor and his TAs. TA Justin Durkin stands out as an absolute rockstar in the way he engages with students in the discussion board.

Project and assignment results were provided within an acceptable timeframe, and students are always apprised of any changes in schedule.

Difficulty

CS6300 is the easiest course I have taken so far in the OMSCS program. Having had significant work experience as a software developer, this was something I expected. I was unsure of how the group project would go but I was fortunately teamed up with some great performers who wanted to succeed in the course just as much as I did.

On average, I spent less than ten hours per week on this course.

Conclusion

CS6300 is well-run but does not really seem to be a graduate-level course. It is a great one to take for those with little-to-no work experience in a software development team. Taking CS6300 in the summer allowed me to ease off and recharge in preparation for a heavy semester ahead in the fall.