I welcome visitors to my office (OHS 306) on a drop-in basis as well as by appointment. You may send me electronic mail at max@gustavus.edu.
Each pair of students will be responsible for setting up a meeting with me the week before their presentation to go over it with me. (You are welcome to additional consultations as well.) At that meeting, you should also give me three straightforward questions about your reading. I will distribute these to the full class. All class members will email me their answers to these three questions by 7am the day of your presentation, as a way of making sure we all have a common starting point. I will look through them and alert you immediately before your presentation if there are any common difficulties you might want to address. No late answers will be accepted for these questions because their point is to lay the groundwork for the presentation.
I will provide a list of attributes that good presentations have. For each presentation, each student in the audience will be asked to select two of these attributes that were particular strong points and two that particularly need work. I will summarize this feedback for the presenters. I will also use the same list of attributes to structure my own evaluation of the presentation, which will take place in a face-to-face “debriefing” with the presenters, with the grade generated as a summary of that meeting.
I'm going to ask you to express a preference ranking for the topics and will try to the extent possible to assign people to topics based on that. I suggest you read the abstracts of the papers to help determine your preferences; you can also take into account the timing of the presentations. I'll need to have you email me the rankings by 2:30pm Thursday (September 5).
Each class day that has a reading assignment, you are to send me an email by 7am with your preparation assignment for that day. I will look these over in order to shape the class to meet your needs. As additional incentive, they will count for a portion of your class grade, based on how many you submit. No late preparation assignments are accepted, as that would undermine their real purpose.
For a conference paper, the preparation assignment will consist of questions provided by the presenters, as described in the section on presentations.
For readings from the textbook, your assignment is to send me an agenda for that day's class. Is there old business from prior days that you see as needing more time? In the new topics from that day's reading, what are the main points we should cover? What illustrations, programs, or other examples from the book would you like to go over? Are there items for which you would like a different example? Are there topics beyond the reading we ought to cover?
You are to select your own homework problems. Each chapter in the textbook ends with exercises, programming projects, and exploration projects. For each of Chapters 2-11, you may submit any exercise and any programming or exploration project, subject to the restrictions listed below. If I indicate that your initial solution is inadequate, you can submit a revised version, as many times as are necessary to succeed.
There will be two intra-term take-home tests as shown on the schedule below and a final exam as scheduled by the registrar. If you have a conflict with a testing time, please contact me as soon as possible to make an alternative arrangement.
My default assumption is that students will take the final together. Therefore, I would ask you to please be respectful and quiet, even after completing your exam, so that your fellow students have a good test-taking environment. However, if you prefer to take the exam in a separate room, please contact me in advance and I will try to arrange it.
Tests will be closed-book and mostly closed-notes. You may, however, use a single 8 1/2 by 11 sheet of paper with hand-written notes for reference. (Both sides of the sheet are OK.)
You can contribute to the further development of our textbook and earn course credit in the process. There are two ways you can contribute.
If you spot a bug in the book or something that could be improved, you can report this using the issue tracker or by emailing me. Each time you do this you will earn 3 Grade Points in lieu of the usual monetary reward offered in the Preface. You may claim these points for up to 5 bug reports.
For a greater number of Grade Points (10 instead of 3), you can do the work of improving the book in some way, rather than merely pointing out a place where improvement is needed. The best way for you to submit a "patch" to the book is to make your own fork of the github repository, commit a revision into that fork, and then send me a "pull request" to ask me to incorporate it into the mainstream. If you elect to make this kind of contribution, you needn't begin by identifying where an improvement is needed; you can address one of the issues already listed in the issue tracker. Creating some new supplemental material such as an animation or screencast would also qualify for the same points as a patch to the book. You may claim these points for up to 3 contributions to the book.
Any substantive contribution to your solution by another person or taken from a publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action.
The same standards regarding plagiarism apply to team projects as to the work of individuals, except that the author is now the entire team rather than an individual. Anything taken from a source outside the team should be be properly cited.
One additional issue that arises from the team authorship of project reports is that all team members must stand behind all reports bearing their names. All team members have quality assurance responsibility for the entire project. If there is irreconcilable disagreement within the team it is necessary to indicate as much in the report.
You are expected to be familiar with the college academic honesty honor code policy and to comply with that policy. If you have any questions about it, please ask.
If you are too sick to complete an assignment on time, you will not be penalized. Simply write “late due to illness” at the top of the assignment, sign your name and hand it in. Other circumstances will be evaluated on a case-by-case basis.
You will have the opportunity to earn up to 335 Grade Points (GP) throughout the semester as shown in the following table:
Category | # | GP each | GP possible |
---|---|---|---|
Lab | 4 | 24 | 96 |
Presentation | 1 | 20 | 20 |
Preparation | 22 | 1 | 22 |
Exercise | 10 | 3 | 30 |
Project | 10 | 5 | 50 |
Test | 3 | 24 | 72 |
Bug report | 5 | 3 | 15 |
Patch | 3 | 10 | 30 |
Total | 335 |
Your course grade will be recorded as follows:
GP | Grade |
---|---|
270–335 | A |
260–269 | A− |
250–259 | B+ |
240–249 | B |
230–239 | B− |
220–229 | C+ |
210–219 | C |
200–209 | C− |
190–199 | D+ |
170–189 | D |
0–169 | F |
Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services Coordinator, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services (https://gustavus.edu/advising/disability/) is located in the Academic Support Center.
Support for English Language Learners and Multilingual students is available through the Academic Support Center and the Multilingual/English Language Learner Academic Support Specialist, Laura Lindell (llindell@gustavus.edu or x7197). If you fall into one of these categories, she can meet individually with you for tutoring in writing, consulting about academic tasks, and helping you connect with the College’s support systems. In addition, you can seek help from peer tutors in the Writing Center. Please let me know if there is any accommodation in the course that would enable you to more fully show your abilities; for example, I would consider allowing extra time on tests, as well as allowing a dictionary in an otherwise closed-book test.
The two topics or activities shown for each date correspond approximately to the two halves of the class period with a brief stretching break in between. However, we will divide the time to meet our needs rather than necessarily at the halfway point.
In the reading column, a single number with no decimal point indicates an entire chapter. A number with three decimal points in it, such as 8.5.1.1 or 8.5.1.2, refers to the material under the first or second heading within Section 8.5.1, even though those headings are not actually numbered.
Date | Reading | Topic | Due |
---|---|---|---|
9/3 | 1 | Introduction | |
2 | Threads | ||
9/5 | 3.1-3.3 | Scheduling Goals | |
3.4-3.7 | Scheduling Mechanisms | ||
9/10 | Lab Preview | ||
Lab 1: Scheduling | |||
9/12 | No class | ||
9/17 | paper 1 | I/O Scheduling for Flash Storage (Sam and Helen) | Lab 1 |
4.1-4.3 | Mutual Exclusion | ||
9/19 | 4.4-4.6 | Other Synchronization Patterns | |
4.7-4.8,4.10 | Synchronization Pathologies | ||
9/24 | 4.9 | Nonblocking Synchronization | |
5.1-5.2 | Example Applications of Transactions | ||
9/26 | 5.3-5.4 | Mechanisms for Atomicity and Durability | |
5.5-5.6 | Additional Transaction Mechanisms | ||
10/1 | No class (attend Nobel Conference) | ||
10/3 | Review of Chapters 1-5; take-home test 1 out | HW rewrites (2-5) | |
6.1-6.2 | Uses for Virtual Memory | ||
10/8 | 6.3 | Mechanisms for Virtual Memory | Take-home test 1 |
6.4-6.5 | Policies for Virtual Memory | ||
10/10 | Lab Preview | ||
Lab 2: Prepaging | |||
10/15 | 7.1-7.2 | POSIX Process Management | |
7.3-7.6 | Protection | ||
10/17 | paper 2 | Virtual Machine Checkpointing for Restore Performance (Zach and Tim) | |
Lab 2 (continued) | |||
10/24 | 8.1-8.3 | POSIX File API | |
Lab 2 (continued) | |||
10/29 | 8.4-8.5.1.1 | Disk Space Allocation | |
Lab 2 (continued) | |||
10/31 | 8.5.1.2-8.6 | Metadata, Directories, and Indexes | |
8.7-8.9 | Metadata Integrity | ||
11/5 | paper 3 | Verifying File System Consistency at Runtime (Nate and Ma) | Lab 2 |
Lab 3: File Allocation | |||
11/7 | Review of Chapters 6-8; take-home test 2 out | HW rewrites (6-8) | |
Lab 3 (continued) | |||
11/12 | 9.1-9.3.1 | Socket APIs | Take-home test 2 |
Lab 3 (continued) | |||
11/14 | paper 4 | Cloud Storage Replication (Kevin and Todd) | |
9.3.2-9.6 | Networking | ||
11/19 | paper 5 | Optimizing Pure Acknowledgment Receipt (Molly and Michael S.) | |
Lab 3 (continued) | |||
11/21 | 10.1-10.3 | Messaging and Remote Method Invocation | |
10.4-10.5 | Web Services | ||
11/26 | paper 6 | Improved Data Shuffling (Matt and Eli) | Lab 3 |
Lab Preview | |||
12/3 | 11.1-11.4 | Security Basics | |
Lab 4: Communication Middleware | |||
12/5 | Lab 4 (continued) | ||
12/10 | 11.5-11.8 | More on Security | |
Lab 4 (continued) | |||
12/12 | paper 7 | Securing Embedded User Interfaces (Yunong and Michael P.) | Lab 4, HW rewrites (9-11) |
Review and evaluation |