CSSE132 - Introduction to Systems Programming

Rose-Hulman Institute of Technology

Computer Science and Software Engineering Department

Fall 2026-2027

Course: CSSE132-01
CRN: 1191

Description

Provides students with understanding of computer system level issues and their impact on the design and use of computer systems. Students will study low-level programming (assembly) and memory operations, representation of various types of data and programs in memory, and resource/efficiency trade-offs. System requirements such as resource management, security, communication and synchronization are studied and basic systems tools for these tasks are implemented. Course topics will be explored using a variety of hands-on assignments and projects.

Prerequisites

CSSE 120

Course Outcomes

Students who successfully complete this course should be able to:

  1. Describe the functions of common computer system hardware elements including CPU, memory hierarchy and input/output devices.

  2. Implement and analyze software in the C programming language using:

    • Standard C data types
    • Binary arithmetic, boolean and logical operations
    • Functions
    • Arrays
    • C Strings
    • Pointers and Pointer Arithmetic (including Function Pointers)
    • Static and Dynamic memory allocation techniques
    • User and file input/output
    • Command-Line arguments
  3. Discuss why certain abilities such as information representation, network communication, input/output, and security require support from multiple layers of a computer system.

  4. Design and implement simple IP-based network applications using socket level programming and C.

  5. Demonstrate ability to perform tasks like these in a variety of operating environments including the Linux system environment:

    • compile software
    • debug software
    • secure files
    • leverage a version control system
    • manipulate data
    • command-line (shell) navigation and manipulation

Schedule

The course schedule page has the topics and due dates for the course materials. Please bookmark that page.

Meeting Times

Section 1 (CRN 1191) M
T
W
F
1:00-1:50 p.m.
1:00-1:50 p.m.
1:00-3:50 p.m.
1:00-1:50 p.m.
Olin 159
Olin 159
Olin 159
Olin 159

Instructors

Section Instructor Office Email
1 Olga Scrivner Moench F204 scrivner@rose-hulman.edu

Textbooks

Homework

The homework assignments are listed on the class schedule. Homework is due by 11:59pm on the stated date. All assignments, written and coding, should be submitted to Gradescope (see link from Moodle page.)

Solutions will generally be available the day after homework is due. Therefore, no late homework submissions are accepted. Solutions to the homework should be presented using good style. Your name should appear at the top of each page. Be sure to state any assumptions that you make to solve the problem. Above all it must be legible--if the graders can't read it, you won't get credit.

Quizzes

Many classes will involve in-class quizzes, which are used like worksheets. Quiz solutions will be regularly posted. Quizzes will not generally be collected for credit---their main purpose is to support student learning. However, completing quizzes is one element of your Class Participation grade.

Class participation

A small amount of the overall grade is for class participation. Part of this is class attendance, which is required. Some amount of this grade will be determined subjectively by the instructor: to earn credit for this category, students should arrive on time to class in a state to learn, actively engage in class time, and generally be a good "citizen" of CSSE132.

Laboratory Assignments

There are several labs listed on the on the schedule. The labs utilize Linux, C, and assembly language. Completed labs are submitted via in-person verification and Gradescope. When done in partners, both of you must be able to demonstrate your solutions.

Exams

There will be two midterm exams and a final exam.

Grading

You must earn a passing (60%) exam average (weighted by the exams' weights) to pass the course.

Assuming the above "exam average" conditions are met, the overall grade is computed according to the following weights.

Class participation 5%
Homework 16%
Labs 16%
Exams 63% = 18% + 18% + 27%

Generally, 90-100% is an A, 85-89% is a B+, etc.

The above is a guideline that we typically follow. Please understand that it is not a promise. We will do our best to conform to the institute-wide grading policy described in the Grade Descriptions section of the registrar's web page. As you read it, note in particular that phrase "thorough competence to do excellent work" appears in the description of the "B" grade (the standard for "A" is even higher), and it further states that "B" and "B+" will not be given for mere compliance with the minimum essential standards of the course.

Collaboration

Collaboration is encouraged on homework and laboratories. It is prohibited on exams.

When you collaborate, you must:

Working out a homework solution as a group can be acceptable collaboration if you follow the guidelines above. Each individual is responsible for understanding the entire solution. For homework, this means that once a group solution has been achieved, each collaborator must rework the problem and write up the solution independently.

If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that we do not take lightly. Nor should you.

You should never look at another student's code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.

Use of Internet, AI, and LLM Tools

CSSE132 is a course about learning how systems work, including how to debug, investigate unfamiliar behavior, and use technical resources effectively. Appropriate use of documentation, Internet resources, and AI tools can support that learning. The key expectation is that the work you submit must reflect your own understanding. You are responsible for being able to explain, debug, and modify anything you submit.

Allowed use

You may freely use course notes and provided materials, official documentation and man pages, Internet searches for syntax, APIs, compiler errors, and general concepts, and GDB or other debugging tools. You may use AI/LLM tools, such as ChatGPT or NotebookLM, to explain concepts or course material, interpret compiler or debugger output, help understand an error message, suggest debugging strategies, explain unfamiliar C or ARM64 syntax, create additional practice questions or examples, or summarize or compare resources. You may also ask these tools questions about code that you wrote in order to better understand or debug it.

AI or Internet resources may assist with parts of homework or lab work, but they should not replace your own problem solving. For example, you may ask an AI to review your approach, give hints after you have attempted a problem, suggest test cases, or explain or critique code you are working on. You must be able to explain the resulting code or solution, reproduce the reasoning, modify the work when requirements change, and debug it without simply asking the tool for another complete answer.

AI Assistance Disclosure

The goal of disclosure is transparency, not punishment. Every coding submission must include an AI-use disclosure comment, even if no AI tools were used. Put the following template near the top of the primary source file:

/*
- AI Assistance Disclosure:
- Tools used: None
- How used: None
 */

If you used an AI-assisted tool, provide a short, accurate description. For example:

/*
- AI Assistance Disclosure:
- Tools used: ChatGPT, Codex
- How used: Asked for help interpreting a compiler error and for suggestions
- on test cases. I wrote and verified the submitted implementation.
 */

Tools that should be disclosed include Claude, Claude Code, GitHub Copilot, NotebookLM, AI-enabled IDE features, plugins, and coding agents. You do not need to provide a transcript or list every prompt. A submission without the required disclosure is incomplete and may be returned for correction before it is graded. Intentionally providing a false or misleading disclosure may be treated as an academic integrity issue.

Disclosure does not make otherwise prohibited use acceptable. Regardless of the tools used, you remain responsible for understanding everything you submit. You may occasionally be asked to explain your code, describe how part of your solution works, or make a small modification to demonstrate your understanding.

Written Homework

The expectations for written homework are more restrictive. Unless an assignment explicitly states otherwise, AI tools should not be used to solve assigned problems or generate answers. You may use AI tools to support studying before or after working on the problems, for example to review a course concept, explain terminology, generate additional practice problems, review notes or course materials, clarify a concept you do not understand, or discuss why an approach you already attempted may be incorrect.

You should not paste an assigned homework problem into an AI tool and ask it to solve it, ask an AI tool to generate the reasoning or answer you will submit, or use AI-generated solutions as a model and rewrite them as your own work. The purpose of written homework is to practice the reasoning that you will need to perform independently. If AI materially influenced your submitted written work, disclose that use according to the assignment instructions.

Not allowed

Unless an assignment explicitly says otherwise, you may not ask an AI, another person, or an online service to solve an entire homework or lab problem for you and submit that solution as your own; copy solutions from previous students, solution repositories, websites, or other unauthorized sources; submit code that you cannot explain or reasonably reproduce; use AI or unauthorized Internet resources during quizzes or exams; use tools to obtain or reconstruct instructor solutions or unreleased course materials; or share completed solutions in ways that enable other students to submit them as their own work.

Individual assignments, labs, quizzes, or exams may specify stricter or more permissive rules. Those instructions take precedence over this general policy.

Academic Integrity and CSSE Integrity Committee Procedures 

It is critical to maintain academic integrity. It is essential for all students to cite any and all sources of help received in completing coursework. This practice not only fosters a culture of honesty and transparency but also prevents misunderstandings that might otherwise escalate to formal proceedings. Students should also be aware of what is appropriate help on homework assignments – see What Constitutes Misconduct. To ensure fairness and responsibility, any instances of suspected misconduct will be handled through the CSSE Integrity Committee. 

If a case of suspected misconduct arises, it will be submitted to the CSSE Integrity Committee for review (see Policies and Procedures) and possible penalties (see IntegrityPilotPolicy). The process includes an initial review of the evidence by the committee, a time for students to explain or admit to potential misconduct, and potentially a hearing to examine the circumstances and evidence. Students are encouraged to continue their studies and engage with the course material and instructor normally throughout the investigation. 

This policy can also lead to activating the Institute Academic Integrity Policy, described here.

It is expected that any work submitted for assessment represents the intellectual work of the individual(s) submitting the work. Any attempt to pass off the intellectual work of another (including the work generated by Large Language Models like ChatGPT) as their own or without proper attribution is an example of academic misconduct and is subject to the penalties described in the Rose-Hulman Academic Rules and Procedures and Student Handbook documents.