CS 261, Machine Organization, is notoriously one of the hardest courses at UIC. Many computer science majors shy away from the course because they’d rather be doing what we usually do — coding. CS 261 instead gives a lower-level look at data representation in computer organization. In CS 261, you learn the machine languages of the binary and hexadecimal number systems. Then, you move into assembly instructions, pipelining, and memory hierarchy.
Although these concepts might initially seem non-essential for computer science majors who have already been writing their own programs, learning how a computer uses the programs you’ve written can be quite useful. CS 261 is ultimately your guide to code optimizing and ensuring that you use computer memory efficiently. So, how do you succeed in CS 261?
1. Form a group
It’s no secret that many CS classes are better when taken with a group of students you already know you work well alongside. CS 261 is one of those classes.
You will be given 11 weekly homework assignments throughout the semester. These homework assignments usually make up 1% of your grade each, so make sure you work on them ahead of time. Discussing these homework assignments with others can be helpful because generally, each question builds on the previous one. You wouldn’t want to finish your homework and realize that you were using the wrong formula or method the entire time.
Compare your answers with those of several classmates. Note: DO NOT copy their answers. Rather, have your classmates explain their work and why they came to the answers they did. If you have different answers, try to convince each other why your answer is the correct one.
3. Go to every lecture.
I strongly recommend attending every lecture for this course. In some coding-heavy CS courses, you may learn more from working on projects than from going to class. CS 261 is not one of those classes.
It is hard to find good resources on the web that cover the same information as covered in the lectures. Go to each lecture and try to absorb as much as you can. It is totally fine if you don't grasp every concept immediately. I don’t recall a single time that I left a lecture with a solid understanding of 100% of the information covered, and that is the case with a lot of students. Just make sure to take great notes!
3. Attend office hours early.
You will be assigned two projects over the semester: attackLab and bombLab. Each of these projects includes 4-5 phases. While some phases might only take a few minutes to complete, others may take several hours. Meet with your TAs early. Office hours for this class are usually busy, especially right before an assignment is due. If you want a TA to look over your assembly instructions or exploit files, be sure to attend office hours well before the due date so that they can offer you as much help as they can.
4. Set yourself up for success on your labs.
You will usually complete around 14 labs, each worth 1% of your grade. Don’t get stuck on one question for too long. These labs are timed. You'll only have around 50 minutes.
Labs are designed to be taken two at a time. You can ask your TAs for help on concepts you don’t fully understand. If you have a TA who has a knack for explaining concepts in a way you always understand, go to the lab led by that TA. Labs without TAs are nearly impossible, so don't be afraid to ask for help!
5. Make sure you study well for exams.
Unfortunately, doing well on your labs, homework, and projects is only half the battle. The midterm and final exams will be collectively worth 54% of your grade! You will have two midterms each worth 17% of your grade, and a final exam worth 20%.
Professors usually post a study guide for each exam. Review this guide, but don’t make it your only study material. Look over your lecture slides and past homework and lab assignments. You can also try to solve previous exams given for the class. Practice is essential for doing well on the exams in CS 261, so use all your resources.
Finally, don’t feel discouraged if you didn’t do well on one exam. This class usually has a mean shift of 3-5%, so there is always room for improvement.
Need an extra boost in your CS courses? Edlyft is here to help. Sign up here to stay up to date on our latest offerings.