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 SC)
Email should be used if you need individual accommodations, and should include
340 in the subject line. Discord2 Discord join link is on the NetID password login-protected page should be used for all other course-related communication.
Aarya Bhatia, Ramya Bygari, Carlos Conley, Gisaldjo Purbollari, Samyak Jain, Navtej Kathuria, Faraz Siddiqi, Aman Singh, Neil Song, Zheng Xinze
Contact by posting on Discord. 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 schedule page. 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; a detailed comparison based on the Spring 2021 offerings of the three courses is available for anyone who is interested.
Class meets3 This information is taken from the registrar’s page on this course. each Tuesday and Thursday from 12:30-1:45PM in room 100 of the Material Science and Engineering building (MSEB).
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 higher than those for students who do not.
Several days attendance will be required, with some grade-contributing interactive activity executed during class. All of these will be during part 3, and the exact list of days will be finalized before the second midterm.
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 Discord.
The purpose of tutoring hours is to help you learn, not to help you debug or complete your assignments. Having completed at least three semesters of programming courses, we expect you to be able to write functioning code and to diagnose and resolve basic errors on your own. We will address questions about course content to the best of our ability. Questions about course assignments may be answered indirectly or not at all, depending on how much course content they touch on.
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⅔%.
If have not taught this course before so I might accidentally miscalibrate the difficulty of some assignments. In that case I might lower grade cut-offs (e.g. give more higher grades than percentages indicate), but I will not raise the grade cut-offs (80% will be a B or maybe a higher grade, but not a lower grade).
There will be a few extra credit opportunities, all of which will be clearly indicated in advance. Each successfully-completed extra credit MP is worth +0.1% on your final grade. Partial credit is not given for extra credit MPs.
Most MPs (except those with in-class checkoff, like the final project) are due on Tuesday. Some of you will need an day-long extension now and then, and there are too many students for me to want to handle those individually so submissions up to 24 hours late will be accepted at no grade penalty as if they were part of a requested and approved deadline extension.
Other than those automatically-granted 24-hour extensions to MPs, late submissions will only be accepted if they were arranged in advance with the instructor.
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 is about working together. Collaboration is not giving the direct answer to a friend or sharing the source code to an assignment. Collaboration requires you to make a serious attempt at every assignment and discuss your ideas and doubts with others so everyone gets more out of the discussion Your answers must be your own words and your code must be typed (not copied/pasted) by you.
Academic dishonesty is taken very seriously in CS 340 and all cases will be brought to the University, your college, and your department. You should understand how academic integrity applies specifically to CS 340: the sanctions for cheating on an assignment includes a loss of all points for the assignment, the loss of all extra credit in CS 340, and that the final course grade is 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.
Academic integrity includes protecting your work. If you work ends up submitted by someone else, we have considered this a violation of academic integrity just as though you submitted someone else’s work.
All policies that apply to collaborating with other people also apply to collaborating with AI. This means in part that having an AI write code or answer questions for you is as much a violation of academic integrity as having another person do it.
Assignments in this class have two purposes: to help form knowledge and ability in your mind that you can utilize in the future and to attempt to measure how much knowledge and ability you have acquired. In most cases AI does not support either goal and should not be used.
As an aside, in the past few semesters several faculty have experimented with allowing AI aids and have found their use led to lower grades on the assignments they were used with as well as lower grades on subsequent exams. These results have not yet been validated in a controlled study, but suggest that you will learn more and earn a higher score if you collaborate with people (such as fellow students and course staff) instead of with AI tools.
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.