Instructor: Mary Hogan mhogan1 [at] oberlin . edu
Student Hours: (King 139A) Tue 10:00 - 11:00 am
Wed 2:00 - 4:00 pm
HOOT/Lab Helper Hours: (King 201) Wed 7:00 - 9:00 pm
Thurs 7:00 - 9:00 pm
Fri 7:00 - 9:00 pm
Sat 4:00 - 6:00 pm
Time: MWF 11:00 - 11:50 am
Location: King 241
This course will use Bash and the Rust programming language as tools to explore systems programming concepts. Students will be introduced to various Unix tools and shell scripting. Some Unix system programming issues will also be included. The course will require a significant amount of programming.
After this course, students will be able to:
This class also satisfies the following Quantitative and Formal Reasoning Learning Goals:
Required Texts:
Resources:
All textbooks for this course are free. You will need to have either a physical iclicker, or a subscription to the iclicker phone app.
If you are a low-income student, and you are experiencing challenges with securing funds to purchase an iclicker, the Computer Science department can lend you one for the semester. Please reach out to me or Lucas Draper for details.
Final grades will be determined as follows:
Component | % |
---|---|
Labs | 65% |
Final Project | 15% |
Reading Exercises | 10% |
Class Participation | 10% |
Reading exercises are due before the class they are assigned for. You are expected to attend class having completed the readings. Labs are due Mondays at 10 pm.
At your discretion, you can use up to three free "late passes", which each grant you an additional day to complete a lab (more than one can be used per assignment). Please make sure you let me know in advance (i.e., before the deadline) when you plan on using your late passes by filling out the late day form on Blackboard. If for some reason you are unable to complete your work, even given your late passes, please discuss the issue with me and we can figure out an alternate deadline.
If you are unable to attend class synchronously, you may watch the recorded video of the class and fill out the Asynchronous Class Participation form (linked from Blackboard) within one week of the original class date for credit. If you end up needing to do this more than three times over the course of the semester, please get in touch with me so we can discuss it.
I am committed to making this class accessible to all students. If you have accessibility needs, please email me or come discuss them with me. Things you might want to discuss accommodations for include physical and mental disabilities, both permanent and temporary, any situation that is causing you to not be able to attend class or spend as much time on this class as you would like (stress, family situations, work hours, just going through a rough time), not having access to computers, not being able to afford an iclicker, anything that is keeping you from doing your best in this course. Let me know, and we'll figure something out.
If you are a student who is not diagnosed with a disability but suspect you may have one, please reach out to accessibility services and choose the "Meet with Staff" button about half way down the page to schedule a 15 minute informational meeting with OSAS.
Both Oberlin College and I personally value the diversity of perspective that each of you bring to this classroom and our study of Computer Science together. In this class, we must all commit to fostering a safe, inclusive and welcoming environment which will allow all of us to learn. Please respect the competence and hard work of your colleagues in this classroom. If you are made to feel uncomfortable in class or while working on class material, please notify me so we can take steps to address the situation. Students who are disruptive to class and our learning community will face consequences including potentially being removed from the course. This class has a zero tolerance policy towards discriminatory language, and any racist, sexist, homophobic, transphobic, or otherwise bigoted statements will result in you being removed from the course.
I expect you to abide by the following class norms, which we will discuss on the first day of class:
If your question involves a question about course material or the labs, please post it on Ed if at all possible. I will try to answer all email the work day after I receive it. I do not answer emails over the weekend.
You may discuss labs with anyone in the class. However, you are expected to write up your answers separately: this means you should not show someone else your code, or look at someone else's code.
Assignments that say you can work with a partner will prominently say that you can work with a partner, and have a mechanism for you both to turn in a single copy of the assignment. If you do work with a partner on an assignment where it is allowed, you and your partner must complete the entire project together. Dividing the project up into pieces and having each partner complete a part of it on their own will be considered a violation of the honor code. Both you and your partner are expected to fully understand all of the code you submit.
You are always allowed to use the textbook and any resources provided by me. You are also allowed to use online resources such as StackOverflow, provided that (1) any code taken from other sources is not more than 2-3 lines at a time, (2) the code used does not make up a substantial portion of any part of a lab assignment or single function, and (3) you cite your source with a comment listing the URL from where you found the code. You are not allowed to use any other sources except when specified in the assignment. Plagiarism and cheating, like copying the work of others, paying others to do your work, using code generated by ChatGPT or other AI systems, etc., is prohibited. We will be running MOSS, an automated plagiarism detection tool, on submissions.
Honor code violations usually occur due to some combination of stress, confusion, or anxiety. In these circumstances, you are strongly encouraged to reach out to me so we can work out a solution together. Furthermore, if you have any questions about what is permitted and what is not, please feel free to ask.
All violations of the Oberlin College Honor Code, and the specific requirements of this course, as described above, will be reported to the student honor committee. Honor code violations on a single lab will result in a zero on that assignment. Honor code violations on multiple assignments or the final project will result in a failing grade in the course.
For every assignment, students must indicate whether they followed the Honor Code in completing the assignment. If so, students should end each assignment by writing:
I have adhered to the Honor Code in this assignment.