Course Information
Times and Locations
- Lecture: 2:30-3:45 PM Tuesday and Thursday, KCK 100
- Laboratory for section 004: 2:00-3:15 PM Wednesday, PCF 4
- Laboratory for section 005: 3:30-4:45 PM Wednesday, PCF 4
Instructors
- Alan L. Cox, alc
@
rice.edu, DCH 3009
Office hours: 4:30-5:30 PM Thursday, DCH 3009 - Scott Rixner, rixner
@
rice.edu, DCH 3032
Office hours: 11:00AM-Noon Friday, DCH 3032
Teaching Assistants (in order of office hours schedule)
- Eliot Solomon, ehs3
@
rice.edu
Office Hours: 2:00-3:00 PM Monday, McMurtry Commons - Ye Cao, yc127
@
rice.edu
Office Hours: 4:00-5:00 PM Monday, Baker Commons - Bikrant Das Sharma, bd37
@
rice.edu
Office Hours: 5:00-6:30 PM Tuesday, Brown Commons - Shourya Munjal, sm158
@
rice.edu
Office Hours: 5:00-6:30 PM Tuesday, Brown Commons - Shreyas Minocha, sm159
@
rice.edu
Office Hours: 8:30-10:00 PM Tuesday, Will Rice Commons - Lynn Niu, yn23
@
rice.edu
Office Hours: 6:00-7:30 PM Wednesday, Jones Commons - Sarah Yao, jy75
@
rice.edu
Office Hours: 6:00-7:30 PM Wednesday, Jones Commons - Josh Stidham, jls32
@
rice.edu
Office Hours: 4:00-5:30 PM Thursday, Will Rice Commons - Jacob Pan, jyp2
@
rice.edu
Office Hours: 4:00-5:30 PM Tuesday, Will Rice Commons - Jimmy Huang, yh87
@
rice.edu
Office Hours: 3:00-5:00 PM Friday, Zoom (click onZoom
in the navigation bar in the Canvas site to join) - Zihe Zhao, zz83
@
rice.edu
Office Hours: 3:00-5:00 PM Friday, Zoom (click onZoom
in the navigation bar in the Canvas site to join)
How to Contact Us
Please post your questions of a general nature to the course Piazza site. Piazza is a web-based platform that allows you to post questions about the course and to receive answers from the instructors, from the TAs, and from your fellow classmates. If you have not already done so, please register for COMP 321 on Piazza by going to the course Piazza registration page.
Throughout the semester, check Piazza frequently for any new questions, answers, announcements, or other information. To do so, go to the course Piazza site, log in to Piazza (if you are not already logged in), and click on "Q & A" at the top of the page, (if it is not already selected). In addition to posting and finding answers to your own questions, reading other questions and answers on Piazza can help you learn additional valuable information including assignment assistance and clarifications. And if you encounter a new problem or question, you may well find an answer to it by searching on Piazza.
When using Piazza, please observe the following guidelines:
- Before posting any question, always search the existing Piazza posts first to see if your question has already been asked. If it has, and you don't think the answer(s) are clear, please follow up in that post, rather than creating a new one. As the semester progresses, you should also keep up with reading all of the postings on Piazza and all of the answers there, since this may enable you to discover the answer to some new concern you have even before you realize you need help with that!
- Note that although you can post anonymously, the staff will always be able to see who you are. Be polite, considerate, and do not ask frivolous questions or post frivolous content. Always be aware of how your statements might be perceived by others.
- When posting questions or answers on Piazza, please be careful about what you post, to avoid inadvertently violating the course's Honor Code policy. Specifically, do not include portions of your code (even if it doesn't work) in public questions or answers on Piazza. Please use Piazza for questions about the material for the course, not about how to fix your particular solution.
- If you are asking a question about the material in the class, your post should always be public. You should use private posts only when you need to talk privately with the staff. If your post is of a personal nature, you likely should bring it up with the instructors directly, rather than through Piazza. If your post absolutely requires you to include information about your solution, then your post should certainly be made private. To make your question private, select "Instructor(s)" (rather than "Entire Class") for "Post to" at the top of the posting page, so that only the course instructors and TAs can see your posting.
- Piazza is not always the best avenue to receive help in the course. It may be better to discuss some issues during office hours, for example.
Course Description
The primary goal of this course is to expose you to the underlying aspects of computer systems that have an impact on application programming. The major topics of this course include linking, exceptions, memory allocation and management, networking, and concurrency. These topics are important in all computer systems and will prepare you for future courses in compilers, operating systems, computer architecture, and networking.
This course also introduces and uses the C programming language. C is generally considered a low-level programming language, because all of its features can be implemented in a fairly straightforward manner on typical modern processors. Moreover, C exposes the details of memory allocation and management to the programmer. Therefore, it is much easier to gain an in-depth understanding of computer systems, as they relate to programming, by writing applications in C. These lessons can prove invaluable when writing complicated applications in higher-level languages, and when writing tools or building systems that will be used by other programmers. More pragmatically, despite the benefits of higher-level languages, C is still one of the most widely used languages, so a familiarity with it is useful.
Prerequisites
ELEC 220 and COMP 215
Textbook
Required:
Randal E. Bryant and David R. O'Hallaron. Computer Systems: A Programmer's Perspective, Third Edition.
Suggested:
David Griffiths and Dawn Griffiths. Head First C.
This is an introductory book that teaches C programming if you feel you need more material on C. If you are looking more for a reference book, there are some listed on the Related Links page.
Honor Code Policy
Assignments:
Unless otherwise stated, assignments are to be done individually. You may use your text, course notes, and any other reference material (such as C reference books, C reference web pages, or Unix man pages). You may discuss assignment problems, general strategies, or algorithms with other students in the course. However, you may not colloborate on the implementation of those strategies or algorithms and you must write all of your own code. You may not obtain any code from any source, aside from code provided as a part of the course. You may not consult solutions from prior semesters of this course or from similar courses at other universities. For assignments that allow work to be done in groups, you may work within your group however you see fit, but otherwise this policy applies to the entire group as if it were an individual.
Exam:
The final exam will be an open book exam, but will be restricted to the course text, course handouts, your assignments and their solutions from the current semester, and any notes that you have taken yourself. You may not consult assignment or exam problem solutions from prior semesters of this course or from similar courses at other universities.
Regrade Request Policy
If you believe your grade on a homework assignment is incorrect and you would like it to be regraded, you must submit your regrade request within one week (7 days) from when grades for that assignment are released. Your regrade request must be submitted by email to the instructors with a "Subject:" of
COMP 321 Regrade Request
Your email must clearly specify what part of the assignment you think was misgraded and why you believe this to be so.
All regrade requests for questions on the final exam must be submitted by email to the instructors and must be submitted within one week (7 days) from when the graded exams are released.
Requests for regrades made in any other way or made after the one-week cutoff for requesting regrades will not be accepted.
Students with Disabilities
Any student with a documented disability seeking academic adjustments or accommodations is requested to speak with me during the first two weeks of class. All such discussions will remain as confidential as possible. Students with disabilities will need to also contact the Disability Resource Center in the Allen Center.