Welcome to CSE30: Computer Organization! This course aims to introduce you to how computers function from assembly code down to the digital logic that is the backbone of processors. The main components of this class are: number systems, assembly programming (subset of 32-bit Arm), digital logic (combinational and sequential), processor performance, processor design, and the memory hierarchy.
Think about this: computers have gone from clunky machines with thousands of simple circuits to systems with billions of components running billions of times per second. And software? It’s evolved so much that you can literally talk to your computer in plain English (or any of many different human languages)!
So why should you care about what’s happening “under the hood”? Because understanding how computers actually work gives you superpowers as a computer scientist. When you know the fundamentals, you can:
Use computers more effectively — no more treating them like magic boxes.
Understand their limits — how big a problem can they handle, how much energy does it cost, and what’s the price tag to make it happen?
Appreciate the trade-offs — speed, efficiency, and economics all matter.
We believe that a key aspect of computer science is understanding the fundamentals of how computers actually perform work. By learning the low-level details of computer operation, you can make better use of their capabilities. A skilled computer scientist should understand the limits of current technology—its capacity (the size of problems it can handle), efficiency (the energy cost of solving problems), and economics (the cost of building and operating systems to solve problems). Only by grasping how computers work at a fundamental level can one truly appreciate these aspects of computation.
Bottom line: if you want to build better software, design smarter systems, or just impress people with your tech savvy, learning computer organization is essential. It’s the foundation that makes everything else possible.
This course is designed for students who have a comfortable knowledge of C programming. This includes pointers, bitwise operations, and stack frames. You are expected to have completed CSE 29 (or equivalent) prior to taking this course.
Learning Outcomes
Students who successfully complete CSE 30 will be able to:
Trace, explain, and interpret the functionality of assembly programs
Author programs in assembly
Translate from C to assembly and assembly to C, demonstrating understanding of how variables, conditionals, loops, functions, stack, pointers, and dynamic memory is managed in assembly.
Design basic digital circuits that use combinational logic (muxes and ripple-carry adders) and/or use sequential logic (Flip-Flops, Memories).
Apply Amdahl’s Law and the Performance Equation to processor performance.
Design and modify a single cycle processor capable of executing a particular instruction set.
Determine the impact of the cache hierarchy based on program characteristics.
Model the behavior of various cache designed based on cache characteristics and an incoming address stream.
You must have a physical iclicker to get participation points for lectures - you cannot use the phone app. (e.g. https://store.macmillanlearning.com/us/product/iClicker2-student-remote/p/1498603041?srsltid=AfmBOoqQTpOvs-d584WKdWyj7RR-3-rXpJ59UANb9aPWOfpNg9vriMfz .)
Your iClicker participation is maintained thru the iclicker cloud website https://www.iclicker.com/ . Your iclicker's unique ID (on the back of the device) will be registered as you participate. You need to create an account on iClicker.com using your ucsd email address and let iClicker.com know that your unique iclicker ID is associated with your ucsd email name.
(Required) Course Textbooks:
Matthews, Newhall, and Webb. Dive into Systems. (DiS in the assigned readings, free online)
Link: https://diveintosystems.org/book/
Harris and Harris. Digital Design and Computer Architecture ARM Edition. (H&H in the assigned readings, free online with campus IP)
Link: https://www.sciencedirect.com/book/9780128000564/digital-design-and-computer-architecture
Additional Resources
An earlier version of this course (including C) is available in Stepik (Optional)
Link: https://stepik.org/course/74320/info
The course webpage contains basic information, syllabus (that you are reading right now!).
We will use Canvas (www.canvas.ucsd.edu) to publish your assignment grades for this course. It is your responsibility to CHECK THEM REGULARLY to ensure they are recorded correctly.
Please ask all course content related questions via Piazza. Make your post public unless it contains personal information. This will help you get the fastest response possible to your post. DO NOT POST YOUR CODE as a public post on Piazza both because debugging of code is better done with a tutor. However, questions about code in general (not your HW code) is okay. It's often better to ask questions like these in Office Hours though. When posting a question on Piazza, make sure to select the appropriate folder. For example, if you have a question on HW1, choose the HW1 folder.
Lastly, before posting, please check that your question has not already been answered. Please search through existing questions to make sure the question hasn't already been answered before posting your own.
We will use PrairieLearn for labs, homework, quizzes, and exams. You can sign into PrairieLearn to setup your account:
https://us.prairielearn.com/pl/course_instance/212770
The companion website for exams is called PrairieTest, be sure you have an account setup there as well:
If you do not have access to PrairieTest, please post on piazza with your question.
quizzes
homework
participation
reading quizzes/surveys/DiveIntoSystem Interactive Excercises
final exam
Read below for more details.
This class has 4 quizzes - weeks 3, 5, 7 and 9. Quizzes will be administered via PrairieLearn and PrairieTest and are administered at the Triton Computer Based Testing Facility. These quizzes are offered Monday to Thursday in weeks 3, 5, 7 and 9.
Redo Quiz:
After reviewing your quiz with teaching staff, for any quiz, you may make a redo attempt at the quiz during the first 3 days of the following week (Monday to Wednesday) [weeks 4, 6, 8 and 10]. The maximum score on a redo quiz multiplied by 0.93. The redo quiz will not be the same as the first quiz. We will use the higher of the two scores as your quiz score. It is your responsibility to schedule the redo quiz for Monday to Wednesday of the following week.
To qualify for credit for a redo quiz, you need to briefly meet with a CSE30 staff member or classmate and verbally explain your errors on the first quiz attempt. The explanation must be completed by the the Friday at the end of the week in which the redo quiz is offered. For example, quiz 1 is offered in week 3 and quiz 1 redo is offered in week 4 then the explanation must be given sometime between taking quiz1 and the end of week 4 for the redo quiz to count. You can come to a staff member as soon as you have finished the main quiz, but you can only interview with a classmate starting on Friday of the week the quiz is given. For example, for quiz1, you can do a redo interview with a staff member starting after you have taken the quiz or with a classmate starting on Friday of week 3. Failure to do a redo interview by the deadline will cause the redo quiz score to be multiplied by .75 instead of .93.
Make sure you read and understand the section below how to schedule your quizzes at the Triton Computer Based Testing Facility.
You will have approximately ten homework assignments, and the lowest score will be dropped. All homework will be completed and submitted through PrairieLearn and or on the raspberry pi-cluster.
Homework usually consists of exercises on PrairieLearn and Programming Assignments.
For your active engagement in lecture, Peer Instruction (PI) questions are used. These are interactive sessions conducted during lectures where you'll use physical iClickers to answer questions (responding is all that matters, you don't need to get the iClicker questions correct). In addition, participating in weekly discussion groups will count towards participation credit. You can miss up to 5 PI sessions (Lecture and Discussion) without any impact on your grade. PIs will count for 0-7% of your final grade. PI sessions start in WEEK 3. There are 23 PI sessions from week 3 to week 10 (16 lectures and 7 discussion groups) . Any portion of your grade lost from not completing Class Participation and Work Groups will have its weight moved to the final exam. Some examples:
If you attend 18 of 23 lectures/discussion groups, you get 100% for 7% of the course and your final exam remains 30% of your grade.
If you attend 9 of 23 lectures/discussion groups, you get 100% for 3.5% of the course and your final exam is worth 33.5% of your grade.
If you attend 0 of 30 lectures/discussion groups, you get 100% for 0% of the course and your final exam is worth 37% of your grade.
You'll have occasional reading quizzes and surveys that will count for 3% of your final grade. These quizzes are designed to be low-stakes, as you'll have multiple attempts to get the correct answer. Your lowest reading quiz score will be dropped. In addition, the course will occasionally ask you to complete surveys and these will count toward your reading quiz grade unless otherwise notes.
The staff will run weekly discussion sections -
The Final exam will be held during finals week. The final exam is a comprehensive assessment, making up 30-37% of your final grade.
There are two components to the final exam
in person paper exam (Monday June 8 - 11:30 - 1:30)
skills assessment at the CBTF (Finals week)
The skills assessment must be scheduled at the CBTF prior to the testing period. Both components are required and are combined into your final exam score.
10% of your grade is your homework average. The homework average is calculated after dropping your lowest homework score.
50% of your grade is determined by your quiz average. The quiz average weighs the 4 quizzes equally.
(updated in week 4: if your quiz average is lower than your final exam grade, your final exam grade can count as your quiz average).
3% of your grade from reading quizzes
30-37% of your grade from the final exam + participation.
0-7% PI points
By default, we will use the standard scale of 90%—100% = A, 80%—89.9% = B,65 %—79.9% = C, and <65% = F. These cutoffs may be lowered if need be, but they will never be raised. In other words, we may curve the class to make it easier to get a certain letter grade, but never harder. Pluses and minuses (e.g., A+, A-) will be given at the professors' discretion.
Tests for this course will be administered by the Triton Testing Center (TTC) in the Computer-Based Testing Lab in AP&M B349. The TTC’s rules concerning testing are the rules for this course.
You must schedule your tests in advance, and it is recommended that you do so as soon as possible. Scheduling for all tests, with the exception of finals, opens on the first day of instruction. If applicable for your course, an announcement will be made when final exams are open for scheduling.
To schedule, visit prairietest.com and log in with your UC San Diego credentials. More information about testing policies and procedures can be found on the TTC’s website. You may also email tritontesting@ucsd.edu for assistance.
Please note that, if you plan to use OSD-approved accommodations for your test, you will take it at the TTC’s Pepper Canyon Hall location. You must schedule your test at least three days in advance through the RegisterBlast system.
Scheduling: There will be a quiz during Weeks 3, 5, 7 and 9. The quiz will be 45 minutes and you will schedule a time when the CBTF is open, Monday-Thursday to take the quiz. Students must schedule their tests in advance. Scheduling early is encouraged as the testing center may fill up. Walk-ins are not permitted. Students are allowed to change their reservation until 10 minutes before the test begins. Note, if you cancel a reservation, there is no guarantee that there will be subsequent slots available for rescheduling. Redo quizzes in weeks 4, 6, 8, and 10 - Monday thru Wednesday only - can be scheduled on PrairieTest.
Location: The facility is at the Applied Physics and Math building in B349 (AP&M B349). You will check in at the facility at the time of your exam. When you check in, you'll be seated at a location in a computer lab and will be able to complete your quiz on PrairieLearn (accessible through PrairieTest). You will be required to show a physical photo identification in order to test. Electronic IDs and photos of IDs are not accepted.
Resources: During the exam, you won't have access to anything else in PrairieLearn or any outside websites on the lab computer. The facility is staffed and proctored by Triton Test Center staff who will not be able to answer any clarifying questions. Calculators are provided as is scratch paper. No notes, textbooks, personal devices (including phones and smart watches), or any other aid will be permitted during the exam.
Permitted Items in the Testing Room: Students must store all personal belongings in the designated lockers before entering the testing room. The only permitted items are writing utensils and physical identification. All other items are strictly prohibited.
As you've done in the past, you'll register for your exam through the Register Blast system. (Be sure to set up your account on Register Blast at the start of the term.) Students with exam accommodations will take the test at the Triton Testing Center's Pepper Canyon Hall location as noted in Register Blast. Visit this link for more on how to set up testing services in Register Blast. For additional information on how to sign up for accommodated testing please visit the Triton Testing Center’s website.
More information about testing policies and procedures can be found on the TTC’s website. You may also email tritontesting@ucsd.edu for assistance.
If you miss a quiz during weeks 3, 5, 7 or 9 due to unexpected circumstances (illness, family emergency, etc.), contact course staff to see if you can take the redo quiz instead for up to 100% credit.
If you miss both a quiz and the redo quiz, you should contact the course staff as soon as possible.
Sometimes, situations arise where students cannot complete a homework assignment by the deadline (e.g. illness, family situation, etc). In order to accommodate these situations, we will drop your lowest homework grade. This will happen automatically and there is nothing you need to do. However, please use this drop/replacement judiciously (i.e., don't use your one dropped assignment early in the term when you don't have to, as you might get sick later in the quarter and will have used up your only dropped assignment).
In addition to this policy, we will allow you to redo homework for up to 1 week after it was originally due for partial credit. The partial credit allows you to makeup 50% of the lost points. So for example, if you got an 80 on a homework, you can resubmit that homework up to one week beyond the original due date for up to 10 additional points (i.e. you can get a 90). The exception to this rule are manually graded homework questions which can not be resubmitted.
There is no facility for making up missed reading quizzes or participation points.
In extreme personal circumstances (severe illness lasting over one week, death in the family, etc.) please reach out to Professor Chin on Piazza (private post to instructors) or by e-mail to discuss possible accommodations or withdrawing from the course as soon as practical. Please also reach out to the Dean of Student Affairs for your college. They can help you manage conversations with faculty in all your courses so you can focus on your health, family, etc.
By submitting the form, you are agreeing to its terms, so be sure to read it carefully. We encourage you to study together and discuss concepts from this class, but all quizzes and exams must be written only completely independently. If you are found cheating, we will enforce the UCSD Policy on Integrity of Scholarship. This means: You will get an F in the course, and the Dean of your college will put you on probation or suspend you or dismiss you from UCSD.
The basic rule for CSE 30 is: Work hard. Start early. Use PrairieLearn to practice the ideas and concepts extensively.Make use of the expertise of our amazing staff to learn what you need to know to really do well in the course. Don't cheat.
Homework. For homework in CSE 30, you can read books, surf the web, talk to your friends, look at code online, use Copilot and/or ChatGPT, Claude, Gemini or other Artificial Intelligence, reach out to the CSE 30 staff to get help to help you understanding the concepts you need to know to solve your Homework. But be careful using outside aids as you won't have them during the quizzes and final exam. Your job is to make sure you understand the content from the homework so you can succeed on the exams. In the case of AI, if you do use it, make sure you use it in ways that help your learning (like a tutor). Avoid copying from it or having it "do your homework". Resist the temptation to have someone or something do your homework for you. Doing so will harm your learning the material.
Quizzes and Final Exam. In quizzes and exams, you can only use the resources made available to you in PrairieLearn, no books, no friends, no AI, etc. Accessing any website other than PrairieLearn or PrairieTest during a quiz or an exam is considered an Academic Integrity Violation. No electronic devices (other than facility provided calculators) are allowed in the CBTF - No smart glasses, no smart watches, no phones.
Participation. Misrepresenting your attendance/participation by any dishonest means is a violation of academic integrity (e.g. having someone else's iClicker so it appears they are in class, signing someone else's name on an attendance log).
Do not post any code for this class publicly (including on public GitHub repos) as doing so is a violation of the AI policy! Per Senate requirements, we report all these cases to the academic integrity office.
Receiving a grade on an assessment doesn't mean that you are in the clear. We can report cheating cases any time during the quarter, even after we submit your final letter grade. You can even have past grades revised if you are found to have posted materials publicly on the internet/cheated/etc. So the safest bet is not to cheat!
To ensure you don't have a problem with this, here are some suggestions:
Don't share your code.
Don't copy someone else's code.
Don't copy from an AI assistant.
Don't get any unauthorized assistance on exams.
In CSE 30, you must write your own answers on the review quizzes and exams. Getting quiz or exam answers from someone else, or providing answers to someone else, is cheating. Failing to follow this policy will result in an F for this course.
We expect that all students will need help at some point in this course. If you find yourself needing help, this is not cause for embarrassment: it is completely expected, and our goal is to ensure that you are able to receive the help you need. Please be sure to seek help early and often through the resources below. One important caveat - we are here to help you learn the course content yourself, not do it for you. Be sure you understand the help you've been given and ask questions if you do not. Also, please do not push the staff to give away an answer to a problem to you, be sure you are focused on learning the concepts as those are what you'll be tested on in the class.
Your Study Group: Building a support system of friends with whom you can struggle and work through the challenges you encounter is one of the best ways to seek help. You will quickly understand how much you can learn by working together! We will help you do this in discussion section.
Office Hours: The instructors and the Teaching Assistants (TAs) are always willing to help you during our office hours. Ideally, office hours should be reserved for conceptual questions: coding-specific questions are best asked of the tutors during lab hours. All office hours can be found on from the course calendar link on canvas.
Lab Hours: There are many in-person lab hours in which tutors are willing and available to help you with any questions you might have. Lab hours will be posted on the Course Calendar. You can get help by raising a ticket on the Autograder. Please read Tutoring - Student Procedures to understand how to get help.
Piazza: Please use the discussion board for any questions related to the assignments, material in the course, or course logistics. Please be sure to ask any questions of the course staff about your grade, etc. on Piazza. Piazza allows you to post questions anonymously (to other students) if you don’t feel comfortable revealing your name. In general, all content related questions should be posted only on Piazza, do not e-mail the course staff. You should ask specific questions related to your code during tutor lab hours. You should NOT publicly post any of your code on Piazza as it may be treated as an AI violation.
Email: If you have anything private or confidential to discuss with your instructor, then please email your instructor directly. However, if you are comfortable sharing it with the instructional staff, you will get a quicker response making it a private post on piazza.
We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.). Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive.
Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course. If there is a way we can make you feel more included please let one of the course staff know, either in person, via email/discussion board, or even in a note under the door. Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input.
We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community (https://ucsd.edu/about/principles.html). Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and feels comfortable.
If you experience any sort of harassment or discrimination, please contact your instructor as soon as possible. If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination: https://ophd.ucsd.edu/.
We aim to create an environment in which all students can succeed in this course. If you have a disability, please contact the Office for Students with Disability (OSD), which is located in University Center 202 behind Center Hall, to discuss appropriate accommodations right away. We will work to provide you with the accommodations you need, but you must first provide a current Authorization For Accommodation (AFA) letter issued by the OSD. You are required to present their AFA letters to faculty (please make arrangements to contact your instructor privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.
If you are skipping and stretching meals, or having difficulties affording or accessing food, you may be eligible for CalFresh, California’s Supplemental Nutrition Assistance Program, that can provide up to $292 a month in free money on a debit card to buy food. Students can apply at benefitscal.com/r/ucsandiegocalfresh
The Hub Basic Needs Center empowers all students by connecting them to resources for food, stable housing and financial literacy. Visit their site at basicneeds.ucsd.edu
Satisfactory Academic Progress (SAP) refers to the academic standards students must maintain to remain eligible for federal, state, and institutional financial aid. If you are receiving financial aid, please ensure you review the SAP requirements and the appeals process.
Advising and Mentorship from CSE UGCom (Undergraduate Committee) : https://cse.ucsd.edu/undergraduate/advising/undergraduate-committee-ugcom-advising-and-mentorship
CSE Student Affairs : https://cse.ucsd.edu/undergraduate/student-opportunities
Attribution: Course syllabus and class website are based in part on materials developed by Gerald Soosai Raj, Sorin Lerner, Christine Alvarado, Leo Porter, Byran Chin, among others.