Course Syllabus¶
Note: This is the syllabus for CSE 320 L02, taught by Prof. Lee. The syllabus for L01, taught by Prof. Stark, can be found elsewhere.
This course will introduce programming and essential concepts of operating systems, compilers, and concurrency, focused around several cross-cutting examples, such as memory management, error handling and threaded programming.
In this course, operating systems concepts are considered from the point of view of the application programmer, and the focus is on APIs for interacting with an operating system. A companion course, CSE 306, considers operating systems from the point of view of the OS kernel implementer. (3 credits)
CSE 320 is a demanding course! You will need to dedicate many hours outside of class time studying the material, working on the homework assignments and preparing for exams.
Course Homepage¶
Meetings¶
When: Mondays & Wednesdays, 8:00 - 9:20 AM (EST)
Where: Light Engineering Lab 102
Instructor¶
Email: dongyoon [AT] cs [DOT] stonybrook [DOT] edu
Office: New CS Building, Room 339
Office Hours: Mondays 9:30 AM - 10:30 AM and Wednesdays 11:00 AM - 12:00 PM
Outside of office hours, for questions or issues that might be of interest to other students, you should post on Piazza, which he will be reading regularly. For private matters, the best way to contact him is by email.
Teaching Assistant¶
TBD
Communication¶
All Announcements, Lecture Notes, Homework Assignments, etc. will be posted on Piazza.
Grades will be posted on Brightspace.
Prerequisite¶
CSE major, and completed CSE 220 with a C or higher.
A minimum grade of C is required in this course for the CSE major or minor.
Text Book¶
(requried) Computer Systems: A Programmer’s Perspective, 3rd Edition, Pearson, 2016. Author(s): Bryant and O’Hallaron; ISBN-10: 0-13-409266-x
(requried) Linux Man Pages, https://www.kernel.org/doc/man-pages/
(optional) The C Programming Language, 2nd Edition, Prentice-Hall, 1988. Author(s): Kernighan and Ritchie; ISBN-10: 0-13-110370-9
(optional) The GNU C Reference Manual, https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.
Course Objectives¶
At the completion of this course, students will have:
Developed an understanding of the layers of software that lie between an application program and the underlying hardware and how they inter-operate.
Developed an ability to program with operating system APIs.
Developed an ability to write and analyze multi-threaded programs
Minimum Technical Requirements¶
For completing the homework assignments, a 64-bit Intel/AMD-based (“x86-64”) computer capable of running a virtual machine using either the VirtualBox or VMWare virtualization software is required. A minimum of 8GB RAM (16GB recommended) should be installed, and there should be at least 30GB of free disk space. Note: At the present time no proven useful method of running the course software on Apple M1 or M2-based computers is known. The software will run under the “QEMU” x86-64 system emulator, but the performance is probably not adequate. Options for those who only have Apple M1 or M2-based computers include: (1) Use a Windows-based laptop obtained via the “Laptop Loaner Program” ; (2) Run the course software virtual machine “in the cloud” using a third-party commercial service (costs are approximately $10-15/month), and access the server using remote desktop protocol.
Piazza¶
This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TAs, and Professors. All non-personal course-related communication should be posted to the discussion board. If you have questions about assignments, technical problems that need troubleshooting, or other questions that might be of interest to other students, they must be posted to Piazza and not emailed to the instructor or TA. Find our class page at: https://piazza.com/stonybrook/fall2024/cse320/home.
Note that Piazza has changed to a paid business model, as opposed to the free access model they previously used. For the current semester, we will be operating under the “user contribution” option Piazza is offering. This means that when you access Piazza, you will be prompted with notices asking you to make a financial contribution. The contribution is optional, but the notices do not go away until you contribute.
Since Piazza seems to have proved itself to be more useful than available alternatives as a platform for course discussions, we will continue to use it this semester under the user contribution model. Any comments or feedback about the continued use of Piazza under these conditions should be directed to the instructor.
Course Announcements¶
Course announcements will be posted to Piazza. You are expected to be aware of course announcements.
Grading Scheme¶
Programming Assignments (5) (55%)
Midterm Exam (15%)
Cumulative Final Exam (30%)
Pass/No Credit (P/NC) option is not available for this course.
Course Policies - Programming Assignments¶
The programming assignments in the course will use the C programming language. Students are assumed to have prior experience with the C language from the prerequisite course CSE 220, and are expected to continue to refine their C programming skills in the present course. Students should not expect to pass this course with a grade of “C” or higher unless the following two criteria are satisfied: (i) at most one assignment is missed; and (ii) an ability to program in C is demonstrated.
The course will include 5 programming assignments, each worth 11% of the final course grade (see “Grading Scheme” above).
Students are expected to work independently on the programming assignments. You may discuss the homework in this course with anyone you like, however each student’s submission, including written material and coding, must be their own work, and only their own work. Any evidence that written homework submissions or source code have been copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty. In cases where the Professor sees fit to distribute binary implementations of modules that students are assigned to code (he might choose to do this, for example, to help students understand the module specifications), the use of tools to reverse-engineer the binary into source code is also prohibited. The use of Artificial Intelligence systems, such as ChatGPT, to generate code is likewise prohibited. The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an ‘F’ grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.
Programming assignments must be turned in on the day they are due. Students are urged to plan ahead to avoid problems such as congestion or failure of computer facilities at the last minute. If your assignment is incomplete or is not working by the due date, turn in whatever you have.
Each student will be given 3 grace days for use during the semester. A grace day is a full 24-hour grace period. You may use them as you see fit to extend the deadline of an assignment. There are no partial grace days — one second late counts as a full day. Grace days are charged automatically by the assignment submission system — it is not necessary or desirable to contact the course staff to inform them of your intention to make use of grace days.
Extensions or late assignments will NOT be accepted under any circumstances. No late code changes will be permitted. You are responsible for testing your code before submitting it.
Due to limited resources for grading, programs that do not compile or run for testing might not be graded.
Grading Issues: All issues with grading must be emailed to cse320@cs.stonybrook.edu within 1 week of release of the graded assignment. Any requests/concerns after this date will not be honored. The email must include a detailed explanation of the specific grading issues and reason/correction. We believe students often learn by investigating and understanding their mistakes. Therefore, it is the responsibility of the student to determine the issues, not the grader/instructor/TA.
Course Policies - Examinations¶
Examinations will be administered live and in-person.
All examinations will be closed-notes and closed-book. No electronic devices of any kind will be permitted to be used during exams. All cell phones must be turned off during exams. Any use of electronic devices, textbooks, notes or any other materials will constitute cheating.
You must take the exams at the scheduled time/place. No makeup exams will be given.
Course Policies - Attendance¶
Attendance is expected and highly encouraged.
Students are responsible for all missed work, regardless of the reason for absence. It is also the absentee’s responsibility to obtain all missed notes or materials.
Etiquette - Piazza¶
Students are expected to use the Piazza forum for all non-personal course-related communication. If you have questions about assignments, technical problems that need troubleshooting, or other questions that might be of interest to other students, they must be posted to Piazza and not emailed to the instructor or TA.
Piazza is a forum for additional learning and assistance. It is not the place for cyber-bullying, memes, grade complaints, concerns/comments/criticisms about the course, or in general, anything unrelated to the course material and your learning. Improper behavior will result in the deactivation of Piazza and reporting of the individual’s behavior to University Office of Community Standards.
Etiquette - Email¶
All course logistic and grading emails should be directed to cse320@cs.stonybrook.edu. Email your Professor directly in the following circumstances:
If you cannot attend office hours and need to set up an appointment to meet at another time; in this case you must include your availability for the upcoming week.
Making arrangements for disability accommodations.
To discuss private, personal matters that are impacting your coursework such as physical or mental illness, death in the family, etc.
If the instructor asks you to email them something relating to a previous conversation.
When emailing, use the following guidelines to ensure a timely response:
Use your official @stonybrook.edu email account
Use a descriptive subject line that includes “CSE 320”, identifies the item you are emailing about, and a brief note on the topic (eg. “CSE320: HW1 Submission error”, “CSE320: HW2 Blackboard Grade”).
Begin with a proper salutation, such as “Dear Prof. Lee, or “Hi Prof. Lee. (In particular, “Hey Lee” and the like are not appropriate.)
Briefly explain your question or concern or request.
End with a proper closing that includes your full name, repoid/netid, and SBU ID number
Academic Integrity¶
Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person’s work as your own is always wrong. Faculty is required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website at http://www.stonybrook.edu/commcms/academic integrity/index.html
Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College policies.
Student Accessibility Support Center¶
If you have a physical, psychological, medical, or learning disability that may impact your course work please contact the Student Accessibility Support Center, Stony Brook Union Suite 107, (631) 632-6748, or at sasc@stonybrook.edu. They will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.
https://www.stonybrook.edu/commcms/studentaffairs/sasc/
Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and the Student Accessibility Support Center. For procedures and information go to the following website: https://ehs.stonybrook.edu//programs/fire-safety/emergency-evacuation/evacuation-guidedisabilities and search Fire Safety and Evacuation and Disabilities.
Critical Incident Management¶
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Student Conduct and Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students’ ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.
Acknowledgments¶
This course uses teaching materials from Professor Eugene W. Stark at Stony Brook University.