Syllabus
CS 340: Introduction to Computer Systems

Basics of computer systems. Number representations, assembly/machine language, abstract models of processors (fetch/execute, memory hierarchy), processes/process control, simple memory management, file I/O and directories, network programming, usage of cloud services.

3 credit hours

Prerequisites: CS 225

1 Course Staff

Instructors1
Jule Schatz2 Pronounced You-la Shots (drschatz) (2330 SC) and Luther Tychonievich3 Pronounced Loo-thur Tai-CON-of-Itch (luthert) (2340 SC).
Please send an email to BOTH instructors with 340 in the subject line if you need individual accommodations.
Staff
Roma Chandra, Daixuan Li, Janice Mei, Otto Piramuthu, Michelle Ru, Kavya Sachdeva, Frank Schmidt, Arunima Suri, Nick Tetreault, Andrea Watkins, and Sarah Xu.

To contact staff or ask to course-related questions, please post on Campuswire4 Campuswire accounts are added the business day after you enroll.

2 Course Structure

CS 340 meets twice a week for in-person lectures. Each week you will have a mastery-based homework that allows you to practice and master the technical concepts. After mastering the concepts, you then apply them in the weekly assignments (MPs). Throughout the semester, you will:

The course will be roughly divided into two parts. Part 1 covers how computers are designed and operate, from electrons up to C. This part also covers concurrency and synchronization, including the basics of operating systems and threads. Part 2 covers interaction between systems written by different parties, including various as a Service models such as containerization and web services.

All of the course content will be posted on the this website. While some draft content might appear ahead of schedule, in general content will be posted shortly before it is used in class.

This course has significant overlap with CS 233 and CS 341. CS 233 and CS 341 invest 8 credit hours in going into detail on topics that CS 340 covers in 2 credit hours. Our briefer overview is sufficient for many purposes, but leaves out details needed for hardware-aware application domains such as embedded systems and cybersecurity. The remaining credit hour in 340 explores how to use containers and service architectures to deploy internet applications.

2.1 Class Meetings

Class meets each Tuesday and Thursday from 2:00PM - 3:15PM in room 2079 in the Natural History Building.

All lectures are recorded and posted on MediaSpace.

2.1.1 Absences

For most class meetings, absences are permitted at no penalty and require no notice. Please do not attend class meetings if you are feeling ill.

For the following, if you cannot make it, please let an instructor know as soon as possible. We will evaluate each situation on a case-to-case basis.

  1. The three exams (in the CBTF)
  2. The MP9 checkoff (Nov 20th during class)
  3. The final project checkoff (Dec 16th 7pm)


Examples of common reasons for an absence for one of these meetings to be excused include

  • Potentially contagious illness.
  • Illness or episodic disability that would inhibit performance in the scheduled assessment.
  • University-sponsored travel.
  • Personal or family emergencies.
  • Major religious observances.

2.2 Tutoring Hours

See the schedule for when and where tutoring hours take place. One-off adjustments based on tutor availability may be announced on Campuswire.

Tutoring hours are a place to recieve help on misunderstandings, MPs, and homeworks. Additionally, it’s a great place to meet classmates and staff! Feel free to stop by even if you don’t have a specific question.

3 Assignments and Grades

Homework Assignments
  • 10% of course grade.
  • Given weekly in PrairieLearn.
In-class Exercises
  • 0.05% extra credit per class period.
  • Given in most (but not all) class sessions.
  • Must be completed in-person to earn credit.
Exams
  • 45% of course grade (15% each).
  • Given in the CBTF.
  • 50 minutes, scheduled for ONE day (always a Tuesday). The Tuesday class session will be canceled for the week of each exam.
Machine Projects (MPs and Final Project)
  • 45% of course grade.
  • Roughly one per week, though some weeks won’t have one.
  • Most MPs are submitted on our class submission page, with one MP requiring a tutoring hours check-off, and one MP having an in-class component.
  • The final project will be checked off during the university-assigned finals period.

Letter grades are based on a scale of percentages where 90s are As, 80s are Bs, 70s are Cs, and 60s are Ds; pluses are given for the top third of each letter bucket group (e.g. C+ is 76⅔% ≤ grade < 80%) and minuses for the bottom third (e.g. B− is 80% ≤ grade < 83⅓%). As an exception, A+ will be given to a small number of the very best performers in the class, regardless of how many students earn more than 96⅔%.

Some MPs will include an extra credit opportunity which will be clearly indicated in the MP description and will be awarded only if you got 100% on the rest of the MP.

4 Homework Replacement Policy

Each exam will replace a preceeding, relvant, homework score (if it would improve your grade). For example, let’s say HW 1, 2, and 3 are tested on exam 1. If you get a higher score on exam 1 then on HW 2, HW 2’s score is replaced with your exam score. For exam 2, the only relevant HW scores are the ones after exam 1 but before exam 2. For exam 3, the only relevant HW scores are one after exam 1 and exam 2 but before exam 3.

5 MP Policies

Many of the MPs are challenging. Expect to invest significant time over several days for each MP.

Our goal with each MP is to give you hands on practice with the material covered in lecture. It is not to give us working code, nor learn by looking at working code.

This leads to the following concrete policies:

  1. Attend lecture before coding. Lecture often includes MP-related content. Please review that prior to asking for help.

  2. Design and type all your own code. Search engines, AI systems, tutors, and friends are not permitted sources of MP code.

  3. Share tips, not steps. It is helpful to share tips like fseek is helpful. It is harmful to share steps like add a for loop that uses fread with a 4 byte buffer, converts to an int, and then fseeks that far. Figuring out the steps yourself is part of your learning experience.

  4. Always use a debugger. MP1 shows you how to use a debugger. For each subsequent MP, if your code is not doing what you expected it to do, run it in the debugger to see how it is doing the wrong thing.

  5. If you need help, come to tutoring hours!

6 Timeliness and Deadlines

Deadlines matter, but life also happens! We have 3 policies around deadlines.

  1. If you miss an MP deadline by 24 hours or less, submit anyway. We’ll note that you were late but won’t dock your GPA. However, course staff will not be able to help you with the MP past the posted deadline.

  2. For homework, exams, and in-class checkoffs we do not accept late work.

  3. The professors may approve exceptions to these rules via email in cases of extenuating circumstances. Please contact the professors as soon as possible for full consideration.

7 Computer-Based Testing Facility

This course uses the Grainger College of Engineering’s Computer-Based Testing Facility for its exams. This course offering has a SINGLE day to take each exam, NOT a 3-day window. Each exam is scheduled for a Tuesday and that corresponding Tuesday class is cancelled.

The policies of the CBTF are the policies of this course, and academic integrity infractions related to the CBTF are infractions in this course.

If you have accommodations identified by the Division of Rehabilitation-Education Services (DRES) (http://www.disability.illinois.edu/) for exams, please submit your Letter of Accommodations (LOA) through the CBTF website (https://cbtf.illinois.edu/students/dres) as soon as possible. It can take up to five days for your LOA to be processed and if you make a reservation before your LOA has been processed, your reservation will not include your testing accommodations and you will be required to reschedule. This must be done each semester you use the CBTF.

If you have any issue during an exam, inform the proctor immediately. Work with the proctor to resolve the issue at the time before logging off. If you do not inform a proctor of a problem during the test then you forfeit all rights to addressing the problem you experienced during your exam.

Take the CBTF Orientation (https://go.illinois.edu/student-orientation) (10 minutes) and review all instructions on the CBTF website (https://cbtf.illinois.edu/students) before your first exam.

8 Academic Integrity

8.1 Collaboration

Collaboration includes

Homework and in-class collaboration is permitted provided that each student ends up able to explain why their correct answers are correct.

Exam collaboration is not permitted.

MP collaboration is not permitted if it involves giving or receiving full or partial solutions. MP collaboration that does not share solutions is permitted if it focuses on shared learning.

AI Policy

Observations about collaborating with AI

AI is a great tool for searching for documentation on unfamiliar libraries. Queries like how do I download a webpage using aiohttp are likely to provide useful information.

In Spring 2024, most student queries to AI that went beyond this yielded incorrect and confusing information. When AI systems were asked for full or partial MP solutions, they provided code that seemed promising at first but used problematic approaches that were almost impossible to fix and often led students into unproductive thought processes, creating confusion instead of being helpful. When AI systems were asked to debug code, they usually added more (and more confusing) bugs instead. Students that we know used AIs in these ways earned two letter-grade steps below the class average.

Don’t engage in prohibited collaboration with AI, but also be cautious in how much permitted collaboration you do with it. If it’s not giving answers that align with what we’ve discussed in class, stop before you get more confused, and seek human help instead.

8.2 Consequences of Academic Misconduct

If a student is detected engaging in academic dishonesty on an assignment in CS 340 (including violating the collaboration or other course policies, abusing computer resources, lying, cheating, or stealing), the following will occur:

A second incident, or any cheating on an exam, results in an automatic F in the course.

9 Campus Resources

9.1 Mental Health

Significant stress, mood changes, excessive worry, substance/alcohol misuse or interferences in eating or sleep can have an impact on academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings which are covered through the Student Health Fee. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do for yourself and for those who care about you.

This statement is approved by the University of Illinois Counseling Center

9.3 Anti-Racism and Inclusivity Statement

The Grainger College of Engineering is committed to the creation of an anti-racist, inclusive community that welcomes diversity along a number of dimensions, including, but not limited to, race, ethnicity and national origins, gender and gender identity, sexuality, disability status, class, age, or religious beliefs. The College recognizes that we are learning together in the midst of the Black Lives Matter movement, that Black, Hispanic, and Indigenous voices and contributions have largely either been excluded from, or not recognized in, science and engineering, and that both overt racism and micro-aggressions threaten the well-being of our students and our university community.

The effectiveness of this course is dependent upon each of us to create a safe and encouraging learning environment that allows for the open exchange of ideas while also ensuring equitable opportunities and respect for all of us. Everyone is expected to help establish and maintain an environment where students, staff, and faculty can contribute without fear of personal ridicule, or intolerant or offensive language. If you witness or experience racism, discrimination, micro-aggressions, or other offensive behavior, you are encouraged to bring this to the attention of the course director if you feel comfortable. You can also report these behaviors to the Bias Assessment and Response Team (BART) (https://bart.illinois.edu/). Based on your report, BART members will follow up and reach out to students to make sure they have the support they need to be healthy and safe. If the reported behavior also violates university policy, staff in the Office for Student Conflict Resolution may respond as well and will take appropriate action.

9.4 Community of Care

As members of the Illinois community, we each have a responsibility to express care and concern for one another. If you come across a classmate whose behavior concerns you, whether in regards to their well-being or yours, we encourage you to refer this behavior to the Student Assistance Center (217-333-0050 or http://odos.illinois.edu/community-of-care/referral/). Based on your report, the staff in the Student Assistance Center reaches out to students to make sure they have the support they need to be healthy and safe.

Further, we understand the impact that struggles with mental health can have on your experience at Illinois. Significant stress, strained relationships, anxiety, excessive worry, alcohol/drug problems, a loss of motivation, or problems with eating and/or sleeping can all interfere with optimal academic performance. We encourage all students to reach out to talk with someone, and we want to make sure you are aware that you can access mental health support at McKinley Health Center (https://mckinley.illinois.edu/). Or the Counseling Center (https://counselingcenter.illinois.edu/). For urgent matters during business hours, no appointment is needed to contact the Counseling Center. For mental health emergencies, you can call 911.

9.5 Family Educational Rights and Privacy Act (FERPA)

Any student who has suppressed their directory information pursuant to Family Educational Rights and Privacy Act (FERPA) should self-identify to the instructors to ensure protection of the privacy of their attendance in this course. See https://registrar.illinois.edu/academic-records/ferpa/ for more information on FERPA.