Office: Bewkes 104
Email: kangstadt@stlawu.edu
Communication
Hours: I regularly check Email 9-5 on weekdays.
While I may respond outside those hours, I make no
guarantees.
Student Hours:
Addressing: I encourage you to call me by any one of the following names. Please use what makes you feel the most comfortable.
Spring 2025
Meets: TTh 9:40–11:10
Room: Bewkes 107
Course Requirements:
Description | Date |
---|---|
First Class Meeting | 2025-01-16 |
Last Day to Add/Drop | 2025-01-23 |
Honors Declarations Due | 2025-02-12 |
No Class—Mid-Winter Break | 2025-02-13 |
No Class—Spring Break | 2025-03-18/20 |
Oral Check-Ins | 2025-03-24 through 2025-03-28 |
Pass/Fail Deadline | 2025-03-28 |
Last Day to Withdraw | 2025-04-04 |
Festival Day | 2025-04-25 |
Last Day of Class | 2025-05-01 |
Final Exam Period (all assignments due) | 2025-05-10 |
From the course catalog: What happens when you press the power button on a computer? This course will climb the abstraction ladder from powering on a computer all the way up to executing a binary. Along the way, students will explore key abstractions that bridge the gap between hardware and software, including: firmware, virtual memory, interrupts and signals, memory-mapped I/O, processes, scheduling, and file systems. Through hands-on projects and software development, students will gain a deeper understanding of how computers actually operate. This course counts as an SYE in Computer Science.
I often joke with students that I could teach an entire course on what happens when you press a key on the keyboard of a computer. This is that course.
The concept of an operating system is twofold: it is the software that interfaces with the hardware of a computer and it is also the collection of software the provides the basic operations and services needed to use a computer. This semester, we will explore common topics in operation system design and implementation while attempting to understand what happens from the moment you press the power button on a computer to the moment you execute a program.
As part of this class, we will have the opportunity to build a computer from scratch. We'll use this as a platform for developing the firmware that verifies all hardware and boots the computer (often called the BIOS), the bootloader that loads the operating system, the operating system itself, and the software that runs on top of the operating system. This will give us a unique lens into the way a computer actually works.
As the "Senior Year Experience" course, this seminar will give us an opportunity to review core computer science topics you have learned across a number of courses.
At the end of this course, you will be able to:
HINT: These learning goals are the learning goals of the major. We have reached the finish line!
A rough ordering of topics is presented below, but is subject to change. The lectures page maintains a detailed description of topics covered so far in class.
There is no secret that my courses are designed such that the more time and effort you put into the course, the more you will get out of it. This course is no different. You will note in the next section that the grading scheme is designed to encourage participation; however, you should be participating out of a desire to learn and grow as a computer scientist rather than to receive a good grade. We will brainstorm during the first class meeting to develop expectations for participation.
This is a small group for a class, so we will arrange the classroom in a circle to faciliate seminar-style discussions in class.
Grading in this course will be different from the standard grading schemes you might be accustomed to in computer science courses. Your grade will be assigned based on the activities you choose to do or not do. Based on the grade you wish to receive for this course, you can choose to complete a certain number of activities as listed below.
I will take attendance this semester. You will receive a grade of 2.0 if you have fewer than 4 absences. Each absence after 4 will lose you 0.25 points. That is, if you miss 8 classes, you would receive a 1.0 (2.0 - 4 * 0.25) for attendance.
There will be a number of "lab" assignments this semester (probably 4-6) as we build a computer from scratch. To receive the 0.25 points for a lab, you must successfully complete the work (with correct results) and submit a summary of the work by the specified due date. Note that you may need to spend time outside of our scheduled class time to complete these assignments.
During the week of March 24–28, you will have the opportunity to meet with me in an individual meeting to discuss your progress in the course and demonstrate your mastery of the material. Depending on your mastery of this material, you may receive 0.5, 0.25 or 0 points for completing this activity.
For the final weeks of the semester, you will have the opportunity to work on a final project that extends some aspect of the course material. Your project will need to receive approval and may be either an individual or group project. You will receive 0.25 points for completing teh project as approved.
For a further 0.25 points, you may individually write a summary report of your project. This report will be nontrivial in length and should include a description of the project, the work you did, and the results you achieved. This report should be submitted by the last day of class. I will provide you with feedback on your report and a final copy incorperating this feedback will be due on the last day of the final exam period.
On April 25, we will have a "Festival Day" where you will have the opportunity to present your work to the greater university. This is typically a poster presentation, but there are also opportunities for oral presentations. You will receive 0.25 points for participating in this event as a presenter.
The work you complete in this course may be used to satisfy the "project" component of the honors requirement. The following criteria will be used to be elligible for honors by taking this course:
If you wish to be considered for honors, you must notify me of your intent by February 12, 2025. If you fail to meet the criteria for honors, nothing bad happens. You will still receive a grade for the course as calculated above.
Students will need a computer with an internet connection to participate in this course. If you do not have access to a reliable computer, please contact me as soon as possible. There may be resources available to help.
Students are expected to remain on task during synchronous activities (no web browsing, social media usage, etc.), as per the professionalism policy. If you have any concerns about this request, please contact me outside of class, and we will work together to find an appropriate solution.
Generally speaking, I encourage taking notes by hand. At least one recent study found that students who took notes longhand remembered more and had a deeper understanding of the material. Rather than using slides, I typically take notes on the board, which will help you keep up if you are taking notes by hand.
As noted in the Academic Honor Code in the Student Handbook, "all students at St. Lawrence University are bound by honor to maintain the highest level of academic integrity." Please review the handbook for general guidelines. In particular, you should only be turning in your own work. You are expected to abide by the additional policies listed below. It is my responsibility to report violations of these policies to the Dean.
Students are also expected to act in a professional manner for the duration of the course. This includes (but is not limited to): staying on task during lectures, being respectful of others, avoiding extra use of electronics in class, and promptness for class and deadlines. Unprofessional behavior will result in a reduction of the student's final grade.
In addition to the general policies described in the Student Handbook, you are expected to follow the following policies, which are specific to this course.
Unless otherwise noted or discussed, you must turn in your work on time receive credit. If you find yourself in a situation where this might not be possible, please contact me as soon as possible.
For several activities in this class, you will be working in groups. Teamwork imposes burdens of communication and coordination, but has the benefits of more thoughtful designs, cleaner programs, and (sometimes) higher bandwidth. Team programming is also the norm in the professional world.
Students on a team are expected to participate equally in the effort and to be thoroughly familiar with all aspects of the joint work. All members bear full responsibility for the completion of projects. Teams turn in one solution for each project. If a partnership is not going well, the instructor will help to negotiate new partnerships. Teams may not be dissolved in the middle of an assignment without instructor permission. If the instructor believes that there is unequal contribution to a project, students may be asked to schedule a meeting to discuss their work.
Unless otherwise noted, you must complete all other assignments in this course on your own.
You may discuss the assignments with your classmates, but you may not share code or written text. You may only submit work that you have personally written and understood. Always make a note in your code of your peers with whom you discussed an assignment
You may consult your class notes and the assigned reading materials to help with your assignments. You may also reference web resources (please read below about citations). Note, however, that you may not submit a third party tool that performs the tasks specified in a given assignment or text that you have not written (unless you are given explicit permission).
Your use of AI Assistants and LLMs (e.g., ChatGPT, Copilot, Jetbrains AI, etc.) may be restricted for particular assignment for pedagogical reasons (i.e., to allow you to focus on practice foundational concepts). If this is the case, it will be noted in the assignment. If you are found to be using such a tool (or have such a tool enabled in your IDE), you will be in violation of the academic honor code. In all other circumstances, use of LLMs are allowed in this class.
You should know that fairly sophisticated plagiarism detection software will be used on the assignments. For more details, see the Academic Integrity and Professionalism section.
I will be available to answer questions during student hours. If you would like help, prepare specific questions. I will not help you write your code or answers from scratch (part of the learning process is experimentation), but I am more than happy to provide guidance if you run into trouble.
For all assignments, you must submit a file citing all of the resources (excluding class notes and assigned readings) you used to complete the assignment. This includes (but is not limited to) conversations with peers, web resources, and additional books. Use of AI, including the particular prompts used should be included in your citations. Failure to appropriately cite resources will be considered a breach of the honor policy and will be dealt with as described in this document. If, at any point, you are unsure about the citation policy, ask. Your grade is not affected by the number of resources you cite; I will not be impressed by low or high citation counts. Use the resources you need to complete the assignments!
In addition to following the practice of academic honesty, the purpose of these citations is to help you find resources when you look back at your work. If you were confused by something before, it's likely you might be confused by it again later.
When it comes to academic integrity and professionalism, it's best to ask questions if you are unsure. It has been my experience that most violations are acts of desperation or misunderstanding rather than ill will. I would rather you ask for help or clarification than commit an act of academic dishonesty.
As a general rule of thumb, when you are talking to someone (other than the instructor or partner) about work in this class, close all code that you are working on. If you cannot look at your code (or others' code!) while you are discussing content, it becomes significantly more difficult to violate these policies.
St. Lawrence University is committed to advancing the mental health and wellbeing of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available.
For help, contact the Diana B. Torrey '82 Health and Counseling Center at (315) 229-5392 Monday through Friday from 8:30 AM–4:30 PM. After hours, call Campus Safety at (315) 229-5555 to speak with the after-hours crisis counselor. The nation-wide 24/7 crisis counselor service can be reached by calling (315) 229-1914.
For more details, visit https://www.stlawu.edu/health-and-counseling-services.
Your experience in this class is important to me. It is the policy and practice of St. Lawrence University to create inclusive and accessible learning environments consistent with federal and state law. If you have already established accommodations with the Student Accessibility Services Office, please meet with them to activate your accommodations so we can discuss how they will be implemented in this course.
If you have not yet established services through the Student Accessibility Services Office but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), please contact the Student Accessibility Services Office directly to set up a meeting to discuss establishing with their office. The Student Accessibility Services Office will work with you on the interactive process that establishes reasonable accommodations.
If you are color vision deficient, the Student Accessibility Services office has on loan glasses for students who are color vision deficient. Please contact the office to make an appointment.
For more specific information about setting up an appointment with Student Accessibility Services please see the options listed below:
Telephone: 315.229.5537
Email: studentaccessibility@stlawu.edu
Website: https://www.stlawu.edu/offices/student-accessibility-services
As indicated by the University's Statement on Diversity and the student handbook, we are committed to treating students fairly and with dignity regardless of age, color, creed, disability, marital status, national origin or ancestry, race, religion, sex (including gender identity and gender expression), sexual orientation, and/or veteran status.
It is my intent that students from all diverse backgrounds and perspectives be well served by this course, that students' learning needs be addressed both in and out of class, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. Should you have any concerns, problems, or suggestions, please do not hesitate to contact me. I strive to make my classrooms safe spaces for learning.
Please also feel free to talk to me about events that happen outside my classroom. If you do not feel comfortable talking to me, there are many other resources available to you on campus, including those on this list of on-campus resources: https://www.stlawu.edu/diversity-and-inclusion/campus-resources.
You can report a bias incident here: https://www.stlawu.edu/diversity-and-inclusion/bias-reporting.
MEMBERS OF THE ST. LAWRENCE COMMUNITY—students, employees, and guests— should expect to be free from retaliation, discrimination, harassment, and sexual misconduct, behavior that is inherently abusive of the humanity that each of us brings to the campus community. St. Lawrence University and its faculty are committed to supporting our students and seeking an environment that is free of discrimination, harassment, and sexual misconduct. St. Lawrence strongly encourages students to report retaliation, discrimination, harassment, including sexual harassment, sexual exploitation, domestic violence, dating violence, stalking, or sexual assault to St. Lawrence University's Title IX office. Discrimination on the basis of sex includes discrimination on the basis of assigned sex at birth, sex characteristics, pregnancy and pregnancy related conditions, sexual orientation, and gender identity.
If you speak with a faculty member about an incident that involves a Title IX matter or matter of other discrimination or harassment, that faculty member must notify SLU's Title IX Coordinator that you shared that experience. This is true even if you ask the faculty member not to disclose the incident. Moreover, if you disclose an incident of retaliation, discrimination, harassment, or sexual misconduct in an academic assignment, the faculty member must also report that experience to the Title IX Coordinator.
Once a report is made, the reporting individual can expect to receive email outreach from the Title IX Coordinator, who will provide resources and possible resolution options. If the impacted person is not a threat to themselves or others, the impacted person will be free not to respond to the offer to meet. You can find more information for resources and reporting options at: https://www.stlawu.edu/offices/title-ix/reporting-options-confidential-and-nonconfidential-resources.
Title IX also protects students who are pregnant or need assistance for pregnancy related conditions. If you are pregnant, the Title IX Coordinator can assist you in understanding your rights and options as well as provide supportive measures.
Lindsey Tropper (Cohen) is the Title IX Coordinator at St. Lawrence University (Student Center Room 302; lcohen@stlawu.edu; 315-229-5334).
The Peterson Quantitative Resource Center (PQRC) offers free, no appointment necessary peer tutoring across a range of courses with quantitative content. The PQRC student staff of mentors is trained to assist students to develop and to improve their quantitative skills and understanding. More information about the PQRC's current hours and modes of operation can be found at the PQRC webpage: www.stlawu.edu/pqrc.
Your class work might be used for research purposes. For example, we may use anonymized student assignments to design algorithms or build tools to help programmers. Any student who wishes to opt out can contact the instructor to do so up to seven days after final grades have been issued. This has no impact on your grade in any manner.
This is a "living syllabus". Therefore, its contents may be changed throughout the course of the semester to address changing needs. I will do my best to notify students of changes; however, it is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the instructor (i.e., Kevin Angstadt), not with this document.