Course Staff

Instructor

Professor Jule Schatz
Pronunciation: You-la Shots
Email: drschatz@illinois.edu
Office: 2330 Siebel Center

Office location

Course Communication

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

To request an extension or get additional support based on extenuating circumstances, please email Prof. Schatz directly.

Course Description

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.

Credit Hours: 3
Prerequisites: CS 225

Course Structure

Overview

CS 340 meets twice a week for in-person lectures. Roughly 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:

  • Learn how computers work from the hardware up
  • Practice systems programming in C
  • Build network applications

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 the internet, and various as-a-Service models such as containerization and web services.

Content Delivery

All of the course content will be posted on 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 create internet applications.

Class Meetings

Schedule

Lectures: Tuesday/Thursday, 12:30 PM - 1:45 PM
Location: Room 100, Materials Science & Eng Bld

All lectures will be recorded, posted on MediaSpace, and then linked from the corresponding row on the Content page.

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 attend, please let Prof. Schatz know as soon as possible. Each situation will be evaluated on a case-by-case basis:

Examples of common reasons for an absence for one of these meetings to be excused include illness, family emergency, university-approved events, or religious observances.

Office Hours

See the Office Hours schedule on the Home page for when office hours take place. One-off adjustments based on staff availability may be announced on Campuswire. All office hours are held in the lower level of Siebel.

Office hours are a place to receive 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.

Assignments and Grades

55% - Exams

  • 3 exams at around 18% each. See the schedule on the Home page for the exact dates.
  • Exams are 50 minutes and given in the CBTF (always a Thursday). The Thursday class session will be canceled for the week of each exam. We recommend taking the exam during the time you have alloted for class (but you are free to schedule it for any time that day).
  • Each exam will have an optional, second-chance exam available the following week, also in the CBTF but on a Tuesday. Your score for the exam, if you take the second chance exam, will be 80% of your higher scored exam and 20% of your lower scored exam. You must sign up for a CBTF slot for the second chance exam like you would for the regular exam.

35% - Machine Projects (MPs)

  • Roughly one per week.
  • Most MPs are submitted on PrairieLearn, with one MP requiring an office hours check-off.

5% - Final Project Check-Off

5% - Homework Assignments

  • Given roughly weekly in PrairieLearn.
  • Each exam will replace a preceding, relevant homework score (if it would improve your grade). This will be applied at the end of the semester.

Extra Credit for In-Class Exercises

  • 0.05% is given for completing all in-class exercises for a specific class period.
  • You must be present for the entire class period to earn the extra credit. Pretending to attend class to get the extra credit is an academic integrity violation. It will result in all extra credit being removed and a 10% final grade deduction.

Letter Grades

Letter grades are based on a scale of percentages where 90s are As, 80s are Bs, 70s are Cs, and 60s are Ds:

  • A: 93.33% - 100%
  • A-: 90% - 93.33%
  • B+: 86.67% - 90%
  • B: 83.33% - 86.67%
  • B-: 80% - 83.33%
  • C+: 76.67% - 80%
  • C: 73.33% - 76.67%
  • C-: 70% - 73.33%
  • D+: 66.67% - 70%
  • D: 63.33% - 66.67%
  • D-: 60% - 63.33%
  • F: Below 60%

Because of the extra credit from attending class, I will not adjust individual final grades.

MP Policies

Guidelines

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:

  • Attend lecture before coding. Lectures often include MP-related content. Please review that prior to asking for help.
  • Design and type all your own code. Search engines, AI systems, tutors, and friends are not permitted sources of MP code.
  • 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.
  • 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.
  • If you need help, come to office hours!

Timeliness and Deadlines

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

  • Every MP is due at 11:59pm on a Tuesday, however you can submit for full credit until Wednesday at 11:59pm (grace period). Note that the course staff will not help you with the MP past the Tuesday night deadline.
  • For homework, exams, and the final project check-off we do not accept late work.
  • The professor may approve exceptions to these rules via email in cases of extenuating circumstances. Please contact the professor as soon as possible for full consideration.

Computer-Based Testing Facility

CBTF Policies

This course uses the Grainger College of Engineering's Computer-Based Testing Facility for its exams. This course offers a single day to take each exam, NOT a 3-day window. Each exam is scheduled for a Thursday and that corresponding Thursday class is cancelled. We recommend taking the exam during the time you have alloted for class (but you are free to schedule it for any time that day).

To use the CBTF, you need to sign up for a testing slot ahead of time (usually open for sign up 2 weeks before the exam). Take the CBTF Orientation (10 minutes) and review all instructions on the CBTF website before your first exam.

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

Accommodations

If you have accommodations identified by the Division of Rehabilitation-Education Services (DRES) for exams, please submit your Letter of Accommodations (LOA) through the CBTF website 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.

During Exams

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.

Academic Integrity

Collaboration

Collaboration includes giving or receiving information from others, including AI systems, websites, tutors, or other students.

  • 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

You cannot use AI to write code for you or give you direct answers.

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

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.

Consequences

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

  • The case will be brought to the college's academic integrity process
  • All points will be lost on the assignment
  • All extra credit from the course will be removed
  • The final course grade will be lowered by one whole letter grade (10 percentage points)

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

Campus Resources

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.

  • Counseling Center: (217) 333-3704, 610 East John Street, Champaign
  • McKinley Mental Health: (217) 333-2705
  • National Suicide Prevention Lifeline: (800) 273-8255
  • Rosecrance Crisis Line: (217) 359-4141 (24/7, confidential)

This statement is approved by the University of Illinois Counseling Center.

Anti-Racism and Inclusivity

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). 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.

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). 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 or the Counseling Center. For urgent matters during business hours, no appointment is needed to contact the Counseling Center. For mental health emergencies, you can call 911.

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 the FERPA website for more information.