Robotics, Physics Minor, 6 Semesters
Hello! I just graduated from Computer Engineering (May 2024) with a minor in Physics, both completed in 6 semesters. I was focused on learning foundational software and hardware knowledge, and then focused more on robotics and ML. This schedule is faster-paced but was definitely do-able without sacrificing friends/sleep. Despite it being a shorter amount of time in college, I feel like I hit most of the classes I wanted to take, bar a few that I will talk about later. I also diverge my personal opinions and tips for each class but know that they are all pertaining to me, i.e. we all struggle/succeed with different things so don't assume my experience will be yours or even represent the average experience. If you're reading this, I am rooting for you and remember to have fun!
Features of this Schedule
- Finished ECE with a physics minor in 6 semesters
- No summer classes, used that free time for research or internships
- Worked a part time internship alongside this schedule for the first 3 semesters
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 |
ECON103 - Macroeconomic Principles | 3 |
ENG1-- | 3 |
FR103 - Intermediate French I | 4 |
FR104 - Intermediate French II | 4 |
FR205 - French in Conversation | 2 |
HIST1-- | 3 |
MATH220 - Calculus | 5 |
MATH231 - Calculus II | 3 |
MATH231 - Calculus III | 4 |
PHYS211 - University Physics: Mechanics | 4 |
PHYS212 - University Physics: Electricity and Magnetism | 4 |
RHET105 - Writing and Research | 4 |
Total | 52 |
Not all of these classes counted towards satisfying degree requirements, but would count for general credit (for example HIST1-- and ENG1--). This was useful as I was able to enter as a standing sophomore, which gave me a little bit of priority for registering for classes. Almost all of this credit came from AP classes that I took in high school, most notably AP Calc BC and AP Physics C which allowed me to skip Calc II and both PHYS 211/212. I took Calculus III in high school and passed the proficiency exam which allowed me to start straight away with LinAlg and Differential Equations my first semester. If you took Calc III in high school I highly recommend taking the proficiency exam, it is not too difficult and I believe they offer the chance to take it twice in both June and August going into your freshman year.
Semester 1, Freshman Fall, Fall 2021
Course Name | Credit Hours |
---|---|
CLCV120 - Storytelling & Transformation | 3 |
ENG100 - Engineering Orientation | 0 |
ECE120 - Introduction to Computing | 4 |
MATH257 - Linear Algebra w Computational Appl | 3 |
MATH285 - Intro Differential Equations | 3 |
PHYS213 - Thermal Physics | 2 |
TE100 - Intro to ILEE | 1 |
TOTAL | 16 |
Reflection and Class Tips
- CLCV120: An entertaining half-semester class that I took as a GenEd requirement double dipper (Humanities & the Arts + Western/Comparative).
- ECE120: Great introductory class to the major, and I recommend occasionally reading sections from the corresponding Patt and Patel textbook because they give context to some foreign technical ideas. The exams seemed daunting because they were strucutred on PrairieLearn so that if you get your first answer attempt wrong you already lose points, but there weren't any curveballs on the questions and their material, so just study everything and double check your work.
- MATH257: This class consumed most of my mental bandwidth and time out of classes this semester. There was always work to do for it, from the online HWs, to the labs, to studying for the exams. Great class though, and if you take the time to properly learn LinAlg now it will yield many dividends in the future.
- MATH285: Personally one of the more easier math classes I took. Do the practice exams and they prepare you pretty well for the actual exams.
- PHYS213: Half semester class and was a straight forward physics class. It was definitely a lot of formula plug-and-chug but it covered interesting material and labs.
- TE100: A class that I took for fun because I was interested in ILEE. It was taught by a very upbeat and intelligent professor and I recommend taking this class to anyone interested in entrepreneurship! It is a pretty low-input class and you just discuss interesting stories and concepts.
You'll probably undergo more changes in the first semester of college than you will in the rest of your time here, so going a little lighter on class load to make time to have new experiences, make friends, and join RSOs is definitely valid. I also spent a lot of time this semester getting a job at Research Park which I 100% recommend. Research Park is a corporate cluster right next to UIUC and offers a lot of great introductory work experience for students. I did not have any technical work experience going into college, and the job at Research Park was the way that I could begin that process. Also, make it a point to make new friends, chances are the friends you make will last longer than the knowledge you gained studying for a particular exam. It is perfectly understandable to feel a bit overwhelmed with the wealth of new things you are responsible for when you start college, from making friends to making sure your grades are good to job hunting for the first time, but just remember that everyone is in the same boat and take it one step at a time!
Semester 2, Freshman Spring, Spring 2022
Course Name | Credit Hours |
---|---|
CS173 - Discrete Structures | 3 |
CWL207 - Indian Cinema in Context | 3 |
ECE110 - Introduction to Electronics | 3 |
ECE220 - Computer Systems & Programming | 4 |
PHYS214 - Univ Physics: Quantum Physics | 2 |
PHYS225 - Relativity & Math Applications | 2 |
Total | 17 |
Reflection and Class Tips
- CS173: The structure of this class is that there are weekly quizzes on the material of the previous week, and these quizzes essentially constitute your entire grade. It is a great way to learn and reinforce the material, and the knowledge I learned in this class I retained for a long time and was very useful for software engineering interviews. I could take this class only after taking the CS124 proficiency exam over winter break.
- CWL207: Another GenEd choice that was a double dipper (Social & Behavioral Science + Non-Western Cultures).
- ECE110: I personally loved the labs in this class, as you get some breadboard experience and get to understand some basic electrical engineering concepts in the real world.
- ECE220: This class also had really good MPs in my opinion. You get some experience building and debugging in C which will prove useful later on in classes like 391.
- PHYS214: The other half-semester physics class required for ECE majors. Make sure you do all the work for this class and ask questions if you are confused, some of the material is novel and abstract.
- PHYS225: Definitely the hardest material I ran into throughout my college experience. Relativity was very unintuitive for me and trying to learn these concepts on top of my otherwise hectic schedule was not easy. The class is really cool however and is the first physics class I took as part of my physics minor. The homework problems will confuse you at times, but go to office hours and work dilligently and you will be good. I'll leave a little aside at the end as to why I chose to be a physics minor at the end and this class played a large part in that decision.
This semester was probably my personal hardest semester in college because I was still getting acclimated and trying to balance 5 technical classes with my Research Park job. Nonetheless, it was very rewarding as I learned an important lesson that most often you will force yourself to learn how to time manage. At the beginning of the semester I took on all these classes with my job half-expecting to drop one or two of the classes. But as the semester progressed, I was able to successfully carve out time to manage each class, my job, and life. I think college is not just about learning new things and meeting new people, but also expanding on what you are capable of. If you are worried about not being able to do something, whether its an extra class or an RSO or even a new sport, give it a try and see whether you can do it or not. Generally I am speaking against the idea of saying before the semester even begins "Oh I won't have time to do X", and instead advocating for "Let's try doing X and we'll see how it goes". Obviously you should want to do each thing properly and not overwhelm yourself, but don't count yourself out prematurely!
Semester 3, Sophomore Fall, Fall 2022
Course Name | Credit Hours |
---|---|
CS225 - Data Structures | 4 |
ECE210 - Analog Signal Processing | 4 |
ECE385 - Digital Systems Laboratory | 3 |
SHS222 - Lang & Culture of Deaf Communities | 3 |
Total | 14 |
Reflection and Class Tips
- CS225: The MPs from this class will dominate your time but I honestly think I learned the most from the labs and the new data structures they introduced. This class is a great way to build some confidence in your programming ability and the issues you face debugging the C++ MPs will give you programming battle scars that are useful for jobs. There is ample amount of extra credit in this class so you shouldn't be too stressed about your grade.
- ECE210: A pretty hard class that introduces a lot of abstract and initially confusing material. I would highly recommend going to lecture and making sure you are following along incrementally.
- ECE385: This class consumed most of my time this semester. The weekly projects weighed on me as a problem that I needed to solve before I could do anything else but I had a great partner that made working on each lab an enjoyable experience. This was one of the favorite classes because of the fulfillment you would get each week when your project would work and when you built your final project from the ground up.
- SHS222: GenEd requirement fulfiller that satisfied both U.S. minority cultures and Social & Behavioral Science.
To graduate in 3 years for computer engineering you are going to need a hell semester, or basically a semester where you combine a bunch of heavy-hitting classes and take them all at the same time. For me, that was this semester, taking 225, 385, and 210 at the same time. I think however this is the easiest combination of classes out of potential hell semesters since they are all still relatively early on in the curriculum. For example, I wouldn't recommend having 391 in your hell semester since the time you spend on that class has high variation. I was still doing my Research Park during this semester, and this was when I started heavily recruiting for software internships which honestly took up more bandwidth than any single one of these classes. My advice is to be patient with each class, 225 and 385 are project-based so they can take up a lot more time than necessary if you are facing errors, but if you've been learning the material, getting help when you need it, and are calm, you should be able to complete everything in a reasonable amount of time. For fall semesters, don't neglect how much time the job search and recruiting will take up and factor that in when deciding whether to take certain classes or not. There is plenty of advice on the Wiki for applying and getting internships but my best advice is to be vigilant in applying early in the fall semester, practice a lot, and apply to as many places as you can. This is an interesting time in your career where you may have some experience but not a whole lot of experience but be confident in your ability to learn and leverage what you have done so far!
Semester 4, Sophomore Spring, Spring 2023
Course Name | Credit Hours |
---|---|
CS498MP - Machine Perception | 3 |
ECE310 - Digital Signal Processing | 3 |
ECE311 - Digital Signal Processing Lab | 1 |
ECE391 - Computer Systems Engineering | 4 |
GLBL392 - International Diplomacy and Negotiation | 3 |
Total | 14 |
Reflection and Class Tips
- CS498MP: One of my favorite classes I have taken in college. Professor Shenlong Wang introduces advanced topics that are currently in industry and then you implement them as part of various MPs. This class also taught me basic optimization and rotation/camera knowledge that I would directly use the summer afterwards while working as a robotics intern. The MPs cover state estimation, basics of computer vision, and even has you read a deep learning paper and then implement the architecture in PyTorch.
- ECE310: A useful class that I took primarily because I thought DSP would be hard to learn myself. In my opinion, it is easier than 210 and covers more interesting and relevant material. If you are looking to satisfy the EE foundation req, this is a great choice. Sometimes in the most random places a concept from this class will appear and it makes me grateful I was exposed to it earlier.
- ECE311: In my opinion a must-take alongside 310. If you are learning the concepts in class you might as well implement them in code because you then understand the concepts better + see the actual result + the labs themselves weren't too long. Also a good way to learn some cool Python tricks and get relevant experience manipulating images, audio, and other data.
- ECE391: This class has been covered a lot on the wiki so I won't dig too deep but my main suggestions are to make sure you allocate a good amount of time to the class and also to try and have fun with it. I have fond memories of sitting in the lab with my groupmates trying to get things to work and also became peers with a lot of other people in ECE as a result of just constantly seeing them in lab. 391 is a tough class, but most definitely rewarding.
- GLBL392: At the time I was planning on taking ECE411 in my last semester, in which I would need to take an Advanced Composition, so I chose this class because I was interested in global affairs. A pretty straightforward GenEd that satisfied the Advanced Comp. I think I had to do slightly more work for it than other Advanced Comp choices but I didn't mind because the readings were on pretty cool military history and diplomacy events. The final project was a 20 page paper on essentially one negotiation, which was time consuming but essentially banged out within the last 2/3 days of the semester. The professor was Prof Wedig who was a cool storyteller and gave you some insider perspective to what it was like working with the government.
391 is deep and took up most of the time and mental bandwidth this semester, but as I said I had a lot of fun with it. I also recommend taking classes completely out of your discipline, like I did with Diplomacy, as it forces you to think differently and exposes you to people outside of your major. I have seen people take Advanced Comps because others have said that it was easy but the class material itself is something they do not care about, so I'd advise to take one in a subject that you at least care about. No matter what for Advanced Comps, you are going to have to do a good amount of reading and writing, and I think its easier to do slightly more work for something I care about than to drag myself to do the bare minimum for something else.
Semester 5, Junior Fall, Fall 2023
Reflection and Class Tips
- CS498RC: Really enjoyed this class. It is labeled as a CS course but it is not actually a CS course but more a law school class. Professor Cunningham is very passionate about the intersection of law and computer science and that passion will infect you as you attend his lectures. The material of this class opens your mind to information that you probably never would have learned about or cared about otherwise, but is nonetheless important. I really enjoyed reading the case transcripts and thinking about technical work through the lens of a lawyer and considering its legal and moral implications. I firmly believe that engineers become better engineers when they become multidisciplinary and this class is a great stepping off point to thinking more than just technically.
- ECE313: A required class for ECE majors. The exams can throw a few curveballs at you but the whole class is graded on a curve. In brutal honesty I never went to lecture and just did the homework each week by reading from the textbook, which I think better served me.
- ECE374: Some people really love this class and I can see some of the appeal, as you break down complex problem solving into cool and interesting techniques. I personally did not like the theoretical HW + exam structure more than any of the project based classes but it was nonetheless a good class. It will most definitely help you for software engineering interview skills, so taking it during your junior year fall, where your recruiting will probably be at its highest is a good choice.
- ECE428: LoveLoveLOVED this class. I took the 4 credit hour Distributed with Indy where you build a fully working distributed system through 4 MPs, and that was an extremely rewarding project. I highly recommend taking the 4 credit hour version of the class, as only through building the projects do you really develop a feel and an intuition for the concepts you learn. However, if you are taking a really serious load and are on your final semester, I still recommend taking the 3 credit hour class because it exposes you to some vital topics (basics of client/server, mutual exclusion, intuition when dealing with all things distributed).
- PHYS370: A class I took as part of the physics minor that was not required. It was a great class that introduced tough and abstract concepts of quantum computing through a very friendly professor and great reading passages. The class was essentially a weekly homework and then 3 exams, all of which were definitely do-able if you followed along the notes and went to office hours. I was interested in building up my quantum computing foundational knowledge so I chose this over other physics electives.
Both my early sophomore and junior fall semesters (Aug-mid October) were dominated by recruiting, not just in terms of time but because of what you are thinking about/stressed about. You'll probably find yourself more concerned about performing well on your next interview than your next exam, and rightfully so, so consider that when debating how heavy of a course load to take in fall semesters.
Semester 6, Junior Spring, Spring 2024
Course Name | Credit Hours |
---|---|
ECE434 - Real World Algorithms - IoT/DS | 3 |
ECE438 - Communication Networks | 3 |
ECE445 - Senior Design Project Lab | 4 |
PHYS325 - Classical Mechanics | 3 |
PHYS446 - Modern Computational Physics | 3 |
Total | 16 |
Reflection and Class Tips
- ECE434: This was a very interesting class because it felt like bits and pieces of other main classes. It teaches you fundamental linear algebra, digital signal processing, and probability and then builds on that by teaching you algorithms used in the real world that use those fundamentals to achieve things like localization, audio recognition, and more really cool topics. I really recommend it and I'll speak more to it when I talk about my favorite/best classes later on.
- ECE438: Networking is a really useful class but it overlaps material wise with Distributed/Computer Security a little bit (client/server interactions). Nonetheless there are a bunch of minor details of networking that I am glad I learned in class and having a structured approach to breaking down the field was helpful. I took it with Prof Vasisht, and the exams and the HW were not insanely difficult. The MPs were in C/C++ and the hardest one was the TCP one, but the rest were all fairly straightforward. This was the class that I spent the least amount of time on this semester.
- ECE445: I was debating between 445 and 411 for my final semester but eventually went with 445 because I thought the real world experience of building a PCB project from the ground up would be more valuable than the processor projects of 411. 445 is not just a project class but an Advanced Composition so be prepared for a lot of writing. Having a good group is mandatory. My biggest tip for this would be to build as much as you can as early as possible, prototyping on a breadboard and getting the software functional because the PCB (printed circuit board) functionality is probably the hardest part. You set the deadlines for this, but work diligently, because if you don't the final demo will creep up on you and that is worth the most amount of points.
- PHYS325: The last required class for my physics minor. It was a standard physics class structure, with a weekly HW and an exam every 5 weeks or so. The material I thought was easier to understand than relativity but some of the HW problem sets were really difficult. I honestly think I spent the most amount of time this semester on this class because each week I had to allocate a good amount of time to understanding the material and then fighting back against the problem sets. The exams were straightforward, so just go to office hours to help with the HW. I really enjoyed some of the material from this class, mainly the part on orbital mechanics, the central force work, and the last bit of Lagrangian mechanics. I wish I took the class earlier (like the 4th semester) instead of saving it for the end because this class is a pre-req for a lot of cool physics classes that I was interested in.
- PHYS446: This is a class that I was looking forward to taking for two years. It satisfied the last additional course I needed to take for my physics minor. Computational physics is a unique field that blends statistics, math, physics, and programming and this class was just 4 big MPs. Thinking through these MPs was extremely fun and conceptually difficult, and Prof Clark/Wagner were great in breaking it down for you. It also gives you a chance to improve your technical skills, such as getting better at Python and using tools like Numba. My favorite MP from the class was one where we built a neural network from scratch, taught it how to train, and then broke down diffusion down to its fundamental maths and implemented that to work with prompts. I recommend this class to interested CS majors too, who are looking to try doing more physics based work, and I believe it is becoming required for physics majors.
This was my last semester in college so I made sure not to just drown myself in work but to enjoy times with my friends, playing sports, etc. I also learned that sometimes you grow and learn more when you slow down than if you were constantly sprinting. I really enjoyed all the classes I took this semester so it made for a very nice end point for college.
Conclusion
Ranking my Favorite/Best Classes
Here's a list of my classes that I enjoyed/derived the most value out of throughout college and why I thought so. I give it in order but they are essentially interchangeable.
- CS498MP - Machine Perception is up here because of the value of the course material. Learning about basics of computer vision, machine learning, state estimation, and then building out those basics in projects was a great experience. As a student who wanted to study robotics and ML, this class was a game changer. A lot of very special and complex technical ideas in industry are very foreign when you first hear of them, but this class broke down a lot of barriers by bringing in a professor who was from industry to teach it to us. Also the MPs were just really cool. I wanted to TA for this class but unfortunately they weren't offering it in the following spring again.
- ECE391 - Perhaps the most important thing you can develop as an engineering student here is your builder confidence. Builder confidence is your ability to look at a problem and believe in yourself to not only know the solution but to build it out. 391 improves your builder's confidence authentically by making you build an operating system from scratch. It is a great class and even if the actual OS building technical knowledge wasn't too transferrable to other pursuits, the psychological shift that I felt in my technical problem solving ability as a result of the class makes it worth it. This class is hard, but then again, anything good or impactful does not come easy.
- ECE428 - For a similar reason to 391, Distributed improved my builder confidence a lot. There were also many times that I was learning something for this class and thought to myself, "I wish I knew this before my internships". It covers a lot of industry relevant material and building and debugging the MPs in Go was fulfilling.
- ECE434 - Romit Roy Choudhry. Prof Choudhry was the only professor at Illinois who truly moved the needle for me. He was extremely invested in making sure we learned things from the first principles and his way of thinking and approach to learning helped me grow as a person. And on top of all of this, the class material was interesting and significantly relevant. The real world algorithms helped me understand how the world works from a technical perspective, and solidifying fundamentals of linear algebra, digital signal processing, and probability through him has given me a lot of confidence. He tells inspiring stories, injects humor into lectures that makes them fun to attend, and drops some serious wisdom, and I recommend you take a class with him.
- ECE445 - It was a great experience conceptualizing a hardware project and bringing it to life. I also got some much needed exposure to PCB Design and the whole process of decision making with the capabilities of the electronics as a constraint. It was immensely satisfying seeing the project that you are individually responsible for come together after a month of iterative failure.
Questions
Should I Graduate In 3?
This is a personal decision so I can't give any overarching advice for it, but for me the major factor was that I was an out of state student and when I saw the chance to save a year worth of tuition I took it. That being said you are missing out on 25% of your college years, but if you want to pair a faster undergrad with a 1 or 1.5 year long Masters then you can stay in college and graduate with a higher degree. It is also personal in the sense that you should feel ready to leave school. If you feel confident in yourself to grow and learn in the less structured format of the real world. I felt comfortable because I felt I had taken most of the classes I wanted to take, and, on a personal note, had established a great group of friends that I had close experiences with and knew I would stay in contact with. If you are early in your college years and are debating it, I recommend trying to do it and if you feel like you are overwhelmed or if your grades/personal life/involvement in RSO take a serious hit, then adjust accordingly. This schedule does not give much wiggle room at all, as any tech elective needs to be swapped by another tech elective, but I hope it can serve as a good example of what each semester may look like.
Should I Get A Physics Minor?
I highly recommend it! The true benefit of the physics minor isn't expanding on your physics principles, but the development of your problem solving capabilities. The hardest problems I had to solve in college were all from physics classes, and there is no better way to grow as a problem-solver than to consistently face difficult problems. Being in Grainger helps, as you already do the first 4 out of 8 classes required for the minor. I'd recommend trying out PHYS225 and seeing whether you enjoy it, as that is largely the baseline for physics classes where they teach you material and then have you solve a very nontrivial problem set right after.
What Classes Should I Take?
I recommend every class listed in my schedule, I seriously do not think I have taken a genuinely bad class at Illinois. Some classes I wish I got to take as well are ECE490: Intro to Optimization (because of how prevalent machine learning is, perhaps a bit of practice on optimization math would've been good), ECE408: Applied Parallel Programming (same reason as 490, CUDA programming for ML seems like a great skill to develop), ECE422: Computer Security I (I sat in a few of their lectures and enjoyed the material, and have heard the projects for this class are great, and security is always an important field), and a few physics classes like Thermal + Statistical Physics and Quantum.
I hope you have found this schedule breakdown useful! Remember to work with as much integrity as possible throughout your school year, as you only get out as much as you put in, and by the end you will have grown a lot more! Illinois ECE is a rigorous experience that prepares you to be an engineer extremely well, so dive deep into your subjects, learn a lot, and have fun!