Computer Systems and Programming (CS 367) Syllabus - Spring 2019

1 Course Basics

1.0 Course Overview

CS367 provides an introduction to the field of Systems Programming. This is an area of programming wherein the software written generally provides services to other software. Examples of Systems Programming are Operating Systems, Game Engines, Embedded Systems Programming, Industrial Automation, and Networking.

This course will prepare you for CS471 (Operating Systems), CS465 (Architecture), CS455 (Networking), and various other courses with systems level programming.

Topics for this semester will include.

  • Data and Number Representation
  • Machine Level Representation of Data and Programs
  • Linking and Loading
  • CPU Architecture
  • Processes
  • Virtual Memory and Caching
  • Dynamic Memory Allocation
  • Exceptional Control Flow

1.1 Schedule

1.2 Professor and Section Information

Lecture Professor Email Class Time Class Location
001 Prof. Kevin Andrea MW 9:00am-10:15am Merten Hall 1200
003 Prof. Kevin Andrea TR 10:30am-11:45am Sandbridge 107
004 Prof. Kevin Andrea TR 3:00pm-4:15pm Innovation Hall 204

Your lecture Professor will be responsible for all lecture and course material, as well as grading your quizzes and examinations.

Recitation GTA Instructor Email Recitation Time Recitation Location
308 Anowarul Kabir F 8:30am-9:20am Buchannan Hall D003
301 Anowarul Kabir F 9:30am-10:20am Buchannan Hall D003
302 Anowarul Kabir F 10:30am-11:20am Buchannan Hall D003
303 Vicky Yang F 11:30am-12:20pm Buchannan Hall D003
304 Vicky Yang F 12:30pm-1:20pm Buchannan Hall D003
305 Nabil Darwich F 1:30pm-2:20pm Buchannan Hall D003
306 Nabil Darwich F 2:30pm-3:20pm Buchannan Hall D003
307 Nabil Darwich F 3:30pm-4:20pm Buchannan Hall D003

Your Recitation Instructor (GTA) will be responsible for grading both your recitation exercises and the course projects.

This is a 4-credit course.

1.3 Office Hours

Professor Email Office# Office Hour Times
Prof. Kevin Andrea ENGR 4610 (in the Learning Agents Center) Wed 10:30am-12:30pm
Anowarul Kabir ENGR 4456
Mon 10:00am-12:00pm
Vicky Yang ENGR 4456
Tues 12:00pm-2:00pm
Nabil Darwich ENGR 4456
Thur 1:00pm-3:00pm

You may visit any Professor or GTA for questions about course material.

  • For Exam and Quiz Grading Questions, see Prof. Andrea
  • For Recitation and Project Grading Questions, see your Recitation GTA

1.4 Prerequisites

The prerequisites are automatically and strictly enforced.

  • Grade of C or better in MATH 125, and
  • Grade of C or better in CS 262 (or CS 222), and
  • Grade of C or better in CS 110

1.5 Course Outcomes

The CS department has identified these outcomes as ones that must be met throughout the semester.

  1. Demonstrate an ability to design and implement C Programs.
  2. Demonstrate knowledge of computer arithmetic and logic operations and representations of data at the machine-level.
  3. Demonstrate knowledge of machine-level representations of (C) programs.
  4. Demonstrate an ability to use debuggers.
  5. Demonstrate an understanding of the idea of a process, how processes are created and how they are manipulated via interrupts, signals, and context switches.
  6. Demonstrate an understanding of process-level memory issues including object file linking, process address spaces and virtual memory.

1.6 Required Textbook

Computer Systems: A Programmer's Perspective (3rd ed.). Randal Bryant and David O'Hallaron (Prentice Hall).

  • You can access our textbook in the Gateway Library (JC), by using the call number QA76.5.B795 2016 .
  • Note - we've updated to the third edition, which is a significant update to 64-bit throughout the text.
  • This is one of those text books that can actually make a big difference in a pivotal course; actually read it!

1.7 Piazza

    The Piazza Course Page will be announced soon.
  • All correspondence will go through Piazza. You can send private messages to the instructors (professors, GTA, UTA) as well as post public questions visible to all students, collaborate on responses, and tag everything by topic.
  • Assignments will be posted to Blackboard.

1.8 Blackboard

  • All digital work is submitted to Blackboard by the given deadlines.
  • Grades are posted on Blackboard for all assignments.

1.9 Computer Accounts

  • All work must compile and run on Zeus. This is the reference machine architecture and all projects will be tested and graded on the Zeus server.
    • Zeus is an x86-64 Architecture server running Linux (CentOS 7.6).
  • All grading occurs on this system; other systems might be more forgiving for memory errors, and you don't want to find that out with your grade!
  • To access Zeus from off campus, you will need to set up a Virtual Private Network (VPN).
  • Instructions for accessing Zeus in general, and from off campus, are in the following link.

2 Grading

The course will have two tests and a final. Much of the work during the semester will be completing projects, as well as regular recitation activities (written and digital).

In general, all grades should be available about one week after turning it in.

2.1 Semester Grades

Weighting of Assessments:

Category grade % notes
Projects 30% at least 3
Quizzes 7.5% about 5
Recitation 7.5% participation-based
Tests (15% each) 30%  
Final Exam 25% cumulative

Project grades will be normalized for even distribution.

For example, if there are three projects, then each project will be worth 10% of your final grade separately, for a total weight of 30%.

2.2 Grading Scale

Grades will be assessed on the following scale:

Grade Cut-off Grade Cut-off Grade Cut-off Grade Cut-off
A+ 98 % B+ 88% C+ 78% D 60%
A 92 % B 82% C 72% F 0%
A- 90 % B- 80% C- 70%    

Grades will not be rounded prior to assessing the letter grades.

2.3 Calculating Semester Grades

  • You should always be able to calculate your semester grade at any point in the semester with the weightings and the scales above.
  • There will be no make-up or extra-credit assignments at the end of the semester; your grade should be a measure of your semester-long progress.
  • This is not a course that receives a magic, gigantic curve at the end. Wherever your grade is headed, that is the outcome you should expect after continued efforts.

2.4 Projects

  • All project grades are normalized (your project score / project possible points) and each contribute to your final grade evenly; there aren't many of them.
  • Projects are more involved than in previous classes.
    • Start your projects early. You will need extra time to design your solution before programming.
    • You will need time to design test cases for your projects as well. Test cases will not be provided.
  • Projects are due at a specific time on a specific day.
  • No work is accepted 48 hours after the deadline (even if you're using late-day tokens!)
    • Submit your projects early and often.
    • Do not wait until the last minute, submission may take extra time at the deadlines.
    • Always submit at least a few minutes before the deadline.
  • Late work (with no late tokens left) incurs a 25% ceiling penalty each 24-hour period entered after the deadline.
    • example: one day of penalty would mean:
      RecordedGrade = min(75, Raw_Score)
  • You begin the semster with three One-Day-Late tokens available that each add 24 hours to the deadline of a project. These are automatically applied to late work. Since no work is ever accepted more than 48 hours after the official deadline, you can use at most two tokens on a project.
  • The final project might not be allowed to be turned in late at all, to facilitate grading by the deadline.
  • Code that doesn't compile will likely get a very, very low score. It specifically must compile on the zeus server.
  • Turning it in on BlackBoard: You can submit your work an unlimited number of times to BlackBoard, and only the last version (within 48 hours of the posted deadline) will be graded. tokens are automatically used based on submission timestamps. You should also download your submitted attempts, and verify that you turned in a working copy and what was intended to be submitted.
    • Turning in the wrong files will likely result in a zero.
    • Catastrophic computer failure will not be cause for an extension. Use a backup service such as DropBox (or any cloud service), emailing yourself, storing to a USB drive, whatever it takes. Just don't put it in a public git repository where others can find it (this has happened before). Every semester multiple students' computers die, are stolen, or otherwise 'lose' programs and digital work. Don't be the student who forgot to (frequently) back up your work!

2.5 Recitation

  • All students are registered for a recitation as well as their lecture.
  • The recitation sections are mixed between the lecture sections, so you may see different students there.
  • All lectures and recitations are coordinated.
  • There will be work to complete either during recitation or by some short duration after recitations are complete.
  • Attendance and effort are the main components of your recitation grade - this is where you practice and get the most feedback.
  • You will be given a score between 1 and 3 for each recitation submitted. This is for your feedback only, you will receive the same number of graded points regardless of how you score on the recitation itself, for any recitation in which you participate during the recitation meeting.

2.6 Quizzes

  • There will be occasional quizzes, to bridge the gap between recitation-level work and test-level work. They may be either in person or online, as appropriate.

2.7 Tests and Final Exam

  • There will be two Midterms and one Final Exam.
  • They will be entirely paper and pencil - no computers, books, etc.
    • You will be allowed one handwritten page of notes.
    • You may use both the front and back of the page.
    • You will be turning the notes page in with the exam.
  • All students must have their GMU identification available on testing days
  • If you know you will miss a test, let your Professor know as soon as possible to coordinate an alternate time.
    • The reason for missing a test must be verified with documentation and may not be automatically granted.
  • If you miss a test (without prior approval), and a valid reason is verified with documentation (ER visit, traffic accident, etc.), we may elect to allow the final exam to count the extra amount to give you a sort of do-over. This policy is not automatic, however.
  • If you miss the final, there is very little I can do for you. Don't miss the final!
    • The Dean has to approve any requests to take missed final exams.
    • This is only granted for medical or other extraordinary circumstances.
  • The final will not be given early. You are starting the course with knowledge of the schedule (see GMU's Final Exam Calendar for the latest schedule, updated as weather events require).

2.8 Contested Grades

  • If you feel points have been incorrectly deducted, contact the grader.
    • Tests and Quizzes: Contact your Professor.
    • Recitation Scores and Projects: Contact your Recitation Instructor.
  • If you have not initiated contact within a week of the grade being made available, it is permanent. No grade-hunting in the last couple of weeks!
  • We strive to grade each student's work fairly and uniformly, often through specific test cases and grader-group-discussions, which might even be automated as part of the grading process.

2.9 Course Repetition

  • There is a limit of three graded attempts for this course.
  • A Withdrawal (W) does not count as a graded attempt.
  • Please see AP. 1.3.4 in the University Catalog and consult with your academic advisor if you have any questions.

3 The Honor Code

The honor code at George Mason is an important part of our academic culture. A degree from this institution should be a direct measure of your own progress and abilities, and as such at all times we must ensure that all work that should be your own is your own.

We take the honor code quite seriously. Any attempts at copying or sharing code, algorithms, or other violations of the honor code simply will not be tolerated.

As seductively simple as it may seem to just copy and paste work from a friend or online source, remember that it is just as easy to compare your work electronically, and discover the similarities. We use automated software to flag suspicious cases, and then review them by hand to find the cases that must be submitted to the Office of Academic Integrity. Repeat to yourself: it's not worth trying to cheat. We will catch it, and sadly but surely, we will turn it in.

The penalty for cheating will always be far worse than a zero grade, to ensure it's not worth taking the chance. The usual recommendation is failure in the course. It's a pretty sure-fire way to lose a semester and lose some implicated friends; please don't put yourself through that experience!

3.1 Some Specifics and Links

  • All students will abide by GMU's Honor Code.
  • All work must be your own. If you are caught cheating, you and every other involved student will be turned in to the honor court.
  • See the CS Honor Code Policies to understand better what constitutes cheating in the CS setting. It clarifies some scenarios that are unique to our sorts of assignments.
  • Here are Prof. Snyder's thoughts about the Honor Code in a CS classroom.

4 Learning Disabilities

  • Students with a learning disability or other condition (documented with GMU's Office of Disability Services) that may impact academic performance should speak with the professor ASAP to discuss appropriate accommodations.
  • We are quite happy to assist as is appropriate, but it must be documented ahead of time by ODS.
    • Bringing the paperwork with you to a scheduled exam or at the deadline for a project or an assigned quiz is far too late!
    • Even if you don't know if you plan on utilizing the accommodations ahead of time, it's in your best interest to prepare them ahead of time.

5 Sexual Harassment and Interpersonal Violence

  • As a faculty member and designated "Responsible Employee," I am required to report all disclosures of sexual assault, interpersonal violence, and stalking to Mason's Title IX Coordinator per university policy 1412. If you wish to speak with someone confidentially, please contact the Student Support and Advocacy Center (703-380-1434), Counseling and Psychological Services (703-993-2380), Student Health Services, or Mason's Title IX Coordinator (703-993-8730;

6 Privacy and Email

  • Students must use their Masonlive email account to receive important University information, including communnications related tot his class. I can not respond to messages sent from or send messages to a non-Mason email address.
  • To protect your privacy, I also cannot list your Masonlive email address on any public forum or provide it to any other students.
    • You may, of course, give your email address to any other students.