Back to Blog

My Favorite CS Courses At Cal Poly

April 13, 2025 (1w ago)

32 views

cal poly As a computer science major at Cal Poly, I had the privilege to take a lot of very fun classes! Here's how I would rank the classes... in order!

If you're interested, this is the class flowchart official flowchart for the Computer Science program at Cal Poly.

1. CSC 430 - Programming Languages

I took this class in my Sophomore year Winter quarter. In this class, we program in Racket, which is a functional programming language! It was my first time programming in a functional programming language, and it was pretty challenging as well! My professor was really funny as well, shout-out John Clements the GOAT!

; A simple factorial function
(define (factorial n)
  (if (<= n 1)
      1
      (* n (factorial (- n 1)))))
 

Oh... and the final was pretty brutal though I am not gonna lie.

2. CSC 357 - Systems Programming

I took this class in my spring quarter of my freshman year. It was definitely one of the most challenging, but rewarding classes. I had it with Professor Nico, who is renowned as one of the hardest professors in the CS department - if not the hardest. I remember I had to stay up hours and hours to finish these difficult assignments with my friends. Probably the hardest assignment was indeed myTar, where we recreated tar in C.

My favorite project was MyTalk, where we created a client/server chat application in C using sockets. Really cool.

I honestly think that programming in C was very rewarding, as I got to really understand low-level things, especially memory allocation. Never forget to run valgrind and make sure you don't have any memory leaks!

Oh also, the final was pretty brutal as well.

3. CSC 202 - Data Structures

This was my first CS course at Cal Poly! It had pretty difficult assignments, and covered a lot. It was my first time really touching python as well, and had taught me a lot of what I needed to learn for coding/ technical interviews.

This course was in python, and to my best memory we covered:

I remember writing out these nodes so, so, so many times for my projects.

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

I had a lot of fun in this class and met my day one friends in this class!

4. CSC 321 - Computer Security

This was such an amazing class as I learned actually quite a lot of industry things and important concepts.

One thing that was extremely important that I learned the principle of least privilege which is essentially: every program and user should operate using the least amount of privilege necessary to complete their task. For example, if a program only needs to read a file, it shouldn't have write permissions. This helps minimize potential damage from security breaches and programming errors. It's a fundamental security concept that's widely used in modern systems - from Linux file permissions to cloud IAM roles.

It was super useful to know as going into that summer, one of my projects at the Federal Reserve Bank of San Francisco was to actually enforce the IAM policies to be least privileged.

Overall Thoughts

Cal Poly's computer science program is pretty fun, it's really enjoyable with challenging projects and really nice professors, as the class size is usually around 30 people. It allows you to really know the professor and that's something I appreciate.