Skip to content

Latest commit

 

History

History
188 lines (114 loc) · 19.5 KB

SYLLABUS.md

File metadata and controls

188 lines (114 loc) · 19.5 KB

CS 401 – Topics in Operating Systems - Syllabus

Minnesota State University, Mankato. College of Science, Engineering, & Technology.

Fall 2024, Block 1. Section 1.

This course is offered on an In-Person Only basis. In-person attendance is required for each course session.

This is a 2-credit elective course for Computer Science majors.

This is version 1.0 of the syllabus. Any changes will be announced in class and posted in this repository as well as on D2L.

Class Time and Place

  • Semester/Block: Fall 2024, Block 1 (8/26/2024 through 10/18/2024), 14 class sessions
  • Days and Time: Tuesdays and Thursdays, 8:00 AM - 9:50 AM (iCalendar File)
  • Location: AH 317 (Building Map)

Instructor

  • Name: Flint D. Million (he/him)
  • Email: [email protected]
  • Office / Student Support Hours: By Appointment

It's important to me that I be available to help you succeed in this course. If you need to contact me, please send me an E-mail. I try to answer all emails within 24 hours, including weekends - even if I need more time to respond, I will acknowledge receipt of your message. If I have not responded to your E-mail message after 24 hours, please resend the message in case it got lost or buried. Do not feel you need to wait longer than 24 hours to resend your message - I would rather see your message more than once than miss your questions!

If you would like to meet with me directly, you can schedule time with me to meet in my office or in the CS Project space. Please contact me via E-mail or before or after class and I will accommodate your time schedule to the best of my ability.

Course Description

This class will serve as a solid introduction to advanced operating system skills, utilizing Linux as a platform. We will explore various topics surrounding Linux including filesystems, memory management, command line scripting, and basic networking. By the end of the course you will have a functional knowledge of using Linux and basic command line skills.

Linux is an important operating system to be familiar with in most computing careers. Every one of the top 500 most powerful computers in the world runs Linux and runs on 90% of cloud computing systems. Along with running on large servers as well as standard desktop and laptop computers, Linux also runs on everything from Android phones, smart watches, TV sets and streaming sticks, appliances, IoT devices, and embedded controllers. You may not realize it, but you have definitely interacted with a system running Linux.

Linux's open design allows you to more deeply explore the innards of the operating system. Learning the intricacies of Linux may lead to abilities that some consider to be... unnatural. (In reality, it's the understanding of how operating systems work that's the real ability!) You will learn how to harness these abilities to more deeply engage with other important technologies such as containerization and distributed computing.

This class will involve work in small groups of 3-4 students. Group assignments will happen during the first class session. You will have time in class to work on group projects and assignments regularly.

Prerequisites

Admission to the upper division Computer Science program is required.

This course is aimed at students who know at least two programming languages at a functional level. We will use Python and Bash scripting as appropriate. You will write some code for this course as part of your group projects and experiments. You are free to share the coding aspects of your course among your group members as your group feels appropriate, however you may not share code with other groups.

Requirements

You will be participating in in-class activities that require a laptop to be brought to class. If you do not have access to a personal laptop, you can borrow one from the University Library.

D2L will be used to provide you with course announcements, homework assignments, course materials and quizzes. Official course announcements will also be sent to you via your university E-mail address. You are responsible for regularly checking D2L and your university E-mail for communications.

Group Projects

This course will involve several group projects that you will work on in small groups of 3-4 students. The projects will include planning for and designing a software deployment strategy and exploring distributed system deployments, among other advanced DevOps topics.

Grading

This course is available on a for-credit, Grade Only basis. You will receive a letter grade in this course. Your final grade will be calculated according to the following rubric on the next page.

Your final grade for this course will be based on the following assessments and weights:

Item Percent
Attendance 5%
Individual Activities 25%
Group Activities 70%

There will be no quizzes or final exam for this course. The work you do in your individual and group assignments will be ongoing throughout the semester. Your final grade will be calculated based on the above categories.

This course will use shaded grading. The following is the minimum score for each grade:

Percentage of Points Grade
97% A+
94% A
90% A-
87% B+
84% B
80% B-
77% C+
74% C
70% C-
67% D+
64% D
60% D-
0% F

Deadlines

Assignment due dates in this course are firm. Unless you have extenuating circumstances that you discuss with me as early as possible, assignments submitted late will lose significant points, up to an including a full loss of points for the assignment.

Unless otherwise stated, assignments will be due on D2L (or via an appropriate alternative submission mechanism) at 11:59 PM on the given due date.

In general, I will use the following penalties for late assignments. Exceptions or modifications to these will be noted as appropriate.

Submitted Maximum score
On Time 100%
1 day late 85%
2 days late 75%
3 days late 65%
4 days or more late No credit

Late submission days include weekends. (If an assignment is due on Friday at 11:59 PM, submitting on Monday counts as 3 days late!)

Attendance Grading

Because attendance is very important in small group project work, we will be taking attendance randomly in this course. On some days chosen randomly, you will take a very simple one-question quiz on D2L that will only be open for a very short time - this quiz will serve as your attendance record. On days when attendance is taken, I will announce the quiz question in class and you will submit your answer on D2L (the question will not be listed on D2L!).

Attendance grading will comprise 5% of your final course grade.

If you need to miss a class, you should contact me as early as possible to explain your situation. I will make reasonable accommodations for important activities that require you to be absent from class; if your absence is significant I may offer you some make-up work. Notifying me of an absence after the fact will NOT result in an excused absence unless the circumstances are particularly extreme and warrant such an accommodation. Such exceptions will only be made on a case-by-case basis.

If attendance is taken during a class in which I have given you an excused absence, you will receive attendance points for that day despite being absent.

Grade Explanations and Appeals

You have the right to ask me for an explanation of any grade you receive, both on assignments as well as your final grade.

Grade appeals are reviewed in instances where students perceive that a final course grade is unfair, arbitrary, or capricious. Students must begin the procedures of this policy within two weeks of university notification of a final course grade. Students needing assistance at any step in appealing a grade may contact the Academic Affairs Coordinator of the Student Senate (280 Centennial Student Union; phone 389-2611). Students should retain copies of all materials associated with this process for their records. Students should also have records of their coursework from the class as part of the appeal process. The full policy is available at http://www.mnsu.edu/policies/approved/gradeappeals.pdf.

Diversity Statement

The diversity of the participants in this course is a valuable source of ideas, problem solving strategies, and computational creativity. Our classroom is a place where you will be treated with respect, and we welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities, gender expressions, national origins, religious affiliations, sexual orientations, ability, and other visible and nonvisible differences. All members of this class are expected to contribute to a respectful, welcoming and inclusive environment for every other member of the class. If you are experiencing disrespect or any other inappropriate conduct from any classmate, please talk to me directly. Unless university policy requires otherwise I will keep such conversations confidential.

Name and Pronouns

I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the term so that I may make appropriate changes to my records. I also expect other students to respect and honor these requests when interacting in the course. If you are experiencing any disrespect from classmates please come talk to me.

University Policies

Academic Honesty

As members of the University community, students assume the responsibility to fulfill their academic obligations in a fair and honest manner. This responsibility includes avoiding inappropriate activities such as plagiarism, cheating, or collusion. Students found responsible for one or more of these activities may face both academic sanctions (such as lowering a grade, failing of a course, etc.) and disciplinary sanctions (such as probation, suspension, or expulsion).

In this course, I encourage you to ask your peers and utilize available online resources for assistance with projects and homework. However, such assistance must not include sharing or copying of code or solutions. All work you submit for your projects or assignments must be written by you or your group members alone. Here are some examples:

  • Helping your classmate or another group understand why their syntax is causing a compilation error is OK; fixing it for them or providing a copy of your code to your classmate is not.
  • Asking a classmate, group or online forum a question about why your code is not doing what you expect it to, and receiving answers guiding you to a solution that you implement yourself, is OK; asking someone to fix the code for you or simply provide you with working code that you will use as-is is not.
  • Studying code online to learn how something is done and then implementing that solution in your own way is OK (as long as you understand and can explain your code); copying and pasting large amounts of code verbatim or with only very minimal changes is not.
  • Artificial Intelligence Policy: I treat code generated with artificial intelligence the same way I treat code obtained from a human-generated source (website post, book, classmate…). In other words, in most cases you may ask an AI system for assistance with your code and you may study code generated by the AI for ideas; however, you may not copy large blocks of code provided by an AI engine verbatim or with only very minimal modification. As with any code you submit, you must fully understand and be able to defend your code. In situations where you may use the Internet but may not ask classmates, such as quizzes, you may use AI in a similar manner as you would online resources such as blogs or Stack Overflow, but you may not share your prompts or AI responses with other classmates.

I exercise common sense in enforcing these policies. For example, if you research a task and discover that there is one single well-established strategy for accomplishing that task and a template implementing that method is provided, and coding an alternative strategy would be excessively awkward or would create other secondary issues (e.g. insecure code, slower performance, etc.), then using such a template or response from AI is not considered "copying and pasting large amounts of code verbatim".

To illustrate this, consider that many IDEs provide templates for various project types and also often offer "wizards" that generate parts of the code for you based on parameters you specify, with the generated code following established coding practices. Use of such tools is not violation of this policy, since they are generic in nature and you are still required to write the code to make the application perform your specific tasks.

The same applies to code generated by artificial intelligence -- if such code is very brief and illustrates best practices, you may use it with whatever modifications are needed to make it work within your project. However, asking an AI engine to write a large section of your code and then using the code as-is with no modifications would be a violation. "How do I test if a variable is a string" is OK, "Write me a class that does X Y and Z" is probably not.

If you have further questions on this policy, or want to ask about a specific scenario, please feel free to ask me.

This course includes group projects. For group projects, specific requirements for submission of completed work will be outlined for each specific project. Depending on the project, each group may submit both a group project deliverable in addition to individual submissions. For all work not explicitly indicated as being part of group projects, you should assume all homework is to be completed and submitted individually.

The full policy, including definitions of plagiarism, cheating, and collusion, is available at https://www.mnsu.edu/policies/approved/academichonesty.pdf.

Students with Disabilities

Minnesota State Mankato provides students with disabilities reasonable accommodation to participate in educational programs, activities or services, and I strive to make this course accessible and engaging for all learners, including students with disabilities. If you have a disability requiring accommodation to participate in class activities or meet course requirements, you should first register with the Office of Accessibility Resources (if you have not already) by following the process described at https://mankato.mnsu.edu/university-life/campus-services/accessibility-resources/getting-started/ to establish an accommodation plan. Accessibility Resources will inform me about your needs in the course based on their records.

After this step, you can also choose to reach out to me and I will be happy to work with you directly to ensure all of your accommodations are provided to you and that you can participate fully in the course. Feel free to come to me or e-mail me any time if you are finding the course inaccessible in any way. I am happy to work directly with you to make any reasonable accommodation I can to ensure your success in this course. I will keep any information you share with me about your disability strictly confidential and will not disclose or discuss your disability with anyone else without your consent.

Electronic Recording of Lectures and Materials

University policy states that students are not permitted to make unauthorized electronic recordings of lectures using personally owned recording devices (e.g., smartphone, iPad, computer, digital recorder) unless prior permission from the instructor is obtained, and there are no objections from other students.

Additionally, students are not permitted to make electronic copies of proprietary course materials (e.g., PowerPoints, formulas, lecture notes) without consent from the instructor. This does not apply to publicly available materials that are used in class.

If you need to record lectures or need course materials for an accessibility reason, please notify the Office of Accessibility Resources, and then discuss the matter with me as early as possible.

In any case where recording is permitted (even for accessibility purposes), recorded lectures or copied material must be destroyed at the end of the course or semester. Unauthorized downloading, file sharing, or distribution of any part of a recorded lecture or course materials, or using information from such recordings for purposes other than the student’s own learning, may be deemed a violation of Minnesota State University, Mankato’s “Statement of Student Responsibilities,” subject to disciplinary action.

The full policy is available at http://www.mnsu.edu/atoz/policies/recordingoflecturesandmaterials2015.pdf.

The materials in this GitHub repository are licensed under CC-BY-SA and are publicly accessible on GitHub, and as such this policy does not apply to the materials in this repository. You may access, share and use these materials however you like provided you abide by the terms of the CC-BY-SA 4.0 License.

Note that this CC-BY-SA license does not automatically extend to any materials linked to in this content. For such materials, please consult the website or author for licensing information.

Missed Classes

Students represent the university through participation in university sponsored or sanctioned activities, such as the arts, theater, music, dance, forensics, and intercollegiate athletics. If an activity schedule conflicts with academic obligations, students will follow a standard protocol to provide their faculty members with prior, written notification of their absences from classes. Faculty members will determine, in consultation with students, how missed classes and assignments will be made-up in a manner that fulfills academic obligations and accommodates participatory obligations. Except for absences resulting from sponsored or sanctioned activities, student participants have the same responsibility with regard to class attendance and assignments as do all other students.

The full policy is available at http://www.mnsu.edu/atoz/policies/missedclassesandmakeupwork.pdf.

If you need to miss class for an important non-school-related reason (e.g., a medical appointment), please let me know ahead of time, as early as possible. I understand that sometimes extenuating circumstances may arise suddenly without warning. In this case, please contact me by E-mail as soon as you possibly can to let me know you will be unable to attend class and/or meet a deadline. Within reason we will work together to come up with a solution. The more openly we communicate, the easier it is for me to accommodate your situation!

If you test positive for COVID-19 but are not symptomatic, please come to class and wear a mask to protect others. If you are symptomatic, please let me know via E-mail as soon as possible and we can arrange for you to attend the course via Zoom temporarily.

Veterans Information

As a particular acknowledgment of an individual's service to our country, faculty members are committed to providing resources to veterans/military students, which will assist in smooth navigation of the university environment and a successful educational experience. Resources for veterans are available at http://www.mnsu.edu/veterans/resources. Student veterans and current military members with special circumstances or who are activated are encouraged to notify the instructor.