Syllabus

CSE 124 Fall 2021 Syllabus

Last updated: October 5, 2021

This course will provide a broad understanding of networked systems design and implementation. Topics include techniques for building distributed applications, sockets programming, Remote Procedure Calls, scale-out distributed directories, managing scalability, networked storage, indirection, load balancing, datacenter design, and the energy/carbon impacts of cloud computing.

The course will include a series of projects and assignments, a mid-term exam, and a final exam.

We’ll be programming in the Go language, however we do not expect students to have experience in this language prior to taking this course.

CSE 124 is a senior upper-division elective, and CSE 224 is the graduate-level offering aimed primarily at MS students and non-systems Ph.D. students. Note: You cannot receive credit for both CSE 124 and CSE 224.

Course Staff

Logistics

Class: Tu/Thu 11:00am to 12:20pm, Outdoor tent P416 East

Discussion section: Tue 8-9pm, P416 East tent

As requsted by the Chancellor and Executive Vice Chancellor, this course will be offered as an in-person, synchronous course.

To attend class you must follow all of the rules and procedures from campus, including filling out the daily symptom screening app, wearing a mask during class, and refraining from eating or drinking during class. I will create a break about halfway through class for people to get a drink of water or just to step outside for a few minutes.

If you are not able to attend class in person, you can watch a video recording of the lecture, which will be made available shortly after class ends via podcasts.ucsd.edu.

For office hours, you can attend in person and ask questions (following masking protocols), or you can attend office hours remotely via Zoom. As a courtesy to the professor and TAs, we ask that you turn on your camera and microphone when you are asking questions or talking with the instructional staff.

The mid-term and final exam will be given in person during the class time and final exam time established by the registrar. If guidance from campus changes, an alternative arrangement will be put into place. Note that unless campus creates a new policy for everyone, no individual requests for online exams can be accommodated.

And of course, as has been the case during this entire pandemic, all of the above is subject to change as conditions and rules from campus are updated.

Textbooks

We are using “The Go Programming Language” by Donovan and Kernighan

The book is available online for free, or at cost for a paperback:

There is no requirement that you buy the paperback and it is fine to use the free online version.

If you would like some additional background on basic networking concepts covered in the first two weeks, consult “Computer Networks” by Andrew Tanenbaum. It is available for free online:

Grading

Late policy

Since we are still experiencing effects from the COVID-19 pandemic, I am offering a more lenient than usual late policy for projects. You can submit your project up to 48 hours past the deadline with no penalties. However in fairness to the other students, no help or guidance from the teaching staff will be allowed during these two late days, and you should not post any messages to Piazza during the late days. If you have questions about this policy please reach out to Prof. Porter.

Q&A Message board and office hours

We’ll be using the Piazza message board, which is directly linked from our class’s canvas page.

You can create public posts and comment on:

You may only create private, instructor-only posts related to:

If the answer to your question is relevant to the entire class, your post (and our reply) will be made public (and your username will be anonymous to the rest of the class). This should happen approximately once per day Monday-Friday. If the answer to your question is available in the project assignment write-ups or was covered during class, your post will simply be marked as duplicate and closed.

Feel free to ask questions about the projects in office hours.

Collaboration policy

The projects are to be done individually, and you should not look at another student’s code or let another student look at your code. Do not put your code online (e.g. in a public GitHub repository) during the quarter.

You are free to talk with other students about the Go language itself, about course materials and whatever is covered in lecture, and you are encouraged to study together for exams. When in doubt, please ask the instuctor first.

“Academic Integrity is expected of everyone at UC San Diego. This means that you must be honest, fair, responsible, respectful, and trustworthy in all of your actions. Lying, cheating or any other forms of dishonesty will not be tolerated because they undermine learning and the University’s ability to certify students' knowledge and abilities. Thus, any attempt to get, or help another get, a grade by cheating, lying or dishonesty will be reported to the Academic Integrity Office and will result sanctions. Sanctions can include an F in this class and suspension or dismissal from the University. So, think carefully before you act by asking yourself: a) is what I’m about to do or submit for credit an honest, fair, respectful, responsible & trustworthy representation of my knowledge and abilities at this time and, b) would my instructor approve of my action? You are ultimately the only person responsible for your behavior. So, if you are unsure, don’t ask a friend but rather ask your instructor, instructional assistant, or the Academic Integrity Office.”

You can learn more about academic integrity at academicintegrity.ucsd.edu (Source: Academic Integrity Office, 2018)

Diversity and Inclusion

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 the 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/.

Students with Disabilities

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 me privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.

Basic Needs/Food Insecurities

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.