Sean Coughlin
Sean Coughlin's Blog

Follow

Sean Coughlin's Blog

Follow
UIUC MCS - CS 427 Review - Software Engineering

UIUC MCS - CS 427 Review - Software Engineering

Computer Science 427 Software Engineering is an introductory software engineering survey course.

Sean Coughlin's photo
Sean Coughlin
·Dec 11, 2022·

4 min read

Play this article

Table of contents

  • Overview
  • Class Content
  • My takeaways

Overview

  • TLDR: For undergrads or those changing professions to software engineering this could be a good (even challenging) course. If you are already a software engineer, this class won't be worth your time.

  • Difficulty: Easy

  • Opinion: Disliked

  • Weekly workload: 6 hours

  • Semester taken: Fall 2022

Class Content

Lecture Content

The course was a survey of broad software engineering principles. The lectures covered software engineering and methodologies, requirements designing, a few architecture paradigms, object-oriented design, testing, debugging, and maintenance.

The only topics that were particularly in-depth were object-oriented design and testing because those each had two weeks' worth of lectures. There were also several optional interviews to watch with industry professionals. Each week had a corresponding for-credit quiz with unlimited attempts.

MPs

There are five machine problems. None of the assignments took me longer than two to three hours, and the last one I completed in less than an hour. The MPs had been recently redesigned and tied together nicely. Each one covered a different course topic in the jsoup code base.

  • MP One - Java build systems (Gradle and Maven)

  • MP Two - Design Patterns

  • MP Three - Testing (JUnit and random test creation)

  • MP Four - Debugging

  • MP Five - Code Smells

Final Project

The final project was building an Android app according to a specification provided by the instructors. The project was completed in groups of eight. One member of the group acted as manager, one member acted as a tech lead, and the others were regular developers. Groups are assigned semi-randomly, as they take into account experience and time availability.

The project is split into five deliverables with deadlines spaced two weeks apart. They would not release the next section until the previous one was completed. While working full-time, I found this unreasonable and difficult to time budget for.

If you have previous Android or app development experience, then the assignment will be rather trivial. However, if Android development is brand new, expect to put some effort into this assignment.

Essay

Grad students, or any student in the 4 credit hour version, write a 5-10 page, single-spaced paper on a software engineering book. The course staff provides a list of acceptable books but is open to suggestions for additional books. There were quite a few complaints about the assignment on the course forums, but I rather liked the assignment and my book choice. I read The Pragmatic Programmer which ended up being quite good and an easy read.

The Final

The final was 15% of the final grade, one and one-half hours, and hosted on ProctorU. I find using ProctorU very distasteful, but unfortunately, there was no alternative. The final was closed-book.

Overall, the final was relatively easy, but also quite nit-picky and required an above-average amount of memorization. I would highly recommend keeping a list of key terms throughout the semester as it will help your study process.

My takeaways

I would say the course quality was overall pretty good and it seemed like the instructors were passionate about making it better. Easily the best part of the class was the responsiveness of TAs and professors. They would quickly fix any course issues and respond to questions. The course offered up to 5% for participating in the forums (Campuswire), so students were also active and readily answered any questions.

Despite the overall quality of the course, I still was not the biggest fan. The content was too trivial if you already have engineering experience. I studied computer science as an undergrad, had two software engineering internships, and have been working as an entry-level software engineer for a year. By no means am I an expert software engineer, but I do have some experience which made this class feel elementary. Most of the students and my entire final project group were undergrads, which left me feeling out of place as a grad student.

My recommendation is to skip this course if you already have the experience. However, if you don't have much experience, this is a good class, and you will learn a lot.

Banner Credit

The banner was generated using the UIUC LinkedIn Banner Generator. If you need an Illinois-themed banner for anything, it's an awesome tool.

Did you find this article valuable?

Support Sean Coughlin by becoming a sponsor. Any amount is appreciated!

See recent sponsors Learn more about Hashnode Sponsors
 
Share this