Principles of Computer System Design
key | value |
---|---|
When: | Monday, Wednesday, and Friday at 2:40 PM–3:45 PM |
Where: | Humanities Lecture Hall (Room #206) |
Who: | Dr. Andrew Quinn & Chris Parsa |
Office hours: | TBD |
Prerequisites: | CSE 12 and (CSE 101 or (CSE 15 and CSE 15L)); knowledge of C programming language. |
Required Text: | Principles of Computer System Design, Saltzer & Kaashoek (ISBN 0123749573) |
TA: | TBD |
Students in this course will be introduced to the concerns facing thedesign and implementation of computer systems, including complexity,concurrency, and performance. Students will be introduced toprinciples to manage these issues, including modularity / abstraction,naming, and synchronization. They will be introduced to how theseprinciples govern the computer systems that are used today and how toapply these principles to new problems moving forward. This exposurewill be invaluable in later courses at UC Santa Cruz, includingoperating systems, database design, computer security, and distributedsystems.
- Introduction to computer systems
- Key abstractions of a computer systems
- Clients-Server systems
- Virtualization
- Synchronization and Concurrency
- Performance concerns in computer systems
- Naming
Each individual at UC Santa Cruz should act in the best interests ofeveryone else in our community. Please take care to comply with alluniversity guidelines about masking in indoor settings, performingdaily symptom and badge checks, testing as required by the campusvaccine policy, self-isolating in the event of exposure, andrespecting others’ comfort with distancing. Please do not come toclass if your badge is not green, and expect to wear a mask at allclass sessions. If you forget your mask, you can ask me for one;there is a limited supply of disposable masks in each classroom.
If you are ill or suspect you may have been exposed to someone who isill, or if you have symptoms that are in any way similar to those ofCOVID-19, please err on the side of caution and stay home until youare well or have tested negative after an exposure. Pleasecommunicate with me if you experience an illness or exposure thatrequires you to miss class sessions; I will provide you with optionsso that you can continue to make progress in the course. that you cankeep making progress
I have designed our course following campus guidance and with currentpublic health guidelines in mind. However, these guidelines may changein accordance with shifting infection rates or the emergence of newvariants. If updated public health recommendations and universityrequirements make our current course format unfeasible, or if Iexperience a need to self-isolate, I will alter the format. This mayinclude moving in-person sessions onto Zoom and/or modifying courseassignments to work in a remote format. I will communicate clearlywith you via email about any changes that occur. I will provide asmuch advance warning as possible and give you all the information youneed to transition smoothly to the new format. If you have questionsabout the changes, please reach out to me so I can answer them.
The prerequisites for CSE 130 are CSE 12 and either CSE 101 or (CSE 15and CSE 15L) as well as knowledge of C programming language. Inparticular, students should be comfortable with c-strings and dynamicmemory in C. Students will likely find it easier to succeed with somefamiliarity with make, git, valgrind, and gdb. The first programmingassignment will serve as a refresher for the required background. Weencourage you proactively seek help to ensure that you understand theprerequisite material–we will not have time to cover it in lecture.
We will use the textbook Principles of Computer System Design BySaltzer & Kaashoek. The material covered in this course is complex;success will almost certainly require reading the material beforelecture and coming prepared to ask questions and discuss the materialat lecture. Other material for the class will be distributed onlineusing Canvas or Piazza. Canvas will include assignments and grading,while Piazza will include announcements and discussions.
We will measure your knowledge of the material for the course in thefollowing ways:
Evaluation Metric | Percentage |
---|---|
Midterm Exams (2) | 20% |
Final Exam | 20% |
Programming Assignments | 50% |
Participation | 10% |
Exams
We will use two midterms and a final exam to evaluate how well you arelearning the principles discussed in the course. You must take eachexam at the scheduled time unless you are ill or have an unexpectedfamily emergency and have the required documentation (e.g., a notefrom a doctor).
The first midterm will take place on 4/20/22 and will cover roughlythe first 1/3 of the course, while the second midterm will take placeon 5/20/22 and cover the second 1/3 of the course. Each midterm willbe worth 10% of the total points in the class. The final exam will becumulative, worth 20% of the grade, and held at the time slotspecified by the registrar (6/6/22 from 12:00PM–3:00PM).
Programming assignments
You will complete four programming assignments to show how well youare able to apply the concepts in the class to real-world scenarios.Programming assignments must be completed individually. The due datesfor the assignment are 4/12/22, 4/26/22, 5/12/22, and 5/30/22.
You must turn in each assignment to pass the class. You will submiteach assignment via a git repository on GitLab@UCSC and will submit acommit ID that passes the minimum requirements using a form that willbe specified in each assignment. The minimum requirements specifythat the submitted source code must correctly compile; we have setupthe GitLab@UCSC GUI to show a green checkmark next to all commits thatmeet the minimum requirements. If a commit ID does not meet theminimum requirements, you will get a maximum score of 5 points .
You will each be given 5 “grace days” that you may use, noexplanation necessary, to extend the due date of an assignment by 24hours (this includes weekends and holidays). You may use any and allof your remaining grace days on an assignment; you do not have to usethem all at once. We will not grant any extensions, so use yourgrace days wisely. Once you’re out of grace days, late projects willlose 25 points (out of 100) per day. All assignments must besubmitted prior to the last day of teaching; assignments submittedafter this time will not be counted towards your course grade.
To encourage you to start early and turn your material in early,assignments will get a 1 point bonus for every 8 hours they’resubmitted early, up to a maximum bonus of 9 points. So, if you turn inyour assignment 20 hours before it’s due, you get 2 points added toyour grade. The bonus is unavailable if you’re using grace days forthe assignment.
Your assignments will be graded on the Ubuntu 20.04 operatingsystem. See Getting Help below for more information.
Participation
To encourage active participation in class, we will be giving pointsto students who actively engage publicly in the CSE 130 coursematerial. You can show such engagement by (1) asking or answeringquestions in class and/or lab sections, (2) asking or answeringquestions in Piazza, or (3) actively participating in in-classforms/assignments.
We won’t take attendance in class or labs. But, you will find that itis difficult to succeed in CSE 130 without attending lecture and labs.
The material in this class is complex, so there are several ways toget help with concepts covered in class, homework, and programmingassignments. In particular, we have the following avenues to get help:
- Attend and ask questions in lecture
- Attend and ask questions in lab section
- Attend and ask questions in office hours
- Post a public question on Piazza
- Send a private message to course staff on Piazza
Since there are many more students in the course than instructors,TAs, and tutors, we encourage students to ask questions about theconcepts rather than about issue that only affect you. The followingrules apply to your interactions with course staff (instructors, TAs,and tutors):
-
If you want help fixing a bug in your assignment code, then you must(1) provide a test that produces an output that you don’t expectand (2) have an Ubuntu 20.04 virtual machine to test the assignment.After meeting (1) and (2), you may post a private Piazza message ortalk with course staff during office hours or lab sections.
-
If you need help crafting a test, then you may post a question onPiazza, or discuss with course staff in lecture, office hours, orlab sections. Note: You cannot post your code as a publicquestion in Piazza, but can discuss the high-level conceptualproblem for which you want to design a test.
-
If you have questions about the concepts in the course, then you maypost a question on Piazza, come to office hours, or lab section.
-
If you have a question about grading or course logistics (e.g.,Withdrawals or Incompletes), then you may send a private piazzamessage to Dr. Quinn or go to his office hours.
Private Piazza questions will typically get a response by the end ofthe next business day. Public ones will be answered more quickly,since they have hundreds of eyes on them (In fact, answering yourfellow student’s questions is a great way to earn participationpoints!) Do not email the course staff directly unlessasked–this helps us keep all course communication in one place.
Note: It is never OK to post your source code for an assignment; seeAcademic Integrity below.
All members of the UCSC community benefit from an environment oftrust, honesty, fairness, respect, and responsibility. You areexpected to present your own work and acknowledge the work of othersin order to preserve the integrity of scholarship.
Academic integrity includes:
- Following assessment rules
- Incorporating proper citation of all sources of information
- Submitting your own original work
Academic misconduct includes, but is not limited to, the following:
- Copying/purchasing any material from another student, or fromanother source, that is submitted for grading as your own
- Plagiarism, including use of Internet material without propercitation
- Submitting your own work in one class that was completed for anotherclass (self-plagiarism) without prior permission from theinstructor.
Violations of the Academic Integrity policy can result in dismissalfrom the university and a permanent notation on a student’stranscript. For the full policy and disciplinary procedures onacademic dishonesty, students and instructors should refer to theAcademic Integrity for GraduateStudents.
UC Santa Cruz is committed to creating an academic environment thatsupports its diverse student body. If you are a student with adisability who requires accommodations to achieve equal access in thiscourse, please submit your Accommodation Authorization Letter from theDisability Resource Center (DRC) to me privately by email, preferablywithin the first two weeks of the quarter. At this time, I would likeus to discuss ways we can ensure your full participation in thecourse. I encourage all students who may benefit from learning moreabout DRC services to contact the DRC by phone at 831-459-2089 or byemail at drc@ucsc.edu.
The materials in this course are the intellectual property of theircreators. As a student, you have access to many of the materials inthe course for the purpose of learning, engaging with your peers inthe course, completing assignments, etc. You have a moral and legalobligation to respect the rights of others by only using coursematerials for purposes associated with the course. For instance, youare not permitted to share, upload, stream, sell, republish, share thelogin information for, or otherwise disseminate any of the coursematerials, such as: video and audio files, assignment prompts, slides,notes, syllabus, simulations, data-sets, discussionthreads. Conversely, any materials created by you (for example, yourvideos, essays, images, audio files, annotations, notes) are yourintellectual property and you may use them as you wish.
UC Santa Cruz welcomes diversity of religious beliefs and practices,recognizing the contributions differing experiences and viewpoints canbring to the community. There may be times when an academicrequirement conflicts with religious observances and practices. Ifthat happens, students may request the reasonable accommodation forreligious practices. The instructor will review the situation in aneffort to provide a reasonable accommodation without penalty. Youshould first discuss the conflict and your requested accommodationwith your instructor early in the term. You or your instructor mayalso seek assistance from the Dean of Students office(https://deanofstudents.ucsc.edu).
The University of California, Santa Cruz expressly prohibits studentsfrom engaging in conduct constituting unlawful discrimination,harassment or bias (seehttps://reporthate.ucsc.edu/principles-and-policies/index.html). I amcommitted to providing an atmosphere for learning that respectsdiversity and supports inclusively. We need to work together to buildthis community of learning. I ask all members of this class to: - beopen to and interested in the views of others consider the possibilitythat your views may change over the course of the term - be aware thatthis course asks you to reconsider some “common sense” notions you mayhold honor the unique life experiences of your colleagues - appreciatethe opportunity that we have to learn from each other listen to eachother’s opinions and communicate in a respectful manner - keepconfidential discussions that the community has of a personal (orprofessional) nature - ground your comments in the work we arestudying. Refer frequently to the texts and make them the focus ofyour questions, comments, and arguments. This is the single mosteffective way to ensure respectful discussion and to create a spacewhere we are all learning together.
UC Santa Cruz is committed to providing a safe learning environmentthat is free of all forms of gender discrimination and sexualharassment, which are explicitly prohibited under Title IX. If youhave experienced any form of sexual harassment, sexual assault,domestic violence, dating violence, or stalking, know that you are notalone. The Title IX Office, the Campus Advocacy, Resources & Education(CARE) office, and Counseling & Psychological Services (CAPS) are allresources that you can rely on for support.
Please be aware that if you tell me about a situation involving TitleIX misconduct, I am required to share this information with the TitleIX Coordinator. This reporting responsibility also applies to courseTAs and tutors (as well to all UCSC employees who are not designatedas “confidential” employees, which is a special designation granted tocounselors and CARE advocates). Although I have to make thatnotification, you will control how your case will be handled,including whether or not you wish to pursue a formal complaint. Thegoal is to make sure that you are aware of the range of optionsavailable to you and that you have access to the resources you need.
Confidential resources are available throughCARE. Confidentiality means CARE advocateswill not share any information with Title IX, the police, parents, oranyone else without explicit permission. CARE advocates are trained tosupport you in understanding your rights and options, accessing healthand counseling services, providing academic and housingaccommodations, helping with legal protective orders, and more. Youcan contact CARE at (831) 502-2273 or care@ucsc.edu.
In addition to CARE, these resources are available to you:
- If you need help figuring out what resources you or someone elsemight need, visit the resources page from the Title IX Office
- Counseling & Psychological Services (CAPS) can provide confidentialcounseling support. Call them at (831)459-2628.
- You can also report gender discrimination and sexual harassment andviolence directly to the University’s Title IX Office(https://titleix.ucsc.edu), by calling (831) 459-2462 or by usingtheir online reporting tool.
- Reports to law enforcement can be made to the UC Police Department,(831) 459-2231 ext. 1.
- For emergencies, call 911.
Report an Incident of Hate or Bias
The University of California, Santa Cruz is committed to maintainingan objective, civil, diverse and supportive community, free ofcoercion, bias, hate, intimidation, dehumanization orexploitation. The Hate/Bias Response Team is a group of administratorswho support and guide students seeking assistance in determining howto handle a bias incident involving another student, a staff member,or a faculty member. To report an incident of hate or bias, please usethis form
Student Services
Counseling and Psychological Services
Many students at UCSC face personal challenges or have psychologicalneeds that may interfere with their academic progress, socialdevelopment, or emotional welling. The university offers a varietyof confidential services to help you through difficult times,including individual and group counseling, crisis intervention,consultations, online chats, and mental health screenings. Theseservices are provided by staff who welcome all students and embrace aphilosophy respectful of clients’ cultural and religious backgrounds,and sensitive to differences in race, ability, gender identity andsexual orientation.
Student Success and Engagement Hub
The Division of Student Success provides campus-wide coordination andleadership for student success programs and activities acrossdepartments, divisions, the colleges, and administrative units.
Slug Support Program
College can be a challenging time for students and during times ofstress it is not always easy to find the help you need. Slug Supportcan give help with everything from basic needs (housing, food, orfinancial insecurity) to getting the technology you need during remoteinstruction. To get started with SLUG Support, please contact theDean of Students Office at 831-459-4446 or you may send us an email atdeanofstudents@ucsc.edu.
Slug Help/Technology
The ITS Support Center is your single point of contact for all issues,problems or questions related to technology services and computing atUC Santa Cruz. To get technological help, simply email help@ucsc.edu.
On-Campus Emergency Contacts
Slug Help/Emergency Services. For all other help and support,including the health center and emergency services, start here. Alwaysdial 9-1-1 in the case of an emergency.