Class Review

ECE 13 Computer Systems and C Programming with Alexey Munishkin: UCSC Class Review

By: Jacob Dennon    June 26th, 2023

I don’t know how much merit there is in writing a class review for a major required course. It’s not like most people have a choice of taking it. At most, this will soothe someone’s anxiety about the class. Regardless of the meaningful(less)ness of this review here it is: available for your consumption.

The C programming language is tough. It’s unforgiving and scary. There were times where I was nauseous because I was staring at the screen for so long trying to kill a pesky bug. When you write code for this language, you don’t have the luxuries you do in python. Want to print a variable? You have to learn all the format specifiers. Want to set all the characters in a string equal to something? Iterate over the loop, make sure you have the right ascii/hex value, make sure that value is a macro so it doesn’t count as a magic number to the graders, make sure you don’t access memory outside the string, AND DON’T FORGET THE NULL POINTER! But it’s just so rewarding once you get it. It’s the Godfather of all programming languages, if you can learn C, you can learn anything.

The class itself wasn’t crazy good. I was hoping for a more collaborative experience and a class time that invoked deep thoughts about programming in itself. Instead, it was people cheating on quizzes and learning what not to do when doing the labs. Furthermore, the material was a regurgitation of previous years, and although I don’t expect them to reinvent the curriculum every year, I would hope that the lab manuals would at least be kept up to date. Some quiz questions were straight dogwater due to the canvas formatting.

Still, I don’t want to come off as a negative nancy. The class was by no means a disaster, it was actually pretty good. I feel like it’s important to list out what could’ve been better though. Even though the labs were reused, they were great exercises to learn C. I’m really glad I took this class; it made me a better programmer and a better learner.

As for Alexey, I don’t have anything bad to say about him. He did a good job communicating and holding things together when they started to fall apart.

Oh yeah… I suppose I should write about the microcontrollers we used. They we're like an afterthought to be honest. We barely scratched the surface of embedded systems design. It was the equivalent of teaching a calculus course by simply handing out derivate/integral formulas without going over the derivations. Most of the course was devoted to teaching C basics.

I’m under the firm belief that there should be an easy 2 or 3 unit course that’s just the intro to C. Then, students will diverge and take the software course or the embedded system course depending on their major. This would solve the unbaked embedded systems course, and the crazy hard software course problems.