MCS-284 will cover computer systems as seen through the eye of a programmer. Students will learn how a computer execute programs, store information, and communicate. They will become more effective programmers, especially in dealing with issues of performance, portability and robustness. The course also serves as a foundation for courses on compilers, computer networks, database systems, operating systems, etc, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation.
Our texts will be the third edition of Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron, published by Pearson, and the second edition of The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie, published by Prentice-Hall.
All course materials will be available on the course website and on Moodle (http://moodle.gac.edu/). The URL for the course is http://homepages.gac.edu/~lyu/teaching/mcs284-f20/.
Please note that this semester, due to Covid-19, the schedule will be much more flexible. The first day of (ZOOM) lecture will be on Thursday, September 3rd. The format of online ZOOM lectures will continue at least for the first few weeks of the semester.
Office: OHS 306
Phone: x7473
Homepage: http://homepages.gustavus.edu/~lyu/
Office Hours:
Weekly Schedule:
Other than my office hours, I have arranged for virtual night tutors. You will find that there are quite a few night tutoring sessions weekly. I encourage you to attend as many as possible.
Your night tutors are Filip Belik, Maddie Sandish and Thomas Hugart. Please note that the night tutoring sessions are for MCS-177, MCS-178, as well as MCS-284.
The detail for the virtual tutoring sessions are as follows:
One of the biggest challenges students face in this course is dealing with the complexity of the lab assignments. To be clear, you will need to finish four very challenging assignments, thus, the key for surviving in this course is to utilize the help offered outside of the classroom. More on that in Course Information
Our course will be structured as follows: on Monday and Thursday of each week classes will be used for lecturing; while on Tuesday and Friday of each week classes will be used for "labs" : working on exercises, homework, and projects. You should prepare accordingly. For details please schedule.
Please note that due to the unpredictability of the situation, our schedule may change at any time.
There will be one intra-term tests during the semester 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.
The tests will be opened-book and mostly opened-notes. It will also be online and timed (1 hour for midterm and 2 hours for the final).
This year due to COVID-19, we will rely heavily on your own discipline to absorb the class materials. To help you with that, I will give you homework problems. You are generally given 1-2 weeks to complete each homework. Some of these problems are written and some requires coding. Please note that these problems may also serve as practice for midterm and the final. Homework problems are worth 10% of your final grade.
Should you miss a class for any reason, you are still responsible for the material covered in there. If there is a project report due that day, you should be sure to submit it (electronically, via Moodle ) on time (thus, do not leave your work until the last minute).
If you have influenza-like symptoms (temperature over 100 with headaches, sore throat, please don't come to class, call Health Service; and I request that you email me.
For this course, ideally your grade should be a reflection of the effort you had spent. At the end of the semester, if you tell me that you have put in a lot of effort but you received a bad grade, I will ask you the following: "did you attend all the lectures?", "did you pay attention in classes?", and finally, "did you take advantage of the overabundance of help offered to you?". If your answer to any of those questions is "no", then you did not put enough efforts into the course.
Please keep in mind that there is no such course which allows you to miss lectures, lab sessions, projects or homework, but somehow miraculously implant the necessary knowledge in your head; no matter how "good" or "bad" the course is. Academia demands Discipline.
For this course, I encourage questions, discussions, peer-helping, and explorations. So, I am bringing back the bonus point system. During the semester, you are strongly encouraged to ask questions (during or after lectures) and to take part in discussions. If I feel that you had made a good contribution, you will receive one bonus point.
You will also earn bonus points if you have ideas about extra work (such as open questions) you can do and have done them outside of class. You can talk to me about what you had done and show me your work. I will give you bonus points accordingly.
The maximum amount of bonus points per student is 9. They are worth 3 percent of your final grade. That is, if by the end of the semester you had received 9 bonus points from me, you can raise your final percentage by 3%.
It should be very clear to you that there is help available almost every single day of the week (from either me or the tutors). I have virtual office hours Monday - Friday. The night tutors are available every night of the week except for Fridays and Saturdays. What's more, you are just an email away from arranging sessions from me or the tutors at a time which works for you (per instance or on a regular basis). In other words, I had made it such that at any time, if you spent the effort into going, help should come to you; so the deciding factor here is clearly the effort you spent; and effort is especially important this semester .
Please keep in mind that if you tell me "none of the help sessions offered throughout the week are held at a time which works for me", then I will tell you (other to prioritize your schedule) that at any time you can send an email to arrange for a session. In fact, you can even arrange sessions with me or with the TAs at a time which works for you on a regular basis. So, again, the factor here is your effort.
To help keeping track of the effort you had put into the course, and to offset the difficulties on the assignment, you can earn 5% bonus points per assignment by doing the following:
Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if I have been especially unjust.
The course components will contribute to your grade in the following proportion:
The perfect score for this course is 100%. Each component of the course will be calculated from its raw score to its corresponding weight in the total grade. Your letter grade for the course will be recorded as follows:
A: 94-100 | B+: 87-89 | C+: 77-79 | D+: 67-69 | F: < 62 |
A-: 90-93 | B: 83-86 | C: 73-76 | D: 63-66 | |
B-: 80-82 | C-: 70-72 |
Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if you feel I have been especially unjust.
It is ok for students to get together in small groups to go over material from the lectures and text, solve problems from the text, study for exams, and discuss the general ideas and approaches to projects. However, work to be turned in must be done independently. It must not be based on help from others or information obtained from sources other than those approved by the instructors (e.g., the text, the course webpage, and materials provided in the lectures). Effective learning is compromised when this is not the case.
You should never read or copy (any part of) another student's code or solutions, exchange computer files (or pieces of papers with solutions written on them), or share your code/solutions with anyone else in the class until after both parties have submitted the assignment. Under no circumstances may you hand in (any part of) work done by someone else under your own name.
At its November 2006 Faculty Meeting, the faculty approved changes to Faculty Handbook Section 2.2.6: "Through information provided in syllabi and/or other means, faculty members will explain to students how the Honor Code will operate in their respective courses." The following statement is suggested as a pledge for students to sign on all graded assignments and projects. A similar statement may be signed by students at the beginning of a course, indicating that their work for that course will comply with the academic honesty policy and the Honor Code. "On my honor, I pledge that I have not given, received, or tolerated others' use of unauthorized aid in completing this work." Full descriptions of the Academic Honesty Policy and the Honor Code can be found in the Academic Catalog (online at https://gustavus.edu/general_catalog/current/acainfo). For more information about the Honor Code, contact Dean Micah Maatman (mmaatman@gustavus.edu