Course Homepage

Syllabus

Brent Pappas

Course Overview

Topic Info
Course COP 3402 - Systems Software
School University of Central Florida
Semester Fall 2026
Section 001
Prerequisites See below
Lectures Tuesdays and Thursdays 12:00 PM - 1:15 PM
Location BA1 O119
Final Thursday, December 10, 2026 10:00 AM – 12:50 PM (link)
Instructor Brent Pappas brent.pappas@ucf.edu
TA(s) Sanan Hasanov

Prerequisites

Office Hours

Person Dates Weekdays Time Location
Sanan 08/31 - 12/09 M W F 12:30 PM - 2:30 PM HEC 249
Brent 09/01 - 12/08 Tu Th 11:15 PM - 12:00 PM HS2 244
Brent 09/01 - 12/10 Tu Th 1:15 PM - 2:00 PM HS2 244

Labs

Person Dates Day and time Location
Sanan 09/04 - 12/04 Fridays, 9:30 AM - 10:20 AM CB1 O103
Sanan 09/04 - 12/04 Fridays, 10:30 AM - 11:20 AM CB1 O103
Sanan 09/04 - 12/04 Fridays, 11:30 AM - 12:20 PM CB1 O103

Description

This course overviews the use and creation of systems software. In the first half of the course, students will learn how to interact with systems software on the Linux command line, and the basic principles behind systems software. This includes concepts such as hierarchical file systems, file tables and descriptors, system calls, process creation and management, and inter-process communication (e.g., redirection and pipes). Students will then apply these principles while using common software development tools such Git, Make, Vim, and Emacs to create their own system software in C.

In the second half of the course, students will use the ANTLR parser generator and C++ to create a compiler for a toy language. Students will learn and apply the basics of lexing and parsing to convert source code into an abstract syntax tree (AST). They will then use the visitor design pattern to define how to translate different nodes in an AST (e.g., arithmetic, branching constructs, function calls) into x86 assembly code.

Learning Outcomes

By the end of the first half of this course, students will be able to:

By the end of the second half of this course, students will be able to:

Schedule

# Date Topic Video Board Reading HW Exercise Project Due
01 08/25 Introduction Video Board Eustis, then Vim or Emacs hw1
02 08/27 The command line Video Board LPI sec 1.1–1.2, 2.1–2.7 hw2
03 09/01 Version control Video Board 21st ch 4 hw3 vc
04 09/03 Build automation Video Board 21st ch 3 hw4 hello
05 09/08 File basics Video Board Unix sec 1–9 hw5
06 09/10 System calls Video Board LPI sec 3.1–3.4, 4.1–4.9 hw6 vc
07 09/15 System calls LPI sec 18.1–18.4
08 09/17 Process basics LPI sec 6.1–6.6 myfind hello
09 09/22 Process basics LPI sec 24.1–24.2
10 09/24 Process creation LPI sec 27.1–27.4
11 09/29 Redirection LPI sec 5.1–5.5
12 10/01 Pipes LPI sec 44.1–44.4
13 10/06 Shells 21st ch 2 proc
14 10/08 Midterm review myfind
15 10/13 Midterm
16 10/15 Source to process slang-format
17 10/20 Compiler basics
18 10/22 Compiler basics slang-format
19 10/27 Compiler project codegen1 proc
20 10/29 Arithmetic
21 11/03 Branching
22 11/05 Pointers codegen2
23 11/10 Pointers
24 11/12 Functions codegen3 codegen1
25 11/17 Functions
26 11/19 Project review codegen2
27 11/24 Stack smashing
11/26 Thanksgiving Break - no lecture
28 12/01 Final review codegen3
29 12/09 Final
12/12 Project regrade request deadline

Grading

Assignments

Category Points per Assignment Quantity Total
Attendance 4 N/A 4
Exercises 4 2 8
Midterm Exam 8 1 8
Final Exam 12 1 12
Homework 1 20 20
Projects 8 6 48
Total 100

All assignments are individual assignments and should be completed alone.

Late Policy

Category Unexcused Late Policy
Homework No late homework or regrade requests for homework
Exercises Can request a regrade only up to two lecture days late, with a 1 point deduction
Projects Can request a regrade until the final project regrade request deadline, with 1 point deduction from each submission

Excused late submissions are accepted per UCF policies on excused absences and missed coursework. Please see the syllabus section on excused absences.

Homework

Exercises

Projects

Frequently-asked Project Questions (Read Before Emailing Me)

Please read the following brief list of frequently-asked questions before emailing me project-related questions. If this section does not answer your question, then please inform me of your project-related issue via email. If I discover that your issue could have been resolved by simply reading this FAQ, then I will reply to you with a link to this section and instructions to read it. Please be polite when emailing me.

  1. Question: My code passes all public test cases, implying that I should receive at least half credit for the project since half of all test cases are made public, yet I received less than half credit on the project; why is this?
    • Answer: There are two likely causes for this:
      1. The code pushed to your remote repository does not match the code in your local repository. Please review the version control exercise for steps to synchronize a local git repository with a remote git repository.

      2. Your remote repository contains compiled program binaries, such as executable files or .o files. Not only is pushing such generated files a bad practice, it can also lead to an out-of-date program binary being tested by the automatic grading scripts, instead of a freshly compiled binary reflecting your source code’s behavior.

        For instance, let’s imagine you were to push your mysh executable to your remote repository for the proc project. To test your project, the automatic grading script would first clone it, then run make to build the mysh target. However, since your repository alrady contains a file called mysh, make will not perform any actions, assuming the file is up-to-date. The grading script will then proceed to test your pushed msyh executable, instead of the mysh executable resulting from compiling your pushed source code.

        To fix this problem, first remove any executable files and .o files from your repo with rm, and then stage, commit, and push your updated code. If you would like help with this, please ask, or better yet come visit me during office hours.

  2. Question: I’ve pushed my code to my remote repository, but why is it not there when I run git clone to perform the self-check?
    • Answer: You may have accidentally created a git repo in your home directory, or in your ~/cop3402fal2026 directory. To check if this is your issue, run:

      ls -d ~/.git 2>/dev/null
      ls -d ~/cop3402fal2026/.git 2>/dev/null

      If either of the above commands printed the path to a .git directory, then run these commands to delete it:

      rm -fr ~/.git
      rm -fr ~/cop3402fal2026/.git

      Now navigate back into your project directory with cd, and try again to stage, commit, and push your code. Please review the version control exercise for steps to synchronize a local git repository with a remote git repository.

Exams

Attendance

Letter Grades

Letter Point Threshold
A >= 90
B >= 80
C >= 70
D >= 60
F < 60

Requirements

Hardware

All students will need access to a computer that can connect to UCF’s eustis server to complete course assignments.

Inexpensive laptops (less than $100) can run a Linux-based OS efficiently. Chromebooks are often very cheap and can use the Chrome Secure Shell Extension to connect to eustis.

Textbooks

Book Abbreviation Link Chapters to Download
21st Century C 21C Link Preface, 1, 2, 3, 4, 5
The Linux Programming Interface LPI Link 1, 2, 3, 4, 5, 6, 18, 24, 25, 26, 27, 44

Textbook Download Instructions

The digital versions of the course textbooks are available for free through the UCF Libraries. Accessing the textbook requires that you authenticate (log in) with your NID. You are permitted to read the textbook online and/or download content to read offline. If PDF downloads are available for your book, this method is recommended to ensure uninterrupted access to the content. Any unauthorized sharing of the textbook content is in violation of the license agreement between the publisher and university. The license permits access to this textbook for current UCF students, staff, and faculty only. Contact your librarian if you have any questions.

How to download textbook chapter PDFs

Notice in the first circle that it tells you how many PDF pages can be downloaded per day. It starts at 164 per day, then resets after 24 hours.

Scroll down and see the next circled area. This is where you find the Download PDF links. Do those. Do not do the “Read Online” or “Download Book” options on the left (as these options prevent other students from using the eBook).

Thanks to Lily Dubach for getting students book access and providing the instructions above.

Core Policy Statements

Unauthorized Assistance with Coursework

Receiving a work product (e.g., a homework paper or code submitted in response to an assignment) from other individuals (other students in the course, former students, tutors, etc.) is considered “Unauthorized assistance”. Giving such a work product to other individuals, either willfully or through negligence, is considered “Helping another violate academic behavior standards.” Copying a work product from submissions from past semesters, or copying from an online repository is considered “Plagiarism.” You are allowed to discuss class materials and high level concepts related to the assignment with others. However, you must work individually when creating the work product. For programming assignments, you must design algorithms, data structures, and develop code individually. Any violation to the above is considered Academic Integrity Violation. Students found to be in violation of academic integrity will be reported to the Office of Integrity and Ethical Development, in addition to receiving a zero grade on their assignments. Following the report, The Office may conduct hearing, and if found in violation, a student may receive penalties, up to and including dismissal from the university. Unless stated explicitly as team/group assignments, students should assume that assignments are to be performed individually, or ask the instructor for explicit clarification.

Excused Absences

Make-up Assignments for Health Issues

A student who is suffering health issues preventing them from attending lecture or completing course assignments on-time may submit requests for excused absences, make-up exams, and deadline extensions. In all cases, the student must provide a note signed by a medical professional. Additional verification may be requested for students who repeatedly request excused absences for medical reasons.

Make-up Assignments for Authorized University Event or Co-curricular Activities

Students who represent the university at an authorized event or activity (for example, student athletes) and who are unable to meet a course deadline due to a conflict with that event must provide the instructor with documentation in advance to arrange a make-up. No penalty will be applied if the student gives advance notice and communicates with the instructor following UCF policy. In the case of an authorized university activity, it is your responsibility to show the instructor a signed copy of the Program Verification Form for which you will be absent, prior to the class in which the absence occurs or due date you need extended. For more information, see UCF Policy 4-401.

Make-up Assignments for Religious Observances

A student who desires to observe a religious holy day of his or her religious faith must notify their instructor as soon as practicable prior to the observance. Students who are absent because of religious observances will be permitted a reasonable amount of time to complete any missed work. For more information, see UCF Regulation 5-020.

Academic Integrity

The Center for Academic Integrity (CAI) defines academic integrity as a commitment, even in the face of adversity, to five fundamental values: honesty, trust, fairness, respect, and responsibility. From these values flow principles of behavior that enable academic communities to translate ideals into action. http://academicintegrity.org/

The UCF Creed: Integrity, scholarship, community, creativity, and excellence are the core values that guide our conduct, performance, and decisions.

  1. Integrity: I will practice and defend academic and personal honesty.
  2. Scholarship: I will cherish and honor learning as a fundamental purpose of my membership in the UCF community.
  3. Community: I will promote an open and supportive campus environment by respecting the rights and contributions of every individual.
  4. Creativity: I will use my talents to enrich the human experience.
  5. Excellence: I will strive toward the highest standards of performance in any endeavor I undertake. The following definitions of plagiarism and misuse of sources come from the Council of Writing Program Administrators http://wpacouncil.org/node/9 and have been adopted by UCF’s Department of Writing & Rhetoric.

Plagiarism

In an instructional setting, plagiarism occurs when a writer deliberately uses someone else’s language, ideas, or other original (not common-knowledge) material without acknowledging its source. This definition applies to texts published in print or on-line, to manuscripts, and to the work of other student writers.

Misuse of Sources

A student who attempts (even if clumsily) to identify and credit his or her source, but who misuses a specific citation format or incorrectly uses quotation marks or other forms of identifying material taken from other sources, has not plagiarized. Instead, such a student should be considered to have failed to cite and document sources appropriately.

Responses to Academic Dishonesty, Plagiarism, or Cheating

UCF faculty members have a responsibility for your education and the value of a UCF degree, and so seek to prevent unethical behavior and when necessary respond to infringements of academic integrity. Penalties can include a failing grade in an assignment or in the course, suspension or expulsion from the university, and/or a “Z Designation” on a student’s official transcript indicating academic dishonesty, where the final grade for this course will be preceded by the letter Z. For more information about the Z Designation, see http://goldenrule.sdes.ucf.edu/zgrade.

For more information about UCF’s Rules of Conduct, see http://www.osc.sdes.ucf.edu/.

Unauthorized Use of Class Materials

There are many fraudulent websites claiming to offer study aids to students but are actually cheat sites. They encourage students to upload course materials, such as test questions, individual assignments, and examples of graded material. Such materials are the intellectual property of instructors, the university, or publishers and may not be distributed without prior authorization. Students who engage in such activity are in violation of academic conduct standards and may face penalties.

Unauthorized Use of Class Notes

Faculty have reported errors in class notes being sold by third parties, and the errors may be contributing to higher failure rates in some classes. The following is a statement appropriate for distribution to your classes or for inclusion on your syllabus:

Third parties may be selling class notes from this class without my authorization. Please be aware that such class materials may contain errors, which could affect your performance or grade. Use these materials at your own risk.

In-Class Recording Policy

Outside of the notetaking and recording services offered by Student Accessibility Services, the creation of an audio or video recording of all or part of a class for personal use is allowed only with the advance and explicit written consent of the instructor. Such recordings are only acceptable in the context of personal, private studying and notetaking and are not authorized to be shared with anyone without the separate written approval of the instructor.

Artificial Intelligence (AI) Use Policy

Students are strongly discouraged from using AI tools to help complete the homeworks, exercises, and projects. This is to help ensure that students better learn the course material. Moreover, the use of AI tools during the midterm and final exams is strictly prohibited.

Course Accessibility Statement

The University of Central Florida is committed to providing access and inclusion for all persons with disabilities. This syllabus is available in alternate formats upon request. Students with disabilities who need specific access in this course, such as accommodations, should contact the professor as soon as possible to discuss various access options. Students should also connect with Student Accessibility Services (Ferrell Commons, 7F, Room 185, sas@ucf.edu, phone (407) 823-2371). Through Student Accessibility Services, a Course Accessibility Letter may be created and sent to professors, which informs faculty of potential access and accommodations that might be reasonable.

Campus Safety Statement

Emergencies on campus are rare, but if one should arise in our class, we will all need to work together. Everyone should be aware of the surroundings and familiar with some basic safety and security concepts.

In case of an emergency, dial 911 for assistance. Every UCF classroom contains an emergency procedure guide posted on a wall near the door. Please make a note of the guide’s physical location and consider reviewing the online version at http://emergency.ucf.edu/emergency_guide.html. Familiarize yourself with evacuation routes from each of your classrooms and have a plan for finding safety in case of an emergency. (Insert class-specific details if appropriate) If there is a medical emergency during class, we may need to access a first aid kit or AED (Automated External Defibrillator). To learn where those items are located in this building, see http://www.ehs.ucf.edu/AEDlocations-UCF (click on link from menu on left). (insert class specific information if appropriate) To stay informed about emergency situations, sign up to receive UCF text alerts by going to my.ucf.edu and logging in. Click on “Student Self Service” located on the left side of the screen in the tool bar, scroll down to the blue “Personal Information” heading on your Student Center screen, click on “UCF Alert”, fill out the information, including your e-mail address, cell phone number, and cell phone provider, click “Apply” to save the changes, and then click “OK.” If you have a special need related to emergency situations, please speak with me during office hours. Consider viewing this video about how to manage an active shooter situation on campus or elsewhere.

Deployed Active Duty Military Students

If you are a deployed active duty military student and feel that you may need a special accommodation due to that unique status, please contact your instructor to discuss your circumstances.