Skip to main content
  1. /classes/
  2. Classes, Spring 2026/
  3. CS 2470 Spring 2026: Course Site/

CS 2470 Spring 2026: Syllabus

·1639 words·8 mins·
Systems Programming in C/C++

← Back to Course Site

Course Catalog:
Gives students who are already proficient programmers experience in systems-level programming in C/C++. In particular, students learn how to create C/C++ programs that interact with the hardware and other software on a machine. Springs.
Prerequisite(s): CS CS2370

Course Info
#

Student Learning Outcomes
#

Successful students will:

  • Be able to write and run low level computer programs to accomplish system-level tasks.
  • Be comfortable with the C programming language.
  • Be familiar with basic concepts in Unix-style systems programming

Texts
#

Students are not required to purchase a commercial textbook for this course.

Recommended text:

  • The C Programming Language, 2nd Edition, by Kernighan and Ritchie

Freely available textbooks:

Grading
#

Thing Weight
Homework 40
Labs 40
Project 20

The number of points available in an assessment may (or may not) exceed the denominator used in the grade calculation. For example, if the final exam offers 104 points out of 100, then a perfect score would count as 26% towards the final course grade.

Letter grades

≥ 93 → A, ≥ 90 → A-,
≥ 87 → B+, ≥ 83 → B, ≥ 80 → B-,
≥ 77 → C+, ≥ 73 → C, ≥ 70 → C-,
≥ 67 → D+, ≥ 63 → D, ≥ 60 → D-,
else (< 60) → F

Attendance

Attendance is required for all class meetings. You must check in to the online attendance tool within 5 minutes of the start of the period to receive credit for attendance. If you miss more than four meetings then each subsequent unexcused absence will reduce your final grade by 4 percentage points.

No makeups for unexcused lab absences. Any class meeting might be a lab.

Homework

Approximately each week there will be a homework assignment to be completed outside of class.

Minimizing the use of external resources is recommended, and academic honesty rules will be strictly enforced.

Homework will be posted on Inkfish. Check Inkfish regularly for upcoming due dates.

Homeworks submitted after the deadline loses 1% per hour late (round up) to a maximum penalty of 100%.

Labs

Approximately every other week there will be a lab assignment to complete during the class period. Labs will only be accepted before the end of the lab period, and only when submitted from a lab workstation.

The purpose of this course is to teach the skill of computer programming. Students need to practice writing programs themselves without external help. Therefore, the following rules apply to lab assignments:

  • Personal electronics may not be used. If they are brought to lab, they must be kept in a closed container like a backpack.
  • Only approved web resources can be used: Inkfish, the course site, provided lecture notes, the textbooks(s), the official programming language documentation, and anything directly linked from the current lab assignment.
  • That means no Google and definitely no LLM Chatbots during labs.
  • Students who intentionally or repeatedly violate this policy will be asked to leave and will not be able to complete that lab assignment.
  • These specific rules may be overridden by the instructions in individual lab assignments.

During the final exam period we will do one final lab.

Inkfish and Script Grades

Labs and homework will be provided through an online web application called Inkfish and must be submitted through the same system. Any solutions for lab or homework assignment sent by email will not be accepted and will incur a 5% grade penalty on the associated assignment unless the code is sent as a direct reply to an email requesting it.

A portion of your grade for labs and homework assignments may be generated by an automatic grading script which runs when you submit your work. Unless there is a clear bug 🪳 in the script, the script output is that portion of your grade and will not be adjusted manually. You are being graded on getting the script to give you points. You should review the output, make corrections, and resubmit before the deadline if you are unhappy with the script results.

Script grades will be reduced if you submit work inconsistent with the text or spirit of the assignment, such as hard-coding outputs that should be calculated.

Teams

You may be assigned to work with a partner. In such cases, pair programming is required. In assigning partners, sometimes there ends up being a team of one or (under rare circumstances) three.

All team members are responsible for and get credit for any work submitted as a team. Keep in mind that pair programming means you should not be doing work for team assignments on your own.

Project

At the end of the semester there will be a programming project.

This is like a homework, but it’s larger, more difficult, and worth more points.

Grade Appeals

If you think you received an incorrect grade, send me an email describing why your grade is wrong and how you think it should be corrected.

If the grade isn’t clearly wrong, I will ask you to stop by my office hours so we can discuss the issue in more detail.

Any grade concerns must be raised within two weeks of the grade being posted.

Fair Grading Policy

All grading in this class is subject to the university Fair Grading Policy.

Excused Absences

Absences will be excused and make-up work allowed only for absences covered by the university Excused Absence Policy.

If you know you will be missing a class meeting in advance you must contact the professor before the meeting. For unforeseen an unavoidable absences, please contact the professor as soon as reasonably possible.

Late Registration

If you register late for the course please contact the professor to discuss completing any missed assignments as soon as possible.

Course Evaluations

Course evaluations can be a valuable tool to determine how the semester went. They’re more useful with a higher response rate. You should do your course evaluations.

Class Announcements

Class announcements will be posted on Canvas and/or sent to your university email address. Make sure to check both regularly.

Resources
#

Tutoring
#

There should be evening tutoring offered by the college. See the course website for more details. The PASS Office also offers individual tutoring.

Accommodations
#

Plymouth State University is committed to providing students with documented disabilities equal access to all university programs and facilities. If you think you have a disability requiring accommodations, you should contact Campus Accessibility Services (CAS), located in Speare (603-535-3300) to determine whether you are eligible for such accommodations. Academic accommodations will only be considered for students who have registered with CAS. If you have authorized CAS to electronically deliver a Letter of Accommodations for this course, please communicate with your instructor to review your accommodations.

Academic Integrity
#

Please carefully read and be familiar with the university Academic Integrity Policy. Especially don’t do any of the things in the list of examples of academic integrity violations. Make sure to review the penalties for repeated offenses.

The primary subject of this class is writing small computer programs. In order to learn that skill, you need to practice it by completing the programming assignments by writing code yourself (or with your team on team assignments).

Do not:

  • Submit code that was written for an assignment in this class by someone who is not on your team.
  • Share solution code for any assignment in this class with anyone who is not on your team.
  • Post solutions for assignments in this class publicly.
  • Access unauthorized resources in a lab or exam.
  • Search the web for solutions to assignments in this class or similar classes.

Do:

  • Use starter code and small snippets from official documentation as a starting point for your solutions.
  • (On homework, not in labs) Ask LLM chatbots questions to clarify concepts and give short code samples to illustrate specifics.

Cheating will be handled as follows:

  • During an exam or lab, if you are caught cheating or acting in a way that appears to facilitate cheating (e.g. using unauthorized electronics) you will be asked to leave and will not be allowed to complete the assignment. In lab, you may get a warning first.
  • The default penalty for cheating on any assignment is zero grade on that assignment.

Partner assignment are expected to be done working together. If your partner cheated on an assignment and submitted it without you seeing, you still get a zero on that assignment.

Tentative Schedule
#

The initial plan is to have homework due at end-of-day Tuesday.

Week Date Topic
1 Jan 19 † Introduction, Shell
2 Jan 26 C and Assembly HW 01, Lab 01
3 Feb 2 C Language Intro HW 02
4 Feb 9 ‡ The Stack and Strings HW 03, Lab 02
5 Feb 16 malloc() and free() HW 04
6 Feb 23 The Heap, Address Space HW 05, Lab 03
7 Mar 2 File I/O HW 06
8 Mar 9 Command parsing HW 07, Lab 04
-- Mar 16 ---- Spring Break ----
9 Mar 23 System Call I/O HW 08
10 Mar 30 Processes and fork() HW 09, Lab 05
11 Apr 6 Network Client HW 10, Lab 06
12 Apr 13 A bit about C++ HW 11
13 Apr 20 Redirects and Pipes HW 12
14 Apr 27 Wrap-up, Review Redo a HW and Lab
- May 4 Finals Week Final Project, Final Lab
  • † No class on Monday, Jan 19 (MLK Day)
  • ‡ Ski Day on Wednesday, Feb 11 (no day classes; graduate evening classes will be held)
Nat Tuck
Author
Nat Tuck