TCSS 505: Systems Programming |
![]() |
Textbook Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau Operating Systems - Three Easy Pieces, Version 1.00+ Publisher - Lulu Press, 2018. Optional Textbook Thomas Anderson, Michael Dahlin Operating Systems: Principles and Practice, 2nd Edition Publisher: Recursive Books, 2014. |
Instructor: Wes J. Lloyd Office: Cherry Parkes 229 Online Office Hours: TBA, or by appointment E-mail: wlloyd <@> uw.edu |
Course Overview This course examines the fundamental concepts of modern operating systems and how they function. Topics covered include processes, threads, memory management, CPU scheduling, file systems, virtual machines and software containers. TCSS 505 covers the basics of the Linux operating system, bash commands, scripting, and systems programming. Learning Objectives A primary objective for this course is to learn the fundamentals of modern computer operating systems, and to understand resulting implications for modern software development. The course will cover key tradeoff spaces involved in operating systems design, and how operating system implementations impact computer system performance. Upon completion of the course students will be able to:
TCSS 505 is offered as a fully online / asynchronous course in Fall 2021. Student participation in online communication is optional and ungraded. In no event will the instructor consider the level of interaction or context of questions in evaluating the course grade of any student. The following types of communication are featured in the course:
Instructor Feedback is of paramount importance for remote learning. To ensure substantive interaction between the instructor and students in this course, the instructor will adhere to the following response goals:
The following expectations for communication will apply in the course:
Students should have access to a machine capable of running Linux, or a Linux-based Virtual Machine. In the Linux environment students should have access to a gcc (C compiler), as well as an editor such as Visual Studio Code for project development. These requirements can be supported using a host computer with Windows, MacOS or Linux as the host operating system. The computer should have access to an HTML 5 compatible browser for accessing Canvas and course materials. Topics Covered The primary objectives of TCSS 505 is to communicate a diverse array of topics related to modern Operating Systems and Systems Programming. This course will cover a broad range of topics including:
Modules MODULE 0: INTRODUCTION TO TCSS 505 MODULE 1: INTRODUCTION TO OPERATING SYSTEMS
MODULE 2: PROCESSES
MODULE 3: RESOURCE SHARING IN OPERATING SYSTEMS
MODULE 4: LOCKING AND CONCURRENCY
The following is a tentative schedule of weekly topics.
School of Engineering and Techolnogy Support Please maintain communication with the School of Engineering and Technology advisors regarding your studies and notify them of any personal or learning struggles. It's important to reach out early: https://www.tacoma.uw.edu/set/academic-advising School of Engineering and Technology Technology Resources The School of Engineering and Technology maintains an array of technology labs which contain computers and servers which can be accessed to provide computing resources to support online learning. Additional information about the SET technology labs can be found at: https://www.tacoma.uw.edu/set/technology-labs Religious Accommodations Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW's policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy (https://registrar.washington.edu/ staffandfaculty/religious-accommodations-policy/). Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request Form (https://registrar.washington.edu/students/religious-accommodations-request/). UWT Campus Information, Resources, Policies, and Expectations For inclement weather, academic honesty, email policy, disability support services, and more please refer to the general University of Washington - Tacoma Campus Information and Course Resources Policies, and Expectations available online here: UWT Campus Information - Course Resources, Policies, and Expectations |
Grading Policy Weights are assigned to the different elements of the course as listed below. Points are added up at the end of the quarter and weighted accordingly to determine a total percentage score. The percentage score is translated into a final decimal point (4.0 max) grade.
UW Grading Scale ![]() Tutorials / Quizzes / Activities There will be approximately 1 quiz, tutorial, or activity per week during the quarter. Quizzes will be delivered online via the Canvas system. Quizzes and activities will generally be short, and provide opportunities to practice and build comprehension of key concepts and learning objectives. Tutorials will provide a step-by-step walk through to introduce a technical topic followed by hands-on activities where the topics are applied and practiced. The lowest 2 grades from the Tutorials / Quizzes / Activities category will be dropped throughout the quarter. This provides students with flexibility to pick and choose from completing all of the assignments, or an opportunity to recover from a poor score. Assignments All assignments are due at 11:59 PM on the due date unless specified otherwise. There is a 24-hour grace period on late assignments. Assignments submitted more than 24 hours late will receive a 10% late penalty per day up to a maximum of three days and 20%. Late submissions more than 72 hours late will receive a zero score without prior arrangement with the intructor. When possible, assignments will be posted at least two weeks prior to the due date. All assignments should be submitted online via Canvas. Source code should be submitted as a tar gzip archive file. Included executable files are deleted and programs are then rebuilt from source for grading. Programs or source code sent via email will not be graded. The Canvas system will accept and date source submissions throughout the quarter. Assignments may include programming and/or written components. Programming projects will relate to the lecture and textbook readings throughout the quarter. The projects will use Linux. It is *HIGHLY* recommended to create a local Linux Virtual Machine on a laptop or desktop computer (Ubuntu or CentOS) to support program development. You may use your own systems with a Linux distribution (recommended are Ubuntu and CentOS) or use network-accessible Virtual Machines (VMs) with a Linux distribution (Ubuntu and CentOS recommended) with full root access. The projects will reinforce core OS concepts such as scheduling and memory management. Academic Integrity and Collaboration Policy To quote the UWT statement of values, "our fundamental purpose is to educate students for life as global citizens." Students are active participants in their education and are expected to uphold high standards of academic conduct. Any action that subverts the educational process or misrepresents student knowledge and abilities constitutes academic dishonesty. Links: UW Tacoma Student Conduct Code UW Tacoma - Academic Honesty In this course some assignments and all exams must be completed individually. When collaboration is permitted for an assignment, this will be noted in the instructions. With respect to student collaboration, these actions are acceptable:
|