Class/Sec: | CS 367 (001): Computer Systems and Programming |
Instructor: | Huzefa Rangwala [1], Room #4423 EB, rangwala@cs.gmu.edu [2] |
Class Time & Location: | Mon/Wed 12:00 pm - 1:15 pm Robinson Hall A111 |
Text Book: | The required textbook for this class is Computer Systems: A Programmer's Perspective [3] by Randal Bryant and David O'Hallaron (3rd edition, Prentice Hall, 2015). A reference text for the C programming language is the classic Kernighan and Ritchie book "The C Programming Language" (2nd edition, Prentice Hall, 1988) |
Teaching Assistant: TBD | TBD |
Office Hours: | Instructor: Monday 2-4 pm in Engineering 4423. |
Communication and Class Link: | Piazza Link: Piazza [4] All correspondence will go through Piazza. You can send private messages to the instructors (professor, GTA, UTA) as well as post public questions visible to all students, collaborate on responses, and tag everything by topic. |
Lecture Notes and Information: | Posted on Piazza not Blackboard |
Project and Homework Submission: | Via Blackboard [5] & Mason Server. Please see individual homework/project instructions. |
Please note the syllabus is subject to change to enrich the student's learning experience :). Feel free to email rangwala@cs.gmu.edu [2] for questions, concerns, or even say hi.
Course Description |
---|
This course provides an introduction to computer systems from a programmer's perspective. Topics include machine-level representation of data and programs, linking and loading, processes, virtual memory and dynamic memory allocation. |
Course Prerequisites |
The prerequisites are automatically and strictly enforced.
|
Course Format |
Lectures will be lead by the instructor and will involve lots of interaction and in-class problem solving. Grading will be based on homeworks, projects, exams and in-class quizzes/participation. Homework assignments will require intensive programming and some will be auto-graded. Exams and homework assignments must be done on an individual basis unless stated. Any deviation from this policy will be considered a violation of the GMU Honor Code. |
Course Outcomes |
As an outcome of taking this class, a student will be able to
|
Course Outline (Tentative and Subject to Change) |
Week 1: Introduction and Course Overview; Representing and Manipulating Information (Chapter 2) |
Week 2: Chapter 2 (cont'd) |
Week 3: Chapter 2 (cont'd) |
Week 4: Machine-level Representation of Programs (Chapter 3) |
Week 5: Midterm 1; Chapter 3 (cont'd) |
Week 6: Chapter 3 (cont'd) |
Week 7: Chapter 3 (cont'd) |
Week 8: Spring Break |
Week 9: Chapter 3 (cont’d) |
Week 10: Chapter 3 (cont’d); Midterm II |
Week 11: Linking (Ch 7) |
Week 12: Dynamic Memory Allocation (Ch 9.9) |
Week 13: Memory Hierarchy (Ch 6); Processes and Signals (Ch 8) |
Week 14: Chapter 8 cont’d; Virtual Memory (Chapter 9) |
Week 15: Chapter 9 (cont’d) |
The grade for the course will be based on the following components: (i) Projects/Labs (30%) (ii) Homework (10%) (iii) Quizzes & Class participation (5%) (iv)Two Mid-term exams (15% each) and (v) Final exam (25%). The final exam will be comprehensive in nature, i.e., it will cover the whole course. There will be three homework assignments and four lab assignments. The relative weight for each assignment is based on the amount of effort that is required. |
||||||||||||||||||||||||||||||||
Grades will be assessed on the following scale:
|
||||||||||||||||||||||||||||||||
Exam Schedule:
|
Attendance |
---|
Attendance is not compulsory but highly recommended for doing well in the class. This class has lots of active learning exercises, and they will be a lot of fun. 5% of your grade is for in-class quizzes and participation. |
Homework/Project Submission |
Please ensure that the home-works and projects are submitted on-time. No late submissions are allowed. This is for your learning as there are several assignments and there may be dependencies amongst consecutive assignments. |
Make-Up Exams & Incompletes |
Make up exams and incomplete grades will not be given for this class. |
Contested Grades |
|
Computer Accounts |
Please obtain an VS&E labs [6] account. Even if you are using your own computer, your programs need to execute correctly on the Linux computers in the VS&E lab since those systems will be used while grading your projects. |
Academic Honesty and GMU Honor Code |
You are expected to abide by the University's honor code [7] and the CS Department's Honor Code [8] and Academic Integrity Policies during the semester, i.e., collaboration between students in different groups on an assignment is unacceptable. Any violation of the honor code will result in referral to the honor council with a recommendation that the student be awarded an F for the class. |
Disability Statement |
If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office of Disability Services (SUB I, Rm. 222; 993-2474;http://ds.gmu.edu/) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs. |
Links:
[1] http://www.cs.gmu.edu/~hrangwal
[2] mailto:rangwala@cs.gmu.edu
[3] http://csapp.cs.cmu.edu/
[4] http://www.cs.gmu.edu/~hrangwal/piazza.com/gmu/spring2017/cs367001
[5] http://www.cs.gmu.edu/~hrangwal/courses.gmu.edu
[6] http://labs.ite.gmu.edu/
[7] http://oai.gmu.edu/
[8] http://cs.gmu.edu/resources/honor-code/