CS 554: Advanced Topics in Concurrent Computing Systems
Instructor: William Mansky
Overview
The purpose of this course is to learn the logical foundations of concurrent hardware and software systems. In particular, we will focus on concurrent memory models, the abstractions provided by both processors and programming languages that define the range of possible behaviors when multiple threads read and write to shared resources. We will learn to read, define, and interpret these memory models, and to understand their effects on the behavior and correctness of concurrent programs and compilers.
By the end of this class, you will know how to:
- describe and understand the memory models provided by hardware and programming languages
- determine whether a concurrent program can produce a particular outcome under a given memory model
- test the behaviors allowed by a memory model
- implement a programming language’s memory model by compiling to hardware concurrency primitives
- prove that a program or data structure works correctly under weak memory
Prerequisites
This course has no official prerequisites, but familiarity with basic concurrent programming (such as through CS 454) will make the course material much easier to understand.
Welcome!
I’m glad you’re taking this course, and excited to explore concurrent memory models with you. That said, your wellbeing is more important to me than your coursework. I’ve tried to plan the course so that it’ll be fun, interesting, and not too much of a burden, but if there’s more I can do, please let me know. Likewise, if circumstances prevent you from completing an assignment or make it difficult for you to keep up with the course, let me know and we can figure something out. I’ve enabled anonymous posts on Piazza, so you can give feedback fully anonymously if you want to.
Communication
The class discussion board on Piazza is the best place to post questions about the course material, assignments, course policies, project, and anything else. If you see a question that you know the answer to, go ahead and answer it! You can ask and answer anonymously, and you can also use it to send messages to the instructor. There will be a small amount of extra credit available for being a good citizen on Piazza - asking questions, answering questions, and generally being helpful. (Remember that I can’t give you extra credit for fully anonymous posts!)
Evaluation
Grades are curved based on an aggregate course score. This means that the course score cut-offs for an A, B, C, etc. are not defined ahead of time: these will be set after the end of the course.
The course grade weighting is:
| Task | % of total grade |
|---|---|
| In-class exercises | 25 |
| Assignments | 50 |
| Project | 25 |
Attendance and Participation
Class will meet two times per week. You can find the topics for each class on the schedule page (subject to change). This is an on-campus course. A small amount of extra credit will be available for active participation in class or on Piazza. Office hours will be held both in-person and online.
Materials
There is no textbook for the class; we will refer to papers and other reading materials that are freely available online, and will be linked from the schedule page.
Assignments
We will have a mix of written assignments, programming/tool use assignments, and in-class presentations. Feel free to post questions on Piazza or come to office hours for help with homework. If you’re stuck on something for more than 15 minutes or so, take a break and ask a question! There are a lot of ways concurrency can go wrong, and a bit of outside perspective often helps. Assignments will be submitted via Gradescope. We will work through example solutions in class, so please submit assignments on time, even if they’re not 100% complete.
Academic Integrity
You are encouraged to consult with your classmates on the assignments, but you should write your own code, and copying code/proofs from your classmates without citation is considered plagiarism. Given the question “how did you do X?”, a great response would be “I used function Y, with W as the second argument. I tried Z first, but it doesn’t work.” An inappropriate response would be “here is my code, look for yourself.” If you ask for help from sources outside the course, you must clearly state that you’re asking for help on homework for a class.
In keeping with academic and professional ethics, you must cite your sources in all submitted materials. List classmates you discussed your homework with, webpages from which you got inspiration or copied (short) code snippets, and genAI tools you queried. All students are expected to understand and be able to explain their submitted materials, and may be asked to do so at the instructor’s discretion. Plagiarism and cheating, as in copying the work of others, paying others to do your work, etc., is prohibited, is grounds for failing the course, and will be reported.
Assignments and Generative AI
Weak memory models are complicated, subtle, and not widely discussed, so ChatGPT and other generative AI tools will probably not work very well on them – they may appear to have answers, but those answers are likely to be wrong in ways that are difficult to determine. For this reason, I strongly discourage the use of these tools for homework assignments in this class. If do you use ChatGPT to help with assignments anyway, 1) always cite it (e.g., in a comment in code), and 2) carefully inspect the results to make sure that you understand them and they are correct. Turning in ChatGPT-generated work as is risks receiving a 0 for the assignment; turning it in without citation will be treated as plagiarism.
Accessibility
UIC is committed to full inclusion and participation of people with disabilities in all aspects of university life. Students who face or anticipate disability-related barriers while at UIC should connect with the Disability Resource Center (DRC) at drc.uic.edu, drc@uic.edu, or at (312) 413-2183 to create a plan for reasonable accommodations. In order to receive accommodations, students must disclose disability to the DRC, complete an interactive registration process with the DRC, and provide their course instructor with a Letter of Accommodation (LOA). Course instructors in receipt of an LOA will work with the student and the DRC to implement approved accommodations.
Mental and Emotional Health
Your mental health and emotional wellness are at least as important as academic success. The UIC Counseling Center offers an array of services to provide additional support throughout your time at UIC, including workshops, peer support groups, counseling, self-help tools, and initial consultations to speak to a mental health counselor about your concerns. Please visit the Counseling Center website for more information (https://counseling.uic.edu/). Further, if you think emotional concerns may be impacting your academic success, please contact your faculty and academic advisers and we can try to make things more manageable.
Religious Holidays
The UIC Senate Policy on religious holidays is as follows:
“The faculty of the University of Illinois at Chicago shall make every effort to avoid scheduling examinations or requiring that student projects be turned in or completed on religious holidays. Students who wish to observe their religious holidays shall notify the faculty member by the tenth day of the semester of the date when they will be absent unless the religious holiday is observed on or before the tenth day of the semester. In such cases, the students shall notify the faculty member at least five days in advance of the date when he/she will be absent. The faculty member shall make every reasonable effort to honor the request, not penalize the student for missing the class, and if an examination or project is due during the absence, give the student an exam or assignment equivalent to the one completed by those students in attendance. If the student feels aggrieved, he/she may request remedy through the campus grievance procedure.”
Nondiscrimination
UIC is committed to the most fundamental principles of academic freedom, equality of opportunity, and human dignity involving students and employees. Freedom from discrimination is a foundation for all decision making at UIC. Students are encouraged to study the University’s Nondiscrimination Statement. Information on relevant policies and procedures is available on the University web pages of the Office of Access and Equality.
Classroom Conduct Policy
Please be prepared to act according to our classroom conduct policy:
- Be present during class. Put away cell phones and remove yourself from other distractions.
- Be respectful of the learning space and community. For example, avoid side conversations or unnecessary disruptions.
- Use your classmates’ preferred names and gender pronouns.
- Assume goodwill in all interactions, even in disagreement.
- Facilitate dialogue and value the free and safe exchange of ideas.
- Try not to make assumptions, have an open mind, seek to understand and not judge.