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
Luther Tychonievich1 Pronounced Tai CON of Itch
(luthert) (2340 SC2 )
Email should be used if you need individual accommodations, and should include 340
in the subject line. Campuswire3 Campuswire accounts are added the business-day after you enroll should be used for all other course-related communication.
Fatih Atlamaz, Vasudha Das, Navtej Kathuria, Daixuan Li, Nishk Patel, Krut Patel, Raunuk Sha, Taigue Woods
Contact by posting on Campuswire. Direct contact with specific assistants is discouraged; they are students with other demands on their time and direct contact makes it difficult to manage how much time they are devoting to this course.
CS 340 meets twice a week for in-person lectures. You will explore systems through real systems, applications, protocols, and implementations. 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 programming projects (MPs
). Throughout the semester, you will:
The course will be roughly divided into three parts. Part 1 covers how computers are designed and operate, from electrons up to C. Part 2 covers concurrency and synchronization, including the basics of operating systems and threads. Part 3 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. A more detailed comparison based on the Spring 2021 offerings of the three courses is available for anyone who is interested.
Class meets4 This information is taken from the registrar’s page on this course. each Tuesday and Thursday from 2:00-3:15PM in room 1404 of the Siebel Center for Computer Science (SC).
Most days attendance is optional but encouraged, with recordings posted on ClassTranscribe several hours after lecture. Past semesters suggest that the average grades of students who attend regularly tend to be significantly higher than those for students who do not. Those attending daily in Spring 2024 earned A+ grades at 4× the rate of students who did not and a C or lower at 0.1× the rate of students who did not attend.
Attendance is required on November 21, with some grade-contributing interactive activity executed during class. Attendance is also required on the scheduled final exam time, and for the midterms in the CBTF.
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 or are potentially contagious with any illness, even a mild virus. Illnesses that are mild in you may be more severe in others and should not be spread.
There are meetings where absences are not permitted because they are part of some assessment; being absent from these meetings requires both advance approval and completing an instructor-specified alternative assessment. The meetings with required attendance are:
Examples of common reasons for an absence for one of these meetings to be excused include
Absences from required meetings should be reported to the instructor as soon as you are aware of them. Excused absences will require make-up work identified by the instructor to avoid a grade penalty.
See the schedule for when and where tutoring hours take place. One-off adjustments based on tutor availability may be announced in Campuswire.
We invite all to attend tutoring hours: course staff can often identify an correct a misunderstanding much more quickly than you could on your own. Often, trouble completing an MP or HW will be the indication to you that something isn’t fully understood. We will generally focus more on teaching you what you are missing than on debugging your MP code or answering the HW question, with the hope that doing so will not only give you the ability to solve your immediate challenge but also help you face fewer similar challenges in the future.
Course grades are given as follows. Each category (except the final project) has several instances, with instances within a category evenly divided.
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. No other parts of the course gives extra credit.
MP submission policies are found on the MP page.
Homework and in-class checkoffs are never accepted late. Each midterm will replace one lower (or missed) preceding homework score. If you must miss an in-class checkoff, please arrange before that day with the instructor to see if a course assistant can be set up to represent you in the missed class.
Midterms are only accepted late if arranged in advance with the professor.
This course uses the Grainger College of Engineering’s Computer-Based Testing Facility for its midterm exams.
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.
Collaboration includes
Homework collaboration is permitted provided that each student ends up able to explain why their correct answers are correct.
Midterm collaboration is not permitted.
Machine problem collaboration is permitted if it focuses on shared learning. Machine problem collaboration is not permitted if it involves giving or receiving full or partial solutions. Additional guidelines are found on the MP page.
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.
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.
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
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.
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.
Any student who has suppressed their directory information pursuant to Family Educational Rights and Privacy Act (FERPA) should self-identify to the instructor 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.