Computer Systems and Programming (CS367)
Syllabus - Spring 2025
Course Overview
Course: |
CS 367 |
Credits: |
4 |
Repetition: |
Limited to 3 Attempts (see AP. 1.3.4 in
the Catalog) |
Modality: |
In-Person Lecture (Online Lectures
only in Snow Days or Campus Shutdowns) |
Course Description:
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.
Textbook
Required Textbook: "Computer Systems: A Programmer's
Perspective (3rd ed.) by Randal Bryant and David O'Hallaron
(Prentice Hall).
- Earlier editions will not work as they use a different
Assembly Language (IA32 vs. x86-64)
- Do not get the Global Edition
- The sample problems and their answers are wrong in this
version.
- Author's Personal warning about this: Errata
Course Outcomes
- Demonstrate understanding of data representation at machine
level, including binary numeric encodings, data structures,
and Boolean operations.
- Demonstrate understanding of program representation at the
machine level using assembly language, including control flow,
procedures, and file linking.
- Demonstrate practical techniques of system tools to
understand low level behaviors of programs, including
debuggers.
- Understanding of basic CPU design including circuits,
pipelining, and digital logic.
- Demonstrate understanding memory concepts including virtual
memory, caching, and dynamic memory layout.
- Demonstrate understanding of computer processes, including
its lifecycle and communications with the system.
Prerequisites
- Grade of C or better in MATH 125 (Discrete Math), AND
- Grade of C or better in [CS 262 or CS 222] (C Programming),
AND
- Grade of C or better in CS 110 (Essentials of Computer
Science)
Topics for this Semester Will Include:
- Data and Number Representation
- Assembly Programming
- Processes and Signals
- Unix I/O
- CPU Architecture and Design
- Memory Management
- Linking and Loading
Sections
All sections are taught in-person.
Lecture Sections: Prof. Ivan Avramovic
Section |
Time |
Location |
003 |
T/Th 9:00am - 10:15am |
Horizon Hall 2016 |
004 |
T/Th 10:30am - 11:45am |
Exploratory Hall L102 |
Lecture Sections: Prof. Hamza Mughal
Section |
Time |
Location |
005 |
T/Th 9:00am - 10:15am |
Horizon Hall 3008
|
Lecture Sections: Prof. Yutao Zhong
Section |
Time |
Location |
001 |
M/W 1:30pm - 2:45pm |
Horizon Hall 2016 |
002 |
M/W 3:00pm - 4:15pm |
Exploratory Hall L102 |
Recitation Sections
Section |
Time |
Location |
GTA Instructor |
302 |
F 9:30am - 10:20am |
Horizon Hall 1012 |
TBA |
303 |
F 10:30am - 11:20am |
Horizon Hall 1012 |
TBA |
304 |
F 11:30am - 12:20pm |
Horizon Hall 1012 |
TBA |
305 |
F 12:30pm - 1:20pm |
Horizon Hall 1012 |
TBA |
306 |
F 1:30pm - 2:20pm |
Horizon Hall 1012
|
TBA |
307 |
F 2:30pm - 3:20pm |
Horizon Hall 1012 |
TBA |
Schedule
You can find our tentative schedule on Canvas under Schedule.
Office Hours
Office Hours Policies
- Feel free to go to any Office Hours for this course!
- Occasionally the session may be too busy to look at
individual code questions.
- If so, please feel free to post your code-related
questions to Piazza, Private to Instructors
- This allows a much larger group of TAs to take time to
read through your question and code.
- Just make sure to limit it to the portion of code in
question, and provide context!
Office Hours Times
Times and Locations will be kept updated on Piazza and
on Canvas.
Professor's Office Locations
Professor |
Location |
Prof. Avramovic
|
Buchanan Hall D215K
|
Prof. Mughal
|
Buchanan Hall D217F
|
Prof. Zhong |
Engineering 4433 |
GTA Office Hours
Canvas and Piazza
Canvas
Canvas will be used for course schedule, announcements, lecture
slides, assignments, grades release etc. Canvas Link: https://canvas.gmu.edu
Piazza
This term we will be using Piazza for class discussion. The
system is highly catered to getting you help fast and
efficiently from classmates, the TA, and your Professors. Rather
than emailing questions to the teaching staff, we encourage you
to post your questions on Piazza.
For security, we will be posting the Piazza Access Code on
Canvas.
- To join Piazza, use the link below and then enter the code
from Canvas.
Piazza Link: https://piazza.com/gmu/spring2025/cs367
Piazza Policies
- Project Updates, Clarifications, and FAQ Posts will be
made on Piazza.
- You will be required to check Piazza or the Canvas
Assignment itself during Projects for such Errata
- Make sure you can access Piazza before the first Project!
- Do not post Project-Related Code Publicly on Piazza
- You are free to post Design related questions or
Project-related code Private to Instructors
- Piazza is the best place to post Code related questions.
- Feel free to post your code-related questions to Piazza,
Private to Instructors
- This allows a much larger group of TAs to take time to
read through your question and code.
- Just make sure to limit it to the portion of code in
question, and provide context!
- Make sure to provide information about what debugging
steps you've already taken to narrow the problem down.
- Please do not post cell phone photos of your code. You
can copy and paste into Piazza, which does have Syntax
Highlighting
- Please ask any question about topics, policy clarifications,
sample exam questions, etc on Piazza!
- If you have any questions about Midterm problems or Quiz
Grading, email your Professor directly.
- Do not post any questions about the Weekly Quiz until
after the Answers are Released on Friday mornings.
Grading
The course will have one midterm 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 two weeks
after submission.
Semester Grades
Category |
Grade % |
Notes |
Projects |
32% |
Four Projects (8% Each)
(Note: Projects Average >= 60% to Pass the Course) |
Quizzes |
7% |
Lowest Two Quizzes Dropped |
Recitations |
7% |
Participation Based, One Dropped |
Midterm
|
24%
|
No Replacement Policies |
Final |
30% |
Cumulative |
Grading 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% |
Grading Policies
- You must have a Project Average of at least 60% to Pass the Course.
- This will be averaged across all Four projects.
- There are no replacement points for Midterms.
- No exams are dropped and there are no midterm
replacements.
- There are no make-up projects, quizzes, recitations, or
exams.
- There are policies for excused absences from exams in a
subsequent section.
- No additional work can be given to help increase your
grade.
- There are no additional extra-credit assignments.
- Each project has some ability to earn extra-credit,
however.
- There are no points associated with unused late-tokens.
- There is no course-long curve at the end of the
semester.
- We believe it is important to know where you are at any
point during the semester.
- Your grade should always be computable from all of your
posted grades.
- There will not be any hidden adjustments or overall
curves to the course.
Grade Contesting
- For Exams and Quizzes: Contact your Professor
- For Recitations: Contact Your Recitation GTA
- For Projects: Contact your assigned Project Grader GTA
- If you are unable to come to a resolution with your GTA,
please contact your Professor.
Project Policies
- Canvas Submission must be made by the Project Due Date
- No Project is Accepted more than 48-hours after the
Project Due Date.
- You may only use up to 2 of your total Late Tokens for a
single Project.
- Your code must compile and run on Zeus to be graded.
If your code does not compile on Zeus, it cannot be graded.
- Check your submission to make sure it is the correct
files!
- Turning in the wrong files will likely result in a zero.
- Back up your work!
- Catastrophic computer/file failure or corruption will
not be cause for an extension.
- Do not put your code in any public repository where
others can find it.
- You may use private repositories (github has a private
mode).
- Extra credit for early submissions:
- 1% extra credit rewarded for every 24 hours your
submission made before the due time for the Coding Projects.
- Up to 5% extra credit will be rewarded towards your
project grade.
- Your latest submission before the due time will be used
for grading and extra credit.
- You CANNOT choose which submission should count.
- Late Tokens:
- Everyone starts with 3 Late Tokens total for all Projects
during the Semester.
- Each Late Token adds 24 hours to the Deadline of a
Project.
- Late Tokens are Automatically Used when you submit
Late.
- You don't need to tell your GTA, they will deduct Late
Tokens based on Submission Time.
- You may only use up to 2 of your total Late Tokens for
a single Project.
- Unused Tokens have no Grade Value at the end of the
semester.
- Late Work (No Tokens Remaining):
- You may only submit up to 48 hours after the Official
Deadline of the Project.
- If you run out of Late Tokens, each additional day late
will have a grade penalty.
- For every late day without a token, a 25% Ceiling
Penalty will be Applied
- So, for one day late without a token, your max
possible score will be a 75%.
- And for two days late without tokens, your max
possible score will be a 50%.
- Contesting Project Grades:
- You have One Week After Grades are Released to
contact your GTA with a grading issue.
- After this one week period, all grades will be fixed.
Exam Policies
- There are no make-up exams.
- There are no drops or replacements for exams.
- Exams are in-person using pencil and paper.
- General Exam Policies: (Unless specified otherwise by
Professor)
- In general, no computers, cell phones, books,
calculators, or other such resources are allowed.
- You can bring in one page (8.5"x11" US Letter) with
handwritten notes (both sides of the paper are allowed) for
each exam.
- Missing an Exam:
- If you will miss an exam, let your Professor know
immediately and we can coordinate alternate times.
- The reason will be verified with documentation and an
alternate time is not automatically granted.
- If an exam is missed without excuse, a valid reason with
documentation will be required.
- This is not commonly granted, but would cover ER
visits, accidents, etc.
- With a valid excuse, we may elect to use your Final
Exam to replace your Midterm in such a case.
- Missing an exam without an excuse or valid reason will
result in a 0 for the exam.
- Do not miss the Final Exam. This requires College
Dean's Approval to make-up.
- Midterm Grades will be Posted via Gradescope and open for
Grade Contesting through that Program.
- Contesting Exam Grades:
- You have One Week After Grades are Released to
initiate a Grade Contest Request in Gradescope with a
grading issue.
- This lets you fill in information about the request and
we can communicate directly on each contested question.
- After this one week period, all exam grades will be fixed.
- For the Final, the exam will not be returned,
however, you can contact your Professor to get a summary of
all missed questions, or to make an appointment to see the
exam.
Quiz Policies
- There are no make-up quizzes.
- Each quiz is on Canvas and you will have 30 minutes
to complete it.
- Quizzes are released Tuesdays at 6:00am and close on
Thursdays at 11:59pm.
- You must Begin your quiz in this time window. If
you do not, it will be Late.
- If you start your quiz on time and finish it after
11:59pm on Thursday, please let your Professor know.
- This is still legal, but Canvas marks it as Late. Your
Professor will fix it to on-time.
- The last weekend before each Midterm or the Finals week
might also have a weekend quiz.
- Timing details of weekend quizzes might be different from
regular quizzes and will be announced when we release the
quizzes.
- Late Quizzes will get a Zero grade.
- Your Lowest Two Quizzes are Dropped at the end of
the semester.
- Contesting Quiz Grades:
- You have One Week After Grades are Released to
contact your Professor with a grading issue.
- After this one week period, all quiz grades will be fixed.
Recitation Policies
- There are no make-up recitations.
- If you show up more than 10 minutes late or leave
early, you will not earn credit for that recitation.
- You may miss one recitation during the semester
without excuse. It will be dropped at the end of the semester.
- If you need to miss a recitation, contact your Professor
for an excused absence.
- These are not commonly given for reasons other than
illness.
- Each Worksheet/Assignment will be scored from 1-3 for your
group.
- This is only for your feedback and has no effect on your
course grade.
- Only working on the recitation with your group will count
for the course grade.
- Recitations are in standard classrooms, so please bring
your own computers when requested by the GTA instructors.
- During the Assembly Programming topics, we will be doing
a lot of programming in recitations.
- Computers are only needed for a couple of the recitations
and one per group is fine.
- Contesting Recitation Participation Grades:
- You have One Week After Grades are Released to
contact your GTA with a grading issue.
- After this one week period, all participation grades will
be fixed.
Computer Accounts
This is a Systems Programming class. Unlike CS 262 or
CS 222, which are general-purpose C courses for any computer
system, this course is based on building programs for a specific
system. For CS 367, that system is Zeus.
Zeus is a Linux computer running Red Hat Enterprise Linux and
is administerd by the College of Engineering and Computing for
our use. Some of our programs will involve libraries that have
been pre-built on Zeus, and some programs will use system
specific features that may only build properly on Zeus.
Connecting to Zeus
Zeus Policies
- All Projects must Compile and Run on Zeus
- All Projects will be Tested and Graded only on Zeus.
- You may develop wherever and using whichever tools you
like.
- You will need to ensure your work builds and runs on Zeus
before submission.
- A project that will not compile on Zeus cannot be graded.
- Remember, C has certain guarantees and others that are
only 'system dependent'. It still needs to run properly on
Zeus to be graded.
- You will need to set up the Campus VPN to access Zeus from
off-campus.
Accommodations
Disability Services at George Mason University is committed to
upholding the letter and spirit of the laws that ensure equal
treatment of people with disabilities. Under the administration
of University Life, Disability Services implements and
coordinates reasonable accommodations and disability-related
services that afford equal access to university programs and
activities. Students can begin the registration process with
Disability Services at any time during their enrollment at
George Mason University. If you are seeking accommodations,
please visit https://ds.gmu.edu/ for
detailed information about the Disability Services registration
process. Disability Services is located in Student Union
Building I (SUB I), Suite 2500. Email: ods@gmu.edu. Phone: (703)
993-2474.
Student responsibility: Students are
responsible for registering with Disability Services and
communicating about their approved accommodations with their
instructor in advance of any relevant class
meeting, assignment, or exam.
Course Accommodations Policies
- Please email or hand your Contact Sheet to your Professor
at the beginning of the semester.
- Accommodations for Test Times will use the Proctoring
Center.
- Homework Times will be Extended in Accordance with the
Contact Sheet Accommodations.
- For Programming Assignments, Contact your Professor before
the Original Deadline for an approved Extension.
Academic Standards (Honor Code)
Academic Standards exist to promote authentic scholarship,
support the institution’s goal of maintaining high standards of
academic excellence, and encourage continued ethical behavior of
faculty and students to cultivate an educational community which
values integrity and produces graduates who carry this
commitment forward into professional practice.
As members of the George Mason University community, we are
committed to fostering an environment of trust, respect, and
scholarly excellence. Our academic standards are the foundation
of this commitment, guiding our behavior and interactions within
this academic community. The practices for implementing these
standards adapt to modern practices, disciplinary contexts, and
technological advancements. Our standards are embodied in our
courses, policies, and scholarship, and are upheld in the
following principles:
- Honesty: Providing accurate
information in all academic endeavors, including
communications, assignments, and examinations.
- Acknowledgement: Giving proper credit
for all contributions to one’s work. This involves the use of
accurate citations and references for any ideas, words, or
materials created by others in the style appropriate to the
discipline. It also includes acknowledging shared authorship
in group projects, co-authored pieces, and project
reports.
- Uniqueness of Work: Ensuring that all
submitted work is the result of one’s own effort and is
original, including free from self-plagiarism. This principle
extends to written assignments, code, presentations, exams,
and all other forms of academic work.
Violations of these standards—including but not limited to
plagiarism, fabrication, and cheating—are taken seriously and
will be addressed in accordance with university policies. The
process for reporting, investigating, and adjudicating
violations is outlined
in the university’s procedures. Consequences of violations
may include academic sanctions, disciplinary actions, and other
measures necessary to uphold the integrity of our academic
community.
The principles outlined in these academic standards reflect our
collective commitment to upholding the highest standards of
honesty, acknowledgement, and uniqueness of work. By adhering to
these principles, we ensure the continued excellence and
integrity of George Mason University’s academic community.
Student responsibility: Students are
responsible for understanding how these general expectations
regarding academic standards apply to each course, assignment,
or exam they participate in; students should ask their
instructor for clarification on any aspect that is not clear to
them.
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 Academic Standards Office. 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 Sanction applied is Level 2 (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!
Course Policies
- You are not allowed to use code from the Internet.
- This includes Stackoverflow, Chegg, Github, ReplIt,
TutorialPoint, or any other site with code.
- You are not allowed to use code from Generative AI.
- All work submitted in this course must be your own
original work.
- The use of AI writing/programming tools, such as
CoPilot, ChatGPT, or VSCode AI plugin, are prohibited in
this course and will be considered a violation of academic
integrity.
- In order to do the higher-level work in this field (CS 471
as well as CS 475, CS 455, CS 440, CS 468), you need to
understand/apply fundamental concepts and skills without the
use of AI tools.
- Practicing without the use of these tools are critical
to the process of learning.
- All academic integrity violations will be reported to the
office of Academic Integrity.
- You are not allowed to discuss any implementation (code)
or design decisions with any other student.
- This includes prior students and students from other
sections.
- You are not allowed to share or use any code from any
other student (including past students)
- This includes posting your code to a public GitHub
repository.
Student Responsibilities
- It is your responsibility to ...
- lock your computers with a password,
- not post your code to websites like Pastebin or ReplIt
that are publicly accessible,
- not post code to any public repositories,
- (If you use services like Github/Gitlab) make sure your
repo is set private.
- guard your USB drives and computers,
- not upload your files to someone else's computer, etc.
- You will be liable for any access gained to your public
or unprotected code.
- If you are in a team with other students for another
class, ensure CS 571 files are protected.
- Make sure none of your work is possible to access by any
other student.
- GTAs are allowed to help you in your Programming
Assignments! But there are some limitations.
- TAs can help you with designing data structures, the
overall algorithm used, C programming in general, and fixing
any bugs.
- TAs can not give you code, allow you to copy code from
someone else, or help you write your code.
Academic Standards Links and Specifics
- All Students are required to abide by GMU's Academic
Standards.
- All work must be your own.
- If we see anything we cannot explain by any other means
except cheating, we are required to submit to the
honor court.
- CS Honor Code Policies Page: https://cs.gmu.edu/resources/honor-code/
- See these 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.
Sexual Harassment and Interpersonal Violence Policies
As a part of George Mason University’s commitment to providing
a safe and non-discriminatory learning, living, and working
environment for all members of the University community, the
University does not discriminate on the basis of sex or gender
in any of its education or employment programs and activities.
Accordingly, all non- confidential employees,
including your faculty member, have a legal requirement to
report to the Title IX Coordinator, all relevant details
obtained directly or indirectly about any incident of
Prohibited Conduct (such as sexual harassment,
sexual assault, gender-based stalking, dating/domestic
violence). Upon notifying the Title IX Coordinator of possible
Prohibited Conduct, the Title IX Coordinator will assess the
report and determine if outreach is required. If outreach is
required, the individual the report is about (the “Complainant”)
will receive a communication, likely in the form of an email,
offering that person the option to meet with a representative of
the Title IX office.
For more information about non-confidential employees,
resources, and Prohibited Conduct, please see University
Policy 1202: Sexual and Gender-Based Misconduct and Other
Forms of Interpersonal Violence. Questions regarding Title IX
can be directed to the Title IX Coordinator via email to TitleIX@gmu.edu, by phone at 703-993-8730, or in
person on the Fairfax campus in Aquia 373.
Student opportunity: If you prefer to
speak to someone confidentially,
please contact one of Mason’s confidential employees in Student
Support and Advocacy (SSAC),
Counseling and Psychological Services (CAPS), Student Health
Services (SHS), and/or
the Office of the
University Ombudsperson.
Privacy
All course materials posted to Canvas or other course site are
private; by federal law, any materials that identify specific
students (via their name, voice, or image) must not be shared
with anyone not enrolled in this class.
To protect your privacy, we also cannot list your GMU 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.
Video recordings of class meetings that are shared only with
the instructors and students officially enrolled in a class do
not violate FERPA or any other privacy expectation.
Personal Privacy Statements
- If we ever do have to have an online session (eg. Snow Day),
we will Never require anyone to have any
cameras/webcams active.
- We believe that requiring any video from you for an online
lecture is an invasion of your personal privacy and of your
space.
- We will never require or even allow the use of any video
cameras.
- Others may have different policies, and that's for them to
decide on the best policies for their own courses. This is
simply our own personal policy.
FERPA and Email
The Family
Educational Rights and Privacy Act (FERPA) governs
the disclosure of education records for
eligible students and is an essential aspect of any
course. Students must use their GMU email account to
receive important University information, including
communications related to this class. Instructors will not
respond to messages sent from or send messages regarding course
content to a non-GMU email address.
Student responsibility: Students are
responsible for checking their GMU email regularly for
course-related information, and/or ensuring that GMU email
messages are forwarded to an account they do check.
All course materials posted to Canvas or other course site are
private; by federal law, any materials that identify specific
students (via their name, voice, or image) must not be shared
with anyone not enrolled in this class.
To protect your privacy, we also cannot list your GMU 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.
Video recordings of class meetings that are shared only with
the instructors and students officially enrolled in a class do
not violate FERPA or any other privacy expectation.
Inclusion
Every student in this class is exactly where they belong and it is
our honor to welcome each of you to join us in learning throughout
this semester. Every student in this class, regardless of
background, sex, gender, race, ethnicity, class, political
affiliation, physical or mental ability, veteran status,
nationality, or any other identity category, is an equal member of
our class.
You have the right to be called by whatever name you wish, to be
referred to by whatever pronoun you identify, and to adjust these
at any point.
If you feel uncomfortable in any aspect of our instruction that
results in any barrier to your inclusion in this course, please
contact your professor directly.
Email Address and Required Subject Information
Prof. Avramovic Email: iavramo2 @ gmu.edu
Prof.
Mughal Email: hmughal2 @ gmu.edu
Prof. Zhong Email: yzhong @ gmu.edu
Email Policies
- Put [CS 367] at the front of your subject so we can
filter it into the right folder.
- Example Subject:
- [CS 367] Question about my quiz 8 grade
- We can only answer emails from a GMU email account.
- We cannot respond to messages sent from or to a non-Mason
email address.