CIT 5950 Computer Systems Programming
Computer Systems Programming
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
CIT 5950 Computer Systems Programming
Course Description
This course introduces students to fundamental concepts in computing systems. The course is divided
into two parts. The first 75% of the course introduces concepts in modern operating systems: processes,
threads, inter-process communication, traps, interrupt-handling, scheduling, virtual memory, and file
systems. The final 25% of the course provides an introduction to networked systems, the Internet, and
network programming. The course will use the C program language and will develop your knowledge on
C system calls, and libraries for process/thread creation and manipulation, signal handling, and network
communication.
Course Learning Objectives
● Explain fundamental concepts in computing systems.
● Implement OS concepts including processes, threads, inter-process communication, traps,
interrupt-handling, scheduling, virtual memory, file systems.
● Describe the basic structure of the Internet and standard network protocols such as TCP/IP.
● Write programs that use system call libraries for process/thread creation and manipulation, signal
handling, and network communication in C.
● Use development and debugging environments necessary for systems programming including
virtual machines, debuggers, and memory leak checkers.
Course Prerequisites
CIT 593 Introduction to Computer Systems
Course Textbook
Recommended
Modern Operating Systems, 4th Edition
By: Andrew S. Tanenbaum and Herbert Bos
ISBN: 978-0133591620
Advanced Programming in the UNIX Environment, 2nd Edition
By: W. Richard Stevens and Stephen A. Rago
ISBN: 978-0201433074
Grading & Assessment
You must attempt all graded assignments to pass the course. If you have any questions or concerns
about grading or progress in the course, please reach out to the instructor.
This course will use a variety of assessments to determine whether learners understand and can apply
the key concepts and skills that the course teaches. This includes:
Type % Description
CIT 5950 - Computer Systems Programming | Fall 2023 | Property of Penn Engineering
Concept
Comprehension
Quizzes
7% There are seven concept comprehension quizzes (with each one
covering every two modules) providing an opportunity to review the
concepts you will need for the homework.
Individual Assignments
(Projects)
63% There are four projects (Project 0, 1, 2, 3). Projects 1-3 are made up
of multiple parts with separate due dates. There is no group work in
this course, but Project 1c includes a peer review. The project
grading breakdown is as follows:
Project 0 - 5%
Project 1a - 5%
Project 1b - 5%
Project 1c - 2%
Project 2a - 8%
Project 2b - 8%
Project 3a - 10%
Project 3b - 10%
Project 3c - 10%
Exam 1 15% There are two exams and they will use live online proctoring. The
two exams contribute equally to the final grade and Exam 2 is not
cumulative. Exam 1 covers Modules 1-8, Exam 2 covers Module
9-14.
Exam 2 15%
Graded assessments will use Canvas or Gradescope for submission. Exams will use Gradescope for
submission. Scores in Gradescope do not immediately sync with Canvas. The course manager manually
releases them. For exams, syncing is done as the final step when all exam regrades are finalized.
The class average is usually an A-. Students who make their best attempt to complete all assignments
and projects will usually not get a grade lower than a B. The best way to get a bad grade for this class is if
you do not submit some assignments, are a no-show on discussion forums and/or exams and are found
cheating in exams. The instructor will not hesitate to give an F grade to students caught cheating and
found guilty by the Office of Student Conduct.
Please read the instructions for each assignment very carefully to make sure you know what to
submit to receive credit!
Absolute scale will be used for grading this semester. All scores will be rounded up and the grading scale
will be applied to the rounded final score of a student.
Grading Scale
98 and above: A+
90-97: A
85-89: A-
80-84: B+
75-79: B
70-74: B-
65-69: C +
60-64: C
55-59: C-
50-54: D +
45-49: D
40-44: D-
39 and below: F
CIT 5950 - Computer Systems Programming | Fall 2023 | Property of Penn Engineering
Late Policy/Extensions
There is no policy for submitting an assignment late. Extensions may be approved for special
circumstances (typically, medical reasons) on a case by case basis. Please fill out the extension request
form by navigating to the course resources in Canvas. Please fill out this form for any and all extension
requests you wish to submit. These extension requests must be submitted at least 24 hours before the
assignment deadline. If your request is granted, you will see updated deadlines reflected in Canvas by
Mondays at 5 PM ET. You will need to fill out this form for each assignment you wish to have an extension
for.
Regrade Requests
You will be able to submit regrade requests for only the exams in this course. The teaching team will
announce the length of the regrade request period when they publish the exam grades. Regrade requests
for exams in Gradescope must be submitted through Gradescope. When submitting a regrade request,
please explain (in detail) why you feel the grading is incorrect.
University Policies and Resources
This course will be conducted in accordance with all university policies. The University and the School of
Engineering & Applied Science also offer numerous resources to students that may be useful. Please let
the instructors know if you have any questions or concerns related to the following:
Code of Academic Integrity
Please note that searching for solutions or code online is a violation of academic integrity.
Sharing solutions or code with another student (unless working on a group project or other
collaborative assignment) is also a violation of academic integrity. This includes posting solutions
and code publicly online, even after you've completed the course. If you discover publicly viewable
solutions for the assignments of this course, please let the course staff know immediately.
Students with Disabilities and Learning Differences
Students with disabilities are encouraged to contact Weingarten Learning Resource Center’s Office for
DS Disability Services for information and assistance with the process of accessing reasonable
accommodations.
Counseling and Psychological Services (CAPS) :
Extra Credit
There is no opportunity for extra credit in this course.
CIT 5950 - Computer Systems Programming | Fall 2023 | Property of Penn Engineering
Other Course Activities
The following activities are not mandatory, but will greatly support your success on the graded
assignments.
Discussion Forum
Discussion forums (on Ed-Discussion) are designed to give you optional extra practice with the material
and to see examples of how your classmates are thinking and working.
Recitation
Recitations will not be held weekly but will be held at the beginning of each project and after Exam 1.
These sessions will review the upcoming projects and offer an opportunity to have your questions
answered.
Additional Segments
The professor may add additional optional segments to support the class as needed.
Creating an Inclusive Environment
All members of the course community – the instructor, TAs, and students – are expected to work together
to create a supportive, inclusive environment that welcomes all students, regardless of their race,
ethnicity, gender identity, sexuality, religious beliefs, physical or mental health status, or socioeconomic
status. Diversity, inclusion, and belonging are all core values of the MCIT Online program, the instruction
staff, and this course. All participants in this course deserve to and should expect to be treated with
respect by other members of the community.
Discussion boards, messaging channels, recitations, office hours, and group working time should be
spaces where everyone feels welcome and safe. In order to facilitate a welcoming environment, students
of this course are expected to:
● Exercise consideration and respect in their speech and actions
● Attempt collaboration and consideration, including listening to opposing perspectives and
authentically and respectfully raising concerns, before conflict
● Refrain from demeaning, discriminatory, or harassing behavior and speech
CIT 5950 - Computer Systems Programming | Fall 2023 | Property of Penn Engineering
If you are unsure which office to contact, please contact the instructor or any Penn Engineering Online
Learning staff member.
Getting and Giving Help
TA and Faculty Support
TAs will hold private office hours weekly. These will be Live drop-in private office hours. Live drop-in
private office hours are indicated on the course Canvas calendar. TAs will help a queue of students on a
first-come-first served basis through a Penn site called OHQ.io and meet one on one with students. More
information on OHQ.io can be found in the course resources and the getting started module.
Your professor will be available for a limited number of private meetings per week, depending on the
needs of the class, and will hold weekly open office hours.
Collaboration Guidelines
In the professional world of software development, collaboration—including using code that others have
written—is both practical and ubiquitous.
However, to prepare for entering that professional context, you need to develop a full set of software
development skills so that you are both able to create your own code and evaluate the quality of someone
else’s code that you might use.
In the context of this course, independent work and evaluation are critical. Do not collaborate with
others on individual graded assignments unless it is explicitly indicated. The inappropriate
collaboration will be considered cheating and considered under Penn’s Code of Academic Integrity.
Discussion forums and recitations are collaborative—please take advantage of those times to work with
your colleagues. For general communication with your colleagues, use your Slack channels or Slack
direct messages.
Forming study groups to understand the material is also a good idea, as long as you stay on the
conceptual level and are not collaborating on the graded assignments directly.
Note: When in doubt always ask the instructor or TA first, to avoid any potential collaboration that can
lead to academic dishonesty.
Do not cheat. Please note that searching for solutions online is the same as cheating. Posting
solutions online is also considered cheating. If you are caught posting solutions or code to a publicly
accessible location (like StackOverflow or GitHub), it will be considered cheating. If you do use GitHub
(or a similar cloud-based code management system) to set up a remote code repository, YOU ARE
REQUIRED TO KEEP THAT REPOSITORY PRIVATE. Any violations to these guidelines will result in an
F grade. This grade will be applied retrospectively if you violate them after the class is over.
You can further read Penn's Code of Academic Integrity page on this subject matter, as well as the SEAS
Graduate Student guidelines on the code of ethics.
Plagiarism Policy
The first instance of homework plagiarism will be handled by the instructor and may include escalation to
the Office of Student Conduct.
Second instances or exam plagiarism will be turned over immediately to the University of Pennsylvania
Office of Student Conduct.
CIT 5950 - Computer Systems Programming | Fall 2023 | Property of Penn Engineering
Regardless of previous work in the course, the penalty for plagiarism is the failure of the course
(regardless of current course average), and potential permanent notation on your academic record that
will follow you to all future academic institutions and possibly future employers. If you are unfamiliar with
what constitutes plagiarism at Penn, visit Penn’s Code of Academic Integrity.
Access to Materials and Content Before and After Graduation
If you would like to retain copies of your submitted assignments, you must download them from
Gradescope, Canvas, Codio, and any other platforms that you submit to during the semester in which you
are taking that course.
Your SEAS account will be permanently deleted in the fall following your graduation. Once your SEAS
account is deleted, we will be unable to re-grant you access to the MCIT Online Program materials and
course content. Therefore, if you would like to retain the content from each course after you
graduate from the program, you must download the content locally to your computer during the
semester that you are in the course.
Recording Notice
Public office hours, recitations, and other live events will be recorded, used, and may be made available
to class participants during the current semester as well as students who take the class in future
semesters.
Private office hours will also be offered and are not recorded. Students who do not wish to attend the
publicly-recorded office hour may attend the private office hours.
Summer 2023 Course Schedule and Important Dates
Dates are subject to change. Please check Ed-Discussions for announcements regarding schedule
changes.