CSE 130

Introduction to Computer Systems

CSE130 Fall 2022

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

Course Overview

Students in this course will be introduced to the concerns facing the design and implementation of computer systems, including complexity, concurrency, and performance. Students will be introduced to principles to manage these issues, including modularity / abstraction, naming, and synchronization. They will be introduced to how these principles govern the computer systems that are used today and how to apply these principles to new problems moving forward. This exposure will be invaluable in later courses at UC Santa Cruz, including operating systems, database design, computer security, and distributed systems.

Course Outline

  • Introduction to computer systems
  • Key abstractions of a computer systems
  • Clients-Server systems
  • Virtualization
  • Synchronization and Concurrency
  • Performance concerns in computer systems
  • Naming

COVID-19 Information

Each individual at UC Santa Cruz should act in the best interests of everyone else in our community. Please take care to comply with all university guidelines about masking in indoor settings, performing daily symptom and badge checks, testing as required by the campus vaccine policy, self-isolating in the event of exposure, and respecting others’ comfort with distancing. Please do not come to class if your badge is not green, and expect to wear a mask at all class 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 is ill, or if you have symptoms that are in any way similar to those of COVID-19, please err on the side of caution and stay home until you are well or have tested negative after an exposure. Please communicate with me if you experience an illness or exposure that requires you to miss class sessions; I will provide you with options so that you can continue to make progress in the course. that you can keep making progress

I have designed our course following campus guidance and with current public health guidelines in mind. However, these guidelines may change in accordance with shifting infection rates or the emergence of new variants. If updated public health recommendations and university requirements make our current course format unfeasible, or if I experience a need to self-isolate, I will alter the format. This may include moving in-person sessions onto Zoom and/or modifying course assignments to work in a remote format. I will communicate clearly with you via email about any changes that occur. I will provide as much advance warning as possible and give you all the information you need to transition smoothly to the new format. If you have questions about the changes, please reach out to me so I can answer them.

Prerequisites

The prerequisites for CSE 130 are CSE 12 and either CSE 101 or (CSE 15 and CSE 15L) as well as knowledge of C programming language. In particular, students should be comfortable with c-strings and dynamic memory in C. Students will likely find it easier to succeed with some familiarity with make, git, valgrind, and gdb. The first programming assignment will serve as a refresher for the required background. We encourage you proactively seek help to ensure that you understand the prerequisite material–we will not have time to cover it in lecture.

Resources

We will use the textbook Principles of Computer System Design By Saltzer & Kaashoek. The material covered in this course is complex; success will almost certainly require reading the material before lecture and coming prepared to ask questions and discuss the material at lecture. Other material for the class will be distributed online using Canvas or Piazza. Canvas will include assignments and grading, while Piazza will include announcements and discussions.

Evaluation

We will measure your knowledge of the material for the course in the following 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 are learning the principles discussed in the course. You must take each exam at the scheduled time unless you are ill or have an unexpected family emergency and have the required documentation (e.g., a note from a doctor).

The first midterm will take place on 4/20/22 and will cover roughly the first 1/3 of the course, while the second midterm will take place on 5/20/22 and cover the second 1/3 of the course. Each midterm will be worth 10% of the total points in the class. The final exam will be cumulative, worth 20% of the grade, and held at the time slot specified by the registrar (6/6/22 from 12:00PM–3:00PM).

Programming assignments

You will complete four programming assignments to show how well you are able to apply the concepts in the class to real-world scenarios. Programming assignments must be completed individually. The due dates for 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 submit each assignment via a git repository on GitLab@UCSC and will submit a commit ID that passes the minimum requirements using a form that will be specified in each assignment. The minimum requirements specify that the submitted source code must correctly compile; we have setup the GitLab@UCSC GUI to show a green checkmark next to all commits that meet the minimum requirements. If a commit ID does not meet the minimum requirements, you will get a maximum score of 5 points .

You will each be given 5 “grace days” that you may use, no explanation necessary, to extend the due date of an assignment by 24 hours (this includes weekends and holidays). You may use any and all of your remaining grace days on an assignment; you do not have to use them all at once. We will not grant any extensions, so use your grace days wisely. Once you’re out of grace days, late projects will lose 25 points (out of 100) per day. All assignments must be submitted prior to the last day of teaching; assignments submitted after 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’re submitted early, up to a maximum bonus of 9 points. So, if you turn in your assignment 20 hours before it’s due, you get 2 points added to your grade. The bonus is unavailable if you’re using grace days for the assignment.

Your assignments will be graded on the Ubuntu 20.04 operating system. See Getting Help below for more information.

Participation

To encourage active participation in class, we will be giving points to students who actively engage publicly in the CSE 130 course material. You can show such engagement by (1) asking or answering questions in class and/or lab sections, (2) asking or answering questions in Piazza, or (3) actively participating in in-class forms/assignments.

Attendance

We won’t take attendance in class or labs. But, you will find that it is difficult to succeed in CSE 130 without attending lecture and labs.

Getting Help

The material in this class is complex, so there are several ways to get help with concepts covered in class, homework, and programming assignments. 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 the concepts rather than about issue that only affect you. The following rules 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 expect and (2) have an Ubuntu 20.04 virtual machine to test the assignment. After meeting (1) and (2), you may post a private Piazza message or talk with course staff during office hours or lab sections.

  • If you need help crafting a test, then you may post a question on Piazza, or discuss with course staff in lecture, office hours, or lab sections. Note: You cannot post your code as a public question in Piazza, but can discuss the high-level conceptual problem for which you want to design a test.

  • If you have questions about the concepts in the course, then you may post 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 piazza message to Dr. Quinn or go to his office hours.

Private Piazza questions will typically get a response by the end of the next business day. Public ones will be answered more quickly, since they have hundreds of eyes on them (In fact, answering your fellow student’s questions is a great way to earn participation points!) Do not email the course staff directly unless asked–this helps us keep all course communication in one place.

Note: It is never OK to post your source code for an assignment; see Academic Integrity below.

Academic Integrity

All members of the UCSC community benefit from an environment of trust, honesty, fairness, respect, and responsibility. You are expected to present your own work and acknowledge the work of others in 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 from another source, that is submitted for grading as your own
  • Plagiarism, including use of Internet material without proper citation
  • Submitting your own work in one class that was completed for another class (self-plagiarism) without prior permission from the instructor.

Violations of the Academic Integrity policy can result in dismissal from the university and a permanent notation on a student’s transcript. For the full policy and disciplinary procedures on academic dishonesty, students and instructors should refer to the Academic Integrity for Graduate Students.

Accessibility

UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately by email, preferably within the first two weeks of the quarter. At this time, I would like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact the DRC by phone at 831-459-2089 or by email at drc@ucsc.edu.

Intellectual Property

The materials in this course are the intellectual property of their creators. As a student, you have access to many of the materials in the course for the purpose of learning, engaging with your peers in the course, completing assignments, etc. You have a moral and legal obligation to respect the rights of others by only using course materials for purposes associated with the course. For instance, you are not permitted to share, upload, stream, sell, republish, share the login information for, or otherwise disseminate any of the course materials, such as: video and audio files, assignment prompts, slides, notes, syllabus, simulations, data-sets, discussion threads. Conversely, any materials created by you (for example, your videos, essays, images, audio files, annotations, notes) are your intellectual property and you may use them as you wish.

Religious Accommodation

UC Santa Cruz welcomes diversity of religious beliefs and practices, recognizing the contributions differing experiences and viewpoints can bring to the community. There may be times when an academic requirement conflicts with religious observances and practices. If that happens, students may request the reasonable accommodation for religious practices. The instructor will review the situation in an effort to provide a reasonable accommodation without penalty. You should first discuss the conflict and your requested accommodation with your instructor early in the term. You or your instructor may also seek assistance from the Dean of Students office (https://deanofstudents.ucsc.edu).

Principles of Community

The University of California, Santa Cruz expressly prohibits students from engaging in conduct constituting unlawful discrimination, harassment or bias (see https://reporthate.ucsc.edu/principles-and-policies/index.html). I am committed to providing an atmosphere for learning that respects diversity and supports inclusively. We need to work together to build this community of learning. I ask all members of this class to: - be open to and interested in the views of others consider the possibility that your views may change over the course of the term - be aware that this course asks you to reconsider some “common sense” notions you may hold honor the unique life experiences of your colleagues - appreciate the opportunity that we have to learn from each other listen to each other’s opinions and communicate in a respectful manner - keep confidential discussions that the community has of a personal (or professional) nature - ground your comments in the work we are studying. Refer frequently to the texts and make them the focus of your questions, comments, and arguments. This is the single most effective way to ensure respectful discussion and to create a space where we are all learning together.

Title IX and CARE

UC Santa Cruz is committed to providing a safe learning environment that is free of all forms of gender discrimination and sexual harassment, which are explicitly prohibited under Title IX. If you have experienced any form of sexual harassment, sexual assault, domestic violence, dating violence, or stalking, know that you are not alone. The Title IX Office, the Campus Advocacy, Resources & Education (CARE) office, and Counseling & Psychological Services (CAPS) are all resources that you can rely on for support.

Please be aware that if you tell me about a situation involving Title IX misconduct, I am required to share this information with the Title IX Coordinator. This reporting responsibility also applies to course TAs and tutors (as well to all UCSC employees who are not designated as “confidential” employees, which is a special designation granted to counselors and CARE advocates). Although I have to make that notification, you will control how your case will be handled, including whether or not you wish to pursue a formal complaint. The goal is to make sure that you are aware of the range of options available to you and that you have access to the resources you need.

Confidential resources are available through CARE. Confidentiality means CARE advocates will not share any information with Title IX, the police, parents, or anyone else without explicit permission. CARE advocates are trained to support you in understanding your rights and options, accessing health and counseling services, providing academic and housing accommodations, helping with legal protective orders, and more. You can 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 else might need, visit the resources page from the Title IX Office
  • Counseling & Psychological Services (CAPS) can provide confidential counseling support. Call them at (831) 459-2628.
  • You can also report gender discrimination and sexual harassment and violence directly to the University’s Title IX Office (https://titleix.ucsc.edu), by calling (831) 459-2462 or by using their 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 maintaining an objective, civil, diverse and supportive community, free of coercion, bias, hate, intimidation, dehumanization or exploitation. The Hate/Bias Response Team is a group of administrators who support and guide students seeking assistance in determining how to handle a bias incident involving another student, a staff member, or a faculty member. To report an incident of hate or bias, please use this form

Student Services

Counseling and Psychological Services

Many students at UCSC face personal challenges or have psychological needs that may interfere with their academic progress, social development, or emotional welling. The university offers a variety of confidential services to help you through difficult times, including individual and group counseling, crisis intervention, consultations, online chats, and mental health screenings. These services are provided by staff who welcome all students and embrace a philosophy respectful of clients’ cultural and religious backgrounds, and sensitive to differences in race, ability, gender identity and sexual orientation.

Student Success and Engagement Hub

The Division of Student Success provides campus-wide coordination and leadership for student success programs and activities across departments, divisions, the colleges, and administrative units.

Slug Support Program

College can be a challenging time for students and during times of stress it is not always easy to find the help you need. Slug Support can give help with everything from basic needs (housing, food, or financial insecurity) to getting the technology you need during remote instruction. To get started with SLUG Support, please contact the Dean of Students Office at 831-459-4446 or you may send us an email at deanofstudents@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 at UC 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. Always dial 9-1-1 in the case of an emergency.