Skip to content

Latest commit

 

History

History
executable file
·
27 lines (19 loc) · 2.22 KB

17214.md

File metadata and controls

executable file
·
27 lines (19 loc) · 2.22 KB

17-214: Principles of Software Construction

Category Difficulty
HW 7
Exams 8

This is the intro class in the software engineering department at CMU. It is a required course for the software engineering minor, and it fulfills the coverage requirement for ECE majors. For many students it's the first realization that software engineering is quite different from just computer programming (15-122). The class focuses on objects (OOP principles), design patterns (how to design good software), and concurrency (basic concurrency in Java). Most programming assignments are quite open ended with design decisions up to the discretion of the student.

What to expect

  • HW: Software projects build in difficulty leading up to a larger design project where students build an interactive game. After that projects get easier with one of them being a team project.
  • Exams: Midterms can be tough due to either a time crunch or nit-picky grading. Instructors aim for a 65 average on exams. Understanding the ins and outs of Java as well as design patterns will set you up for success.

How to do well

  • Start the homework projects early and design at least part of your solution before coding
  • Go to recitation, which have demonstrations that help with homework
  • Read the required readings, as they include important material not covered in class (but students are expected to know)

What to watch out for

  • Large and complex solutions to homework projects allow for more places for points to be taken off, aim for well-designed, simple solutions
  • Professors can be sticklers for using Java effectively, use enums!
  • The game project seems like a lot but a good design can lead to the game and GUI implementations being easier
  • In comparison to the 15 page writeups you may see in other CS classes for projects, the writeups in 17214 are much shorter (5 pages). There are no intended solutions which allows you to design your own software solution
  • Homework writeups are deliberately vague, but make sure to follow any requirements that are specified (e.g. using a specific design pattern). Be aware that design is often worth as much as if not more than the functionality of your solution