I have finalized the final exam, and it is comprised as follows: 15 Fill in the Blank (15 points); 60 Multiple Choice (60 points); 10 True or False (10 points); and 5 Short Answer Do 3 (15 points).
The Exam Checklist is now complete. We will do a pre-exam review and prep session on 5 December. The exam is on 12 December. You will be permitted to bring one 8.5" x 11" piece of paper into the exam with your hand-written notes written on one side only.
Reminder that we have the last Quiz today. There will also be a Make-up Quiz for anyone who wants to try and boost their score a bit. It will be in class on 3 December, and will be on Chapters 53 through 55. I have also been working on the Exam Checklist, and it will be finalized this coming weekend.
Lab 5, the final one, is now available. It is due by midnight on Friday November 22. I will be in the lab on Friday morning for anyone who wants help.
I have also moved Quiz 5 to next week, November 28.
The Student Opinion Survey (SOS) is now available. Please take a moment to complete it. Your anonymous feedback is very valuable to me in continuously improving my courses!
My office hours this week are by appointment only, as they are painting my office. If you need me for anything, please catch me on Teams or email me, and we will find a time and place to meet.
Reminder that we have Quiz 3 on November 5. It will be 10 multiple choice questions on chapters 26 to 32 inclusive.
Lab 4 is now available. It is due by midnight this coming Friday. I will be in the lab on Friday morning for anyone who needs help.
For those interested, the Little Book of Semaphores is a good read with great explanations and examples. (This is just for interest, no need to read this for the exam :))
I marked lab 3 as well as the midterm and you should all have received an email with your grade(s). I was very pleased with how well everyone did. Keep it up! If anyone wants to see their midterm, please drop by my office.
I have finalized the midterm exam. It is comprised as follows: 9 fill-in-the-blank (14 points); 24 multiple choice (24 points); 8 true-or-false (8 points); and 7 short answer questions (14 points), for a total of 60 points (to be prorated at course end, per the syllabus).
I have now added the Exam Check List. If you work through this checklist and can answer all these questions, as well as apply the key concepts, you will be more than ready for the midterm exam. A reminder that the midterm is scheduled for 17 October in class. I will provide details of how the midterm is constituted as soon as I have finished putting it together, which should by some time this weekend.
Lab 3 is now available. I saw no reason not to make it available early. It is due by midnight this coming Friday. I will be in the lab on Friday morning for anyone who needs help. Lab 2 has been marked as has Quiz 2. Marks for the latter will be emailed later today.
Lab 2 is now available. It is due Friday 27 September at midnight. During class today, Nic asked a question about the speed of searching a linear versus a multi-level page table. Recall that the primary rationale for a multi-level table is to reduce the potentially very large size of a linear table (see slide set 9 for an example), and not to gain any necessary search speed advantage. Search in a linear table is a direct lookup of the VPN, which is the same as the index for the table, so O(1). For a multi-level tree, the search involves a slightly more costly lookup. As mentioned in class we extract the directory page from the first bunch of bits from the VPN, and the second page index from the next bunch of bits. So the lookup is O(n), where n is the depth of the table. To sum up, linear tables offer faster lookups but consume more memory, and multi-level tables save significant memory at the cost of a moderately slower lookup.
The next quiz (Tuesday October 1), will be on chapters 7 through (including) 16. It will be 10 multiple choice questions.
Also, Lab 2 will be doable from your own computer if you have a c compiler installed. As such if you want to do it from home that is fine. I will be in HH 236 from 10:30 to 11:30 on September 27, and otherwise on Teams. The Lab 2 deliverable will be due by midnight on Friday.
Lab 1 is now due at midnight tonight, to give everyone a bit of extra time to finish it.
Reminder: no lab today. Also, for the quiz on Tuesday, it will cover everything up to and including Chapter 6, as reflected in the CS 3403 Course Schedule.
I am moving our first lab from this Friday to next Friday, September 20 (from 10:30 to 12:30). The lab IT is not yet in order and the extra week will allow me to straighten that out to avoid frustration on your end. Also, we can cover a bit more material, which will make the lab a bit more familiar. I have updated the CS 3403 Course Schedule.
Reminder that our first quiz will be this coming Tuesday, September 17. It will be 5 questions and you will have 25 minutes to complete it.
We have agreed to conduct the labs for the two sections of this course together on the applicable Fridays, from 10:30 to 12:20 with lab submissions due to me by 2:30 P.M. the same day. Please check the CS 3403 Course Schedule page for the dates when labs are held.
I have also updated the flexible weighting of the two exams, as discussed in class. See further below for details.
There will be no lab sessions on September 6th.
Jake van der Laan. You can email me here. Learn a bit about me from my LinkedIn profile.
Everything relating to this course will be posted on this page. Please bookmark it.
When appropriate, any adjustments or updates regarding lectures, labs, etc. will be made by way of an email to the whole class, as well as by adding a new item to the News and Updates section above.
I am more than happy to chat with any student using any of the following channels:
> Meet me in person at my office in Hazen Hall 302. I will be in my office every Tuesday and Thursday between 10:00 and 11:30 and from 12:30 to 14:00. Please drop by and say hi. If that does not work for you, please connect with me via Teams or email to set up another time.
> Chat with me online anytime you see me as "Available" in Teams.
> Email me at anytime. I will endeavour to get back to you within 24 hours.
Please don't be shy if you have questions or issues, or even if you don't, drop by and say hi. I am here to help you succeed in learning the course material and also delighted to help you in any other way that I can (like reviewing your resume!).
If I can help you, you will help me live longer. Win win.
This course is an introduction to the fundamentals of Operating Systems.
Topics include the various ways and strategies used by operating systems to manage computational processes, including particularly their CPU, memory, and storage dimensions. We will cover these topics through three key paradigms: virtualization, concurrency and persistence.
The material is not simple, but if you are diligent in keeping up to date on the reading and attending the class discussions and participating, you should find it relatively easy to learn the required bits.
CS 2253 and one of CS 2263 or CS 2617. You also need to have 70 credit hours completed in the CS degree program.
Be able to explain the role of an operating system.
Have a general sense of how operating systems were initially developed and how they have evolved.
Be able to explain how virtualization works in the context of CPU, memory, and storage management.
Be able to explain how concurrency, and its various forms of implementation, is achieved by an operating system.
Be able to explain how persistence, and its various strategies of implementation, is achieved by an operating system.
Be able to explain the core security risks inherent in an operating system, and some of the key methodologies for managing these risks.
Be able to apply the above knowledge effectively in other realms of computer science, particularly software design and development.
Lectures and class discussions will be on Tuesday and Thursday afternoon from 14:30 to 15:50 in Oland Hall 105.
These sessions will be in-person as a default, but we may mix it up with the occasional online meeting and/or virtual guest speaker.
Please consult the CS 3403 Course Schedule page for detail on the various meetings, required reading, and deadlines for the course. This page will be adjusted and/or updated as we proceed along, as required.
We will use the excellent (and free!) online book "Operating Systems: Three Easy Pieces" (OSTEP) as the textbook for this course. It is a well written and highly readable text.
We will cover a lot of ground. It is very important that you do the required reading as we proceed through the material. In order to learn the material for each class meeting, you will need to read between 15 and 30 pages from the text book. If you space this out over the week, it is very doable.
Our meetings on Tuesdays and Thursdays will not be a detailed regurgitation of the material covered in the book. I will hit the important aspects of each topic, and will then leave it to you to fill in the blanks by completing the required reading. If you don't understand something, please ask questions!
For my topic overview each meeting, I will usually use slides, and will link to all slides and any other referenced material on the CS 3403 Course Schedule page.
Keeping up with the required reading and attending our meetings and labs will lay a foundation of knowledge, with which you will then be able to successfully complete the quizzes, labs, and exams.
The most important skill to have as a computer science professional is the ability to problem-solve. Developing problem solving skills requires practice and effort. Problem solving capacity develops robustly only after the application of such effort over time.
Seasoned IT professionals have developed a keen intuition about how to analyze problems and implement efficient solutions, grounded in a solid understanding of key programming and software development concepts and approaches to the specific functional aspects of computing.
If you want to develop those skills and intuitions, then resist leaning on AI tools such as GPT for the problem solving aspects of this course.
You can, and should use these tools to get quick answers to simple questions, which help you in your learning. But don't use them to do the "thinking" for you.
If I suspect that you may have used an LLM to do a lab for you, I reserve the right to interview you to verify that the lab's deliverable has been produced by your personal effort.
Your proficiency in understanding and applying the material will be assessed as follows:
> 4 quizzes, of which I will count the best 3, at 6.6667 points each, for a total of 20 points
> 5 labs, at 4 points each, for a total of 20 points
> One midterm exam, worth either 20 or 25 points*
> One cumulative (i.e. covers all material in the course) final exam, worth either 40 or 35 points*
*I will pick one of the two possible weight contributions of the midterm and final towards your final grade, depending on which is most advantageous to you. For example if you do better - on average - on the final than on the midterm, I will score the final out of 40 rather than 35, and the midterm out of 20 rather than 25. And vice versa if you did better on the midterm. The effect of this is a modest score boost for the better exam, towards your final grade.There will be no assignments in this course. We will instead use the labs to examine and play with various concepts important to operating systems. The labs will usually consist of a set of small programming tasks.
You may find that some of the things you learn and explore in the labs will also feature in the quizzes, so it is important to attend and do them.
0 < 50: F
50 < 55: D
55 < 60: C
60 < 65: C+
65 < 70: B-
70 < 75: B
75 < 80: B+
80 < 85: A-
85 < 90: A
90+: A+
Students are expected to attend all scheduled class meetings and labs.
Plagiarism will not be tolerated. Please consult the Undergraduate Calendar for the university’s description and policy on plagiarism: http://www.unb.ca/academics/calendar/undergraduate/current/regulations/universitywideacademicregulations/viii-academicoffences/index.html
Students must diligently ensure that they do not engage in any of the following as it relates to any of the deliverables for this course:
Quoting verbatim or almost verbatim from any source, including all electronic sources, without acknowledgment.
Adopting someone else’s line of thought, argument, arrangement, or supporting evidence without acknowledgment.
Submitting someone else’s work, in whatever form without acknowledgment. Knowingly representing as one’s own work any idea of another.
Academic accommodations for students with disabilities are provided by the Student Accessibility Centre. If you are a student with a disability and would like to discuss potential academic accommodations, you are encouraged to contact Ken Craft, Student Accessibility Centre Coordinator. Ken can be reached at kcraft@unb.ca or 648-5690.
The University has a wonderful student services team, who can provide you with great support, including help with learning how to study effectively, how to manage your time, how to write a paper, etc. Check them out at https://www.unb.ca/sas/academic-success/.