I went through the Computer Science program at Northern Illinois University and additionally minored in Business Administration at the NIU School of Business.
The Computer Science Department at NIU says they try to model their undergraduate Computer Science curriculum after what the east coast Ivy League universities are doing. That’s because this spread of skills hits all the fundamentals that professional software engineers should know before going out into the field. Here is a list of all the Computer Science courses I took at NIU:
- CSCI 240 – Computer Programming in C++
- CSCI 241 – Intermediate Programming
- CSCI 330 – UNIX and Network Programming
- CSCI 340 – Data Structures and Algorithm Analysis
- CSCI 360 – Computer Programming in Assembler Language
- CSCI 463 – Computer Architecture and Systems Organization
- CSCI 466 – Databases
- CSCI 467 – Introduction to Software Engineering
- CSCI 480 – Principles of Operating Systems
- CSCI 483 – COBOL and Mainframe Programming
- CSCI 400 – Independent Study of Computer Graphics
- CSCI 631 – Computer Graphics and Rendering Engines
My favorite class was Principles of Operating Systems. It is the final class undergrads take and it was so good because knowing how operating system work ties together everything that software can do. The hardest class was Computer Graphics and Rendering Engines. It was a graduate level class and it was very gladiatorial in the way that students took the raw the liner algebraic theorems that comprise our beloved 2D and 3D graphic rendering engines and we wrote it out in C++ code. I fought very hard and earned a B.
Computer Science undergraduates must first apply to the major and pass the legendary courses Computer Programming in C++ (CS 240) and Intermediate Programming (CS 241) to officially enter the major. It sounds intimidating, all the students I knew and took it seriously passed.
After graduating, took it upon myself to learn web development, containerization, and kubernetes to complete technical acumen. I do wish I learned more about those in my undergraduate, but all the classes I took gave me enough background on the fundamentals to successfully use anything I want.