Computer Architecture, 7 Semesters
About Me
I'm a CompE alum as of December 2023, and will be pursuing an MS in ECE with a computer architecture focus starting Spring 2024. My aim is to finish my MS degree in 2 years, but who knows for sure how long it'll actually take. Outside of school, I am part of the Illini Table Tennis Club Team that competes in NCTTA tournaments.
My schedule is on the heavier side in the first two semesters (especially in my freshman spring semester), but this really allowed me to take comp arch/comp arch-adjacent electives sooner and still graduate in 3.5 years while only taking 3 techs per semester on avg.
Features of this Schedule
- Can be modified to 6 semesters (more details later)
- CompE curriculum prior to Fall 2021 when degree reqs were changed
- First two semesters done completely online (COVID semesters)
- EE -> CompE transfer after 3rd semester
Useful Links
Schedule
AP Credits and Proficiency Tests
Course Name | Credit Hours |
---|---|
CHEM102 - General Chemistry I | 3 |
CHEM104 - General Chemistry II | 3 |
CS101 - Intro Computing: Engrg & Sci | 3 |
ECON1-- | 3 |
ECON103 - Macroeconomic Principles | 3 |
MATH220 - Calculus | 5 |
MATH231 - Calculus II | 3 |
PHYS2-- | 4 |
PHYS211 - University Physics: Mechanics | 4 |
PS1-- | 3 |
PS1-- | 3 |
RHET105 - Writing and Research | 4 |
MATH225 - Introductory Matrix Theory | 4 |
MATH241 - Calculus III | 5 |
UFL12-- LEVEL I OF THE LOTE | 4 |
Total | 54 |
Note: The courses/credits marked with X-- mean they don't count for a particular course, but count as credit hours towards the 128 credit hour requirement for the degree.
I have to say, I didn't realize how much those AP tests and college credit saved me - I graduated in 3.5 years and saved a semester's worth of tuition, and could've even saved a full year. I also got earlier registration time tickets because the number of credit hours AP tests gave me put me at junior standing at the beginning of freshman year.
1st Semester, Freshman Year, Fall 2020 (COVID)
Course Name | Credit Hours |
---|---|
ECE110 - Introduction to Electronics | 3 |
MATH286 - Intro to Differential Equations Plus | 4 |
PHYS212 - University Physics: Electricity and Magnetism | 4 |
ENG100 - Engineering Orientation | 0 |
MUS130 - Music Then and Now | 3 |
Total | 14 |
Note: MATH286 no longer exists as a course since this was before the requirement got changed to MATH285 and MATH257.
This schedule ended up being a lot lighter than I'd originally anticipated, mostly because I'd taken AP Phys C: E&M in high school, so PHYS212 ended up mostly being a review, though I will say I spent a lot of time on PHYS212 just completing all the classwork. On top of that, taking ECE110 concurrently felt like an additional review of PHYS212 since both overlap with lots of circuit analysis. So really, the only two classes I was actually learning only new things were MATH286 and ENG100, but ENG100 is a completion-based course, so that was also very low effort and low time commitment. MATH286 was also completely asynchronous when I took it, so that class also ended up not proving too difficult either. Since I had extra credit hours, I registered for MUS130 to fulfill both my Humanities & The Arts and Western/Comparative gened requirements.
Since I ended up having a lot of free time, I decided to join Illini Solar Car. It was a great way to get some hands-on work and learn some new skills. It also helped me later down the line as I was searching for internships in my sophomore year as a talking point for interviews.
Tips
- Try out many different RSOs while you still have the time as a freshman - when you start taking upper-div courses, you'll have less time to do so. Also, if you find some you like and stay committed to them, they can help out when you're interviewing for internships as a way to demonstrate your skills to potential employers.
- If you got a 4 on an AP test like I did for on E&M, study for and attempt the proficiency test because you will be relearning much of the same content and can finish your degree reqs quicker by skipping a class if you want to graduate early. Even if you don't pass the proficiency test, it's okay because it won't be counted against you in any way on your transcript!
Freshman Year, Winter 2020
Course Name | Credit Hours |
---|---|
CS125 - Intro to Computer Science (Proficiency Test) | 4 |
Total | 4 |
Note: CS125 is no longer offered, and instead has been split into CS124 - Introduction to Computer Science I and CS128 - Introduction to Computer Science II. I chose to take the proficiency test for CS125 because at the time, I was an EE major pursuing a CS minor, and this was one of the required classes for the minor before the CS curriculum got changed, and it would allow me to take CS225 - Data Structures sooner since I hadn't taken ECE220 - Computer Systems & Programming yet, the ECE prerequisite to CS173 - Discrete Structures, which was the second prerequisite to CS225. This way, I could take CS173 in the spring semester, then CS225 the following fall. I wanted to take CS225 sooner since it was a standard internship class, and I wanted to begin searching for internships sooner. The CS125 proficiency test wasn't too difficult to pass since a lot of it was AP CS A knowledge, which I took in high school. So, for the updated curriculum, I would suggest anyone who wants to take CS173 second semester like I did to take the CS124 Proficiency Exam if you've taken AP CS A in HS.
2nd Semester, Freshman Year, Spring 2021 (COVID)
Course Name | Credit Hours |
---|---|
ECE120 - Introduction to Computing (Honors) | 4 |
ECE210 - Analog Signal Processing (Honors) | 4 |
CS173 - Discrete Structures | 3 |
PHYS213 - University Physics: Thermal Physics | 2 |
PHYS214 - University Physics: Quantum Physics | 2 |
GEOG101 - Global Development & Environment | 3 |
Total | 18 |
This was my first and last time taking the maximum credit hours with almost every class being technicals - I do not recommend. ECE120 and both of the PHYS courses were very time-consuming as is, and on top of that learning difficult topics in ECE210 made finishing the semester a real struggle. While taking CS173, I found I had zero interest in CS theory, so that really compounded the struggle. Then, I also took GEOG101 to fulfill my Social And Behavioral Science and Non-Western gened requirements and didn't find that class particularly interesting either. I also was doing work for the honors section of ECE210 and ECE120, but I'd say even though it was additional work that both really enhanced the learning experience rather than feeling like doing extra work. I'd like to especially highlight the ECE120 Honors Lab - it was a fun project I got to work on which ended up helping me secure my first internship as a good talking point on my resume. With all that said, each week I felt like I barely had any free time since I was always bogged down with all the work being thrown at me and juggling the different due dates for all the classes I was taking.
Tips
- Take it easy your first two semesters here, unless you're dead set on graduating ASAP. Your mental health will thank you later, trust me.
- Sign up for the ECE110/ECE120 Honors Lab, ECE198JS, if you're a James Scholar - it's a very worthwhile experience to apply what you're learning in 110/120 and even begin to make a positive impact on the world early while also learning valuable ECE and teamwork skills.
- This won't apply to everyone, but when choosing geneds, try to find geneds you at least have even a little bit of interest in - it makes completing the work for that course less of a bore, speaking from experience.
- Join class discords (via the discords in the Useful Links) - they really help in fostering discussion about the class material in that you can get help from others as well as solidify your understanding by helping others. You might even think of it as a pre-CA training to see if you want to become a CA for one of the courses you took!
Freshman Year, Summer 2021
Course Name | Credit Hours |
---|---|
ECE220 - Computer Systems & Programming | 4 |
Total | 4 |
If you've had prior programming experience, especially if you've taken AP CS A, you don't need to worry about this class at all - many of the concepts that are taught are concepts you've learned in AP CS A (except in C and a little bit of C++ at the end), and the new concepts were not too hard to learn either. Also, be sure to get the hang of LC-3 programming at the end of ECE120, because that will make your life a lot easier at the beginning of ECE220. With these tips in mind, the weekly MPs should not take too much time, and if you also take the time to understand the MPs, you'll feel confident going into the midterms and final.
3rd Semester, Sophomore Year, Fall 2021
Course Name | Credit Hours |
---|---|
ECE310 - Digital Signal Processing | 3 |
ECE311 - Digital Signal Processing Lab | 1 |
CS225 - Data Structures | 4 |
ECE329 - Fields and Waves I | 3 |
KOR201 - Elementary Korean I | 5 |
Total | 16 |
Taking ECE220 over the summer allowed me to really lighten my load this semester, and only take 11 credit hours worth of technicals. I also finished JRE this semester, with CS225 being the last class I needed, which set me up to transfer to CompE next semester.
ECE310 was a lot lighter in terms of work compared to ECE210, but more difficult conceptually. It's basically the discretized version of 210 to compensate for the limited memory computers have - all the signals are sampled continuous signals, and the signal analysis and filtering focuses around this aspect. The exams were very conceptually difficult, so be sure you fully understand the homeworks and collaborate with others on the practice exams, which they don't release solutions for. I also highly recommend taking ECE311 to supplement ECE310 - it gives great insight into how you can apply what you're learning through Python labs.
CS225 was quite time consuming due to the amount of work in the class - MPs, labs, and a final project (which was required when I took it). Just be sure to stay on top of the main work, and don't worry too much about the exams because there is 10% worth of extra credit in the class available in different forms. ECE329 is basically a more advanced PHYS212 with some new topics. It isn't terribly difficult as long as you have a good understanding of the material in PHYS212 and MATH241, which you should have taken before or with PHYS212 anyways. It can just be a bit time consuming since the homeworks can get quite long with each question having more than one part to it.
Tips
- Office Hours are always your friend. And, to make the most of them, start assignments early so you're not backed up in a queue behind a bunch of other students who also decided to procrastinate.
- To complement the last tip, make friends when you can, whether it be in OH, online, or however - they are also a great help in getting through classes.
4th Semester, Sophomore Year, Spring 2022
Course Name | Credit Hours |
---|---|
ECE385 - Digital Systems Laboratory | 3 |
ECE313 - Probability with Engineering Applications | 3 |
ECE314 - Probability in Engineering Lab | 1 |
ECE340 - Semiconductor Electronics | 3 |
KOR202 - Elementary Korean II | 5 |
SHS222 - Language & Culture of Deaf Communities | 3 |
Total | 18 |
By this point, I'd already successfully made the transfer to CompE, so you may be wondering, why did I still decide to take ECE340? The main reasoning was that it was a prerequisite to ECE444 - IC Device Theory & Fabrication, which I was interested in taking to understand the physical processes behind how the chips we use every day are manufactured. While ECE340 is 3 credit hours and low time commitment, it is very conceptually difficult. On top of that, practice exams are not given, so you will have to be sure you understand the homeworks as well as the lecture material, which is explained very well in the Streetman & Banerjee textbook, to do well on exams. ECE313 was also fairly low time commitment, but also very conceptually difficult. As for ECE314, it felt like a lot of work for 1 credit hour - namely, there are weekly labs in ECE314 compared to the biweekly labs in ECE311. So I'd really only recommend it if the content in ECE313 is important to your field.
On the other hand, ECE385, while being only 3 credit hours, was very high time commitment. The labs are all very time consuming because what you are learning is likely nothing like you've ever learned before - you will learn about FPGAs (reprogrammable hardware - ooh!) and SystemVerilog, a hardware description language (HDL) used to describe digital circuits, and so while writing the "code," you have to remember it's not a high-level coding language like C++ and think about what hardware you're representing with the code you write. Subsequently, this means you have to attack debugging from a different angle and determine what parts of the digital circuit are causing the bug and how to remedy the bug with new/different hardware, and this is what takes up most of your time spent in the course.
Tips
- For CompEs looking to take ECE340, note that the ECE329 prereq is not enforced. If I had known this, I could've saved a semester by taking ECE385 the previous semester rather than this semester, getting one of the big 4 out of the way earlier, which would've allowed me to finish in 3 years instead of 3.5 years.
- However, for ECE385, I also recommend taking the class with a bunch of your friends who are also taking it - with a large network to collab with on the labs, it made completing the labwork much more efficient.
- If you can, try to secure an internship for the summer within the first few weeks of the semester. But, this is not to say it's not possible to get an offer later - in fact, I got mine near the end of March, so don't lose hope if you don't have one yet!
5th Semester, Junior Year, Fall 2022
Course Name | Credit Hours |
---|---|
ECE411 - Computer Organization & Design | 4 |
ECE408 - Applied Parallel Programming | 4 |
ECE444 - IC Device Theory & Fabrication | 4 |
Total | 12 |
Originally, I was taking this schedule with ECE402 - Electronic Music Synthesis, but ended up dropping midway through the semester since I was struggling to keep up with the coursework since ECE411 was my main priority for the semester. ECE408 was very low time commitment per week, and it was interesting to learn how a GPU works under-the-hood, and it was also really nice to see the parallels when taking ECE411 concurrently. On the other hand, ECE444 ended up being a lot more work than I expected - a quiz every 2.5 weeks, weekly homeworks, and lots of writing for prelabs and lab reports. Plus, the equipment broke midway through the semester, so we didn't even get to finish our wafers, which was kinda disappointing.
The main focus of this semester was ECE411, which had very enriching content (at least to me since I'm interested in computer architecture), but was ruined in the second half by an experience with a bad teammate on MP4 (read tips for more details).
Tips
- For ECE411, it's critical to find 2 good teammates to work with for MP4, what I'd consider the most fun part of the course. In my experience, we wanted to achieve a high-performing pipelined processor, but in the end barely completed the basic requirements of the MP due to an absentee teammate.
- As for any class, and especially ECE411, start early on the assignments - procrastination was another factor that really tanked my performance this semester.
6th Semester, Junior Year, Spring 2023
Course Name | Credit Hours |
---|---|
ECE391 - Computer Systems Engineering | 4 |
ECE498SJP - Accelerator Architectures | 4 |
ECE448/CS440 - Artificial Intelligence | 3 |
BTW261 - Principles in Technical Communication | 3 |
Total | 14 |
It's safe to say that after having a miserable fall semester, I was able to learn from my mistakes, and following my tips really helped me bounce back and do well this semester, especially in ECE391. Getting started early on the MPs in ECE391, as well as finding good teammates to work with on MP3 really helped me to do well in the class, much better than I'd done in ECE411. The same goes for ECE448/CS440 - starting the MPs really saved me headaches of having to do double the work when the due dates for 391 overlapped.
I took BTW261 to get my Advanced Composition requirement out of the way - it was pretty straightforward and low time commitment since all the work is graded on completion rather than quality. I made it a little more fun for myself by writing about what I was learning in ECE498SJP.
Speaking of ECE498SJP, that class was probably one of, if not, the best classes I've taken as an undergrad at UIUC. The experience of designing and implementing a hardware accelerator with a team was very enriching and enjoyable, and the class itself gives great insight on the state of the semiconductor industry today and what ways we are currently trying to address the imminent slowdown of Moore's Law. I highly recommend taking it if it's offered again if you're interested in computer architecture.
Tips
- Take ECE498SJP when the opportunity arises - it's a very unique opportunity that not many other unis offer and a good way to prove your skills through some hands-on work
7th Semester, Senior Year, Fall 2023
Course Name | Credit Hours |
---|---|
ECE374B - Introduction to Algorithms and Models of Computation | 4 |
ECE417 - Multimedia Signal Processing | 4 |
THEA101 - Introduction to Theatre Arts | 3 |
HORT105 - Vegetable Gardening | 3 |
FSHN343 - Foundations in Beverage Management: Introduction to Wine, Beer and Spirits | 2 |
Total | 16 |
At this point, I couldn't believe this would be my last semester here, and wondered where all the time had gone - it all passed by so quickly! Anyways, by this point, I had everything fulfilled except for 374 and 3 credit hours of Humanities & The Arts for my gened requirements. I chose to take ECE374B because I don't really have any interest in learning CS theory and heard the A section was more rigorous. Nonetheless, the course was still conceptually difficult for me because I struggled a bit with understanding CS173, but the exam drop was truly a life-saver, as well as the 9 homework problem drops, which I was able to save until the very end when the homeworks got harder.
I decided to take ECE417 because I saw it had signal processing in the name, and had a bit of interest in learning more about signal processing after taking ECE310. The coursework itself was low time commitment, but I ended up not actually finding it as interesting as I'd hoped. The MPs, while giving good hands-on work, tended more towards the ML/AI side of signal processing rather than the pure signal processing side.
Then, I took some geneds, one for my last 3 credit hours of Humanities & The Arts needed (THEA101), and two just for fun since it was my last semester here. Or so I thought.
Over the summer, after some discussion with my parents, I determined I wanted to do a Master's, and decided to apply here for the upcoming spring admission cycle. I was afraid I wouldn't make it in because I didn't have undergrad research experience, but was pleasantly surprised when I received an offer of admission near the end of October.
Tips
- Get involved in undergrad research as soon as you can, especially if you plan on pursuing a Master's Degree. It's a great way to get hands-on work in the field you're interested in, and a good stepping stone for grad school, both in terms of getting recommendation letters and for building research skills needed in grad school.
- For ECE374B, be sure to attend all the labs, since they usually give the solution to 2 homework problems for each weekly homework in lab sessions. Along those lines, try not to use homework question drops until the end to guarantee you have a high grade in the homework category.
- If you're in a situation like me with very few classes left to finish, underload if you can. I chose to take some other classes for fun, but only because I'm in-state so the tuition isn't nearly as expensive, so this tip goes to all you OOS-ers reading this schedule.
- If you don't plan on doing grad school, start applying to full-time jobs as early as the summer after your junior year, so you can clear the interview process earlier and don't have to worry about getting an offer throughout the year/semester, whenever you may be graduating.