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 (in a subset of 32-bit ARM), digital logic (combinational and sequential), processor performance, processor design, and the memory hierarchy.
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 short 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 (Latches, Flip-Flops).
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.
(Required) webclicker.web.app on smart device or laptop:
see instructor if you don't have a suitable device.
(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
Our course website can be found here: hhttps://sites.google.com/ucsd.edu/cse30wi25/home
The course webpage contains basic information, syllabus (that you are reading right now!), schedule (including office/lab hours), materials (notes, slides, etc) and staff contact information. You should check our course website often!
We will use Canvas (www.canvas.ucsd.edu) to publish your grades for this course. The grades you see on canvas are YOUR OFFICIAL GRADE, and 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 to be done in tutoring hours. 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/158617
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
final exam
Read below for more details.
This class has 4 quizzes - weeks 2, 4, 6 and 8. Quizzes will be administered via PrairieLearn and PrairieTest and are administered at the Triton Computer Based Testing Facility. For any quiz, you may make a second attempt at the quiz during the first 3 days of the following week (M to W) [weeks 3, 5, 7 and 9]. The maximum score on a second attempt is 100. We will use the higher of the two scores as your quiz score. It is your responsibility to schedule the second attempt quiz** for Monday to Wednesday of the following week.
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 pi-cluster.
For your active engagement in class, Peer Instruction (PI) questions are present. These are interactive sessions conducted during lectures and discussions where you'll use webclicker.web.app to answer questions. Participation is all that counts ( you don't need to get the correct answers ). You can miss up to 6 PI sessions (Lecture and Discussions) without any impact on your grade. PIs will count for 5% of your final grade. PI sessions start in WEEK 3. There are 28 (22 lectures and 6 discussions) PI sessions from week 3 to week 10. Any portion of your grade lost from not completing PI questions will have its weighting moved to the final exam. Some examples of the grading:
If you attend 22/28 classes, you get 100% for 5% of the course and your final exam remains 30% of your grade.
If you attend 11/28 classes, you get 100% for 2.5% of the course and your final exam is now worth 32.5% of your grade.
If you attend 0/22 classes, you get 100% for 0% of the course and your final exam is now worth 35% of your grade.
You'll have occasional reading quizzes and surveys that will count for 5% 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 Final exam will be held during finals week March 17 to March 22 - inclusive.
The final exam is a comprehensive assessment, making up 30-35% of your final grade. You need to pass the final exam to pass the course. The final must be scheduled at the CBTF prior to the testing period.
60% of your grade is determined by the minimum of your homework average and quiz average. The homework average is calculated after dropping the lowest homework score. The quiz average weighs the 4 quizzes (or second attempt quizzes) equally.
5% of your grade from reading quizzes
30-35% of your grade from the final exam / participation.
0-5% PI points
UC San Diego's Triton Testing Center has created a new service for campus called a Computer-Based Testing Facility. You will be able to take your quizzes and final exam on PrairieLearn (PrairieTest) in a proctored, secure environment on campus. Quizzes will be available for a week during which you'll need to schedule a time to go and take the quiz. Second chance quizzes can be taken only duruing the first 3 days (M to W) of the week they are offered.
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 between 10am-8pm Monday-Friday to attend the quiz. To schedule an quiz time, you'll use PrairieTest. 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. Redo/second attempt quizzes in weeks 4, 6, 8, and 10 - Monday thru Wednesday only - can be scheduled on PrairieTest. Attempts to schedule or taking a second chance quiz outside of the M-W window will result in a 0 score on the attempt.
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).
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, 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.
Quizzes/Homework - 60% - min of [quiz average, homework average]
Lecture Participation - 0-5% (miss up to 6 lectures without penalty)
Pre-class Reading Quizzes - 5%
Final - 30-35%
By default, we will use the standard scale of 90%—100% = A, 80%—89.9% = B, 70%—79.9% = C, 60%—69.9% = D, and <60% = 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. You must pass the final exam to pass the course.
If you miss a quiz during weeks 2, 4, 6 or 8, you may take the second chance quiz for upto 100% credit in the following week. In this case, there is only one attempt allowed at the quiz. If you miss both a quiz and the second chance 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).
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. Please also reach out to the Dean of Student Affairs for your college so 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, talk with Copilot and/or ChatGPT, 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.
Quizzes and Final Exam. In quizzes and exams, you can only use the resources made available to you in PrairieLearn, no books, no friends, etc. Accessing any website other than PrairieLearn or PrairieTest during a quiz or an exam is considered an Academic Integrity Violation.
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 with anyone else in the class.
Don't use someone else's code (even if you make changes to it).
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!
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 the course calendar.
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 experiencing any basic needs insecurities (food, housing, financial resources), there are resources available on campus to help, including The Hub and the Triton Food Pantry. Please visit http://thehub.ucsd.edu/ for more information.
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.
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.