As I sit in my Engineering Management and Communication lecture, the existential crisis begins once again. Despite extensively researching computer systems engineering in my first year, I still sometimes wonder exactly what it is I am studying. Why am I not doing software or electrical? What makes computer systems different?
In this post, I will cover the key areas computer systems students specialise in, and how they relate to what we learn in our courses.
Computer systems breaks down into 4 key areas:
Computer architecture and microcontrollers
What are the building blocks of a computer processor, and how do they interact?
When we think of architects, we think of cool people who can draw and design buildings. As someone who hasn’t drawn anything but circuits for the past year, I’d hate to see what my buildings would look like. Computer architecture is way cooler because we basically abstract the whole thing with squares and arrows and only get in to the details when necessary.
You learn the basics of computer design and architecture in ELECTENG 101, but we expanded upon this last semester in COMPSYS 201. Have you ever wondered what the practical uses of the timing mechanisms you use are? Why is a computer designed the way it is? Even if you are not directly designing the hardware of your device, understanding computer architecture helps you understand what decisions to make.
Embedded systems design
An embedded system is like a mini-computer with a function within a larger system.
For example, a drone is a mechanical and electrical system, but embedded within it is devices to allow you to control the drone. If all we had to consider is how we are getting the drone to function, our lives would be simple. However, security, speed, and functionality are just some of our design parameters to consider (bring out the 115 MART!). For example, if your drone isn’t secure enough and was hacked remotely, your precious 360 degree shots of the new engineering building could be compromised!
I am still yet to learn much about making things secure besides a bit of fearmongering in COMPSYS 201 and some fancy software design principles within C++ in COMPSYS 202, so I wouldn’t let a second-year computer systems engineer do anything actually important (this is why no one hires second years for internships :(((). I’m sure third-year computer systems students are as secure as can be!
Hardware design of digital systems
Why is your phone so much thinner this year? How come your gaming PCs frame rate 60fps isn’t cool and unique anymore?
In our second semester course, ELECTENG 209, we have a group project to develop a smart energy monitor. It’s not a matter of just connecting a bunch of Op-amp’s together and calling it a day, When our devices get smaller, we don’t magically shrink every component. We have to consider the design of the system and how each component interacts. These considerations are the process hardware engineers go through every time they make your computers more powerful, and involves programming and hardware design. If you are a lover of programming but do want something more practical, computer systems is a ~fun~ specialisation.
The rumour I heard when I went into computer systems was that 80% of Computer Systems graduates end up going into software. Why? Anyone who does any coding and some design just gets given the title ‘software engineer’. If you think sitting at a desk all day writing code sounds like the ideal life, I wouldn’t worry too much about what specialisation you do as long as it involves some programming.
In computer systems second year, we only have 3 papers that are programming related which are COMPSYS 201 (C & VHDL), ELECTENG 209 (C ), and COMPSYS 202 ( C++) but more important than the languages we learn is the hardware and software design principles behind how to write code for a practical use.
This post was in large part an attempt to convince myself I am doing an at least slightly useful degree (it worked! existential crisis averted once again!). I hope it allows you to consider whether or not you are interested in computer systems. Also, this post is too long, but my ability for summarising has been sucked out by my Engineering Communication course requiring me to summarise 50 pages into 200 words (send help).
Lastly, a question to ask yourself: Which specialisations will allow you to do more of what you enjoyed most in first year?