?>
Instructor | David Ferry, Homepage |
Course Web Site | http://cs.slu.edu/~dferry/courses/csci2510/ |
Course meeting times | Monday, Wednesday, & Friday from 1:10 pm - 2:00 pm, Ritter Hall 115 |
Midterm exam |
October 11th, During Class |
Final exam |
Wednesday, Dec. 13th, 12:00 PM - 1:50 PM |
Office hours | See my schedule |
Contact | You may contact me in person during office hours or during class time, or you may email me at dferry@slu.edu. I am also available to meet by appointment, see my schedule. |
Modern software architects and engineers care every bit as much about where and how software executes as they do about what the software does. Modern systems are expected to be performant, scalable, efficient, maintainable, secure, and more. These are challenging problems, because they are less concerned with what the system does, and much more concerned about how a system does it.
Most requirements for software systems are written as a set of of functional constraints in the sense of a mathematical function. A program is seen as a tool for transforming inputs into outputs, and the program is the function that accomplishes that transformation. However, the challenges listed above are non-functional constraints and cannot be expressed in such a manner. If they were, our life would be easier! We could simply write the bit of code that ensures our system is scalable, and then we'd be done. Instead, verifying that a system is scalable requires checking that the entire system is scalable- which is not only a global qualification, but an entirely non-obvious one at that.
Course "Big Questions"
The five elements of this course are lectures, studios, quizzes, labs, and exams. Studios are short assignments intended to be completed primarily within class time and to augment lecture topics. Quizzes will be given to assess reading and mastery of out-of-class material assignments. Labs are longer assignments that will ask students to apply and analyze system mechanisms. Expect a lab assignment approximately every two weeks.
Topical outline:
Readings- We will do readings out of course texts as well as from other sources. These are to be completed by class on the day they are listed on the schedule, as they may form the basis for the activities in class that day.
Quizzes- These are short, in-class assignments designed to test your knowlege and comprehension of out-of-class readings.
Studios- Computer Science is an eminently practical discipline, and studios are daily assignments intended to complement and reinforce class material with daily practice.
Reflections- I will periodically ask you to produce short written reflections on specific readings, concepts, or course Big Questions. These are an opportunity for you to take stock of your own thoughts and feelings and put these into words.
Labs- A major experiential learning component of this course is for each student to do substantial programming activities themselves. A technical understanding of how distributed medium-scale systems are implemented will show students for themselves how such systems really work at a technical level.
Catalog Description:An exploration of computing systems with a strong emphasis on how systems interact with each other. Topics will include concurrent and parallel programming, network communication, and computer security. In addition to foundational knowledge, the course includes simulating, benchmarking, and testing such systems.
Please see the instructor if you're uncertain about your preparation for this course.
Date | Day | Topic | Readings | Studios | Labs |
---|---|---|---|---|---|
Aug 23 | Wed | Introduction | Make sure you can login for next time | ||
Aug 25 | Fri | Intro to Systems Programming in C | Studio 01 | ||
Aug 28 | Mon | Syllabus Intro to Hopper, Git, and Gitlab |
|||
Aug 30 | Wed | Intro to Hopper, Git, and Gitlab | Studio 02 | ||
Sep 01 | Fri | Intro to C | Studio 03 Studio 1 Due |
Lab 1 Assigned | |
Sep 04 | Mon | Lab 1 Discussion | Studio 04 Studio 2 Due |
Lab 1 - File Compression | |
Sep 06 | Wed | System Calls | |||
Sep 08 | Fri | System Calls - Continued | Studio 3 Due | ||
Sep 11 | Mon | No class - Out sick | |||
Sep 13 | Wed | Processes | Studio 4 Due | Lab 1 Due | |
Sep 15 | Fri | fork(), exec(), wait(), Process Creation |
Studio 5 | Lab 2 - SLU Shell |
|
Sep 18 | Mon | Lab 2 Discussion | Studio 6 | ||
Sep 20 | Wed | Pipes, stdin , stdout fork_demo.c pipe_demo.c strtok_demo.c |
Studio 7 | ||
Sep 22 | Fri | File descriptors, dup2() dup2_demo.c |
|||
Sep 25 | Mon | Threads, Concurrent Programming | Studio 8 | ||
Sep 27 | Wed | Pthreads Interface threads.c |
Studio 9 | Lab 2 Due | |
Sep 29 | Fri | Catch Up Day | |||
Oct 02 | Mon | Catch Up Day | |||
Oct 04 | Wed | Exam Review | |||
Oct 06 | Fri | Midterm Exam | Studio 5 Due Studio 6 Due Studio 7 Due Studio 8 Due Studio 9 Due |
||
Oct 09 | Mon | Lab 3 Discussion crypt_demo.c |
Lab 3 - Brute Force Password Cracking | ||
Oct 11 | Wed | Race Conditions (PDF) |
Studio 10 |
||
Oct 13 | Fri | Locks, Mutexes, Atomicity | Studio 11 |
||
Oct 16 | Mon | Deadlock, Deadlock Detection | Studio 10 Due | ||
Oct 18 | Wed | Parallel Algorithms, Work and Critical Path |
Studio 11 Due | ||
Oct 20 | Fri | Parallel Matrix-Multiply Parallel Array-Sum (Associative Reduce) |
|||
Oct 23 | Mon | Lab 3 Discussion | |||
Oct 25 | Wed | C++ Threads and Atomics, OpenMP |
OpenMP Studio | ||
Oct 27 | Fri | Lab 3 Due | |||
Oct 30 | Mon | Lab 4 Discussion | OpenMP Studio Due | Lab 4 - Malloc | |
Nov 01 | Wed | OSI Model of Networking | |||
Nov 03 | Fri | Physical and Data-Link Layers | |||
Nov 06 | Mon | Network Layer | |||
Nov 08 | Wed | Transport Layer | |||
Nov 10 | Fri | Sockets Demo server.c client.c |
Lab 4 Due | ||
Nov 13 | Mon | Lab 5 Discussion | Linux Sockets | Lab 5 - Network Chat Client | |
Nov 15 | Wed | Session, Presentation, and Application Layers | Fileserver | ||
Nov 17 | Fri | Security Concerns - CIA | |||
Nov 20 | Mon | Permission Domains and Permission Management | |||
Nov 22 | Wed | Bell-LaPadula and Biba Models for security | |||
Nov 24 | Fri | Code Security | Lab 5 Due | ||
Dec 13th | Wednesday | Final Exam |
All studios and labs will be submitted via individual course Git repositories that are housed at SLU. You will find your repository already has a directory structure that provides a place for all lab and studio assignments. Your work must be in the appropriate location for the instructor to find it and count it for credit.
A short guide to using SLU's git resources
Preferred Course Book: Improving the Rust Book by Will Crichton and Shriram Krishnamurthi, based on The Rust Programming Language by Steve Klabnik and Carol Nichols, with contributions from the Rust Community.
Alternative Course Book: The Rust Programming Language by Steve Klabnik and Carol Nichols, with contributions from the Rust Community.
Activity | Grade Percentage |
---|---|
Attendance | 10% |
Labs | 40% |
Studios | 20% |
Quizzes | 10% |
Midterm and Final Exams | 10% each |
Grading is done on a straight scale (uncurved). The following scores are guaranteed. The grading scale may be curved upwards (in your favor) at the discretion of the instructor.
Work assigned in this course, is expected to be completed individually. The sharing of written work or significant portions of code between students is strictly prohibited.
Successful students attend all or mostly all class sessions. This is true in my experience and has been demonstrated in large scale studies as well. In that study, even students who attended nine out of ten class periods had measurably lower class performance than those who attended all classes. However, there is no attendance requirement for this class, and you do not need to get permission when you do miss class. You are an adult and have the freedom to manage your time in whatever way you feel is most useful. Job interviews, conferences, tests in other courses, etc. are all reasonable cases for being absent.
Note that in-class assignments such as tests or quizes cannot be made up outside of class without prior approval from the instructor. All such activities will be listed course schedule with ample time to prepare (i.e. there are no "pop quizes").
Attendance grade will be determined by taking roll call at the start of class. For credit, you must be in class and respond when your name is called. This will happen approximately 10 times over the course of the semester.
If you do miss class you should refer to the course schedule to see what was missed and arrange to get course notes from another student. I am always happy to answer questions but I do not repeat full class periods in office hours.
Student Success Center
The Student Success Center (SSC) supports students in reaching their goals in and out of the classroom. Providing a variety of resources, the Student Success Center houses both the Center for Accessibility and Disability Resources (CADR) and Academic Support, which includes Tutoring, Supplemental Instruction, University Writing Services, and Student Success Coaching. The Student Success Center is located in the Busch Student Center, Suite 331, and students can make an appointment with any SSC resource via EAB Navigate. To learn more about the Student Success Center and its resources, please visit: https://www.slu.edu/life-at-slu/student-success-center/index.php
University Writing Services
University Writing Services offers one-on-one consultations with trained writing consultants who help with everything from brainstorming, outlining, and proposing research questions to documenting sources, revising, and implementing feedback. These consultations can take place in-person, asynchronously, or via Zoom and can be scheduled through EAB Navigate – Student. Getting feedback benefits writers at all skill levels on different writing projects (including but not limited to class assignments, conference papers, cover letters, dissertations, group projects, multimedia assignments, personal statements, senior capstone projects, short answer questions on applications, speeches, and theses). For additional information, visit https://www.slu.edu/life-at-slu/student-success-center/academic-support/university-writing-services/index.php or send an email to writing@slu.edu.
University Counseling Center
The University Counseling Center (UCC) offers free, short-term, solution-focused counseling to Saint Louis University undergraduate and graduate students. UCC counselors are highly trained clinicians who can assist with a variety of issues, such as adjustment to college life, troubling changes in mood, and chronic psychological conditions. To make an appointment, call 314-977-8255 (TALK), or visit the clinic on the second floor of Wuller Hall. For after hours needs, please press #9 after dialing the clinic number.
Wellness
All students experience stressors and challenges at some point, and seeking support is beneficial. Such challenges may be the result of academic concerns (such as those related to particular assignments or content in a course), or they may be more personal in nature (such as concerns related to relationships, mental health, loss, identities, alcohol or drugs, housing or food security, or finances, among other things). If you experience these or other difficulties, please consider seeking support from the resources available to you.
For concerns related to this course, please contact me. I am invested in your success and will support your success in the ways I can.
Additionally, you have access to the many resources SLU provides in support of your personal wellness. You will find a list of available resources onthe Well-being page of the SLU website.
If you or someone you know is experiencing a crisis: please consult the Crisis Support and Warning Signs on the University Counseling Center website.
In the spirit of cura personalis, the University sees your academic success as connected to your health and well-being and provides resources to support your holistic wellness.
Students experiencing food insecurity, housing insecurity, and any other challenges that are impacting their personal and/or academic wellbeing are encouraged to contact the Dean of Students Office for support. Students can submit an intake form, email deanofstudents@slu.edu, or call 314-977-9378 to connect with their office. Students may also communicate directly with their instructors about any challenges they are experiencing to receive support and resource referrals.
Academic integrity is honest, truthful and responsible conduct in all academic endeavors. The mission of Saint Louis University is “the pursuit of truth for the greater glory of God and for the service of humanity.” Accordingly, all acts of falsehood demean and compromise the corporate endeavors of teaching, research, health care, and community service through which SLU fulfills its mission. The University strives to prepare students for lives of personal and professional integrity, and therefore regards all breaches of academic integrity as matters of serious concern. The full University-level Academic Integrity Policy can be found on the Provost's Office website at: https://www.slu.edu/provost/policies/academic-and-course/academic-integrity-policy.pdf.
Additionally, each SLU College, School, and Center has its own academic integrity policies, available on their respective websites.
The School of Science and Engineering Academic Integrity policy may be found at: https://www.slu.edu/science-and-engineering/_pdfs/sse-temporary-academic-integrity-policy.pdf
Students with a documented disability who wish to request academic accommodations must formally register their disability with the University. Once successfully registered, students also must notify their course instructor that they wish to use their approved accommodations in the course.
Please contact the Center for Accessibility and Disability Resources (CADR) to schedule an appointment to discuss accommodation requests and eligibility requirements. Most students on the St. Louis campus will contact CADR, located in the Student Success Center and available by email at accessibility_disability@slu.edu or by phone at 314.977.3484. Once approved, information about a student’s eligibility for academic accommodations will be shared with course instructors by email from CADR and within the instructor’s official course roster. Students who do not have a documented disability but who think they may have one also are encouraged to contact to CADR. Confidentiality will be observed in all inquiries.
Saint Louis University and its faculty are committed to supporting our students and seeking an environment that is free of bias, discrimination, and harassment. If you have encountered any form of sexual harassment, including sexual assault, stalking, domestic or dating violence, we encourage you to report this to the University. If you speak with a faculty member about an incident that involves a Title IX matter, that faculty member must notify SLU’s Title IX Coordinator that you shared an experience relating to Title IX. This is true even if you ask the faculty member not to disclose the incident. The Title IX Coordinator will then be available to assist you in understanding all of your options and in connecting you with all possible resources on and off campus.
Anna Kratky is the Title IX Coordinator at Saint Louis University (DuBourg Hall, room 36; anna.kratky@slu.edu; 314-977-3886). If you wish to speak with a confidential source, you may contact the counselors at the University Counseling Center at 314-977-TALK or make an anonymous report through SLU’s Integrity Hotline by calling 1-877-525-5669 or online at http://www.lighthouse-services.com/slu. To view SLU’s policies, and for resources, please visit the following web addresses: https://www.slu.edu/about/safety/sexual-assault-resources/index.php.