COP-3402 Systems Software
Syllabus

Table of Contents

Course Details

Course COP-3402 Systems Software
School University of Central Florida
Semester Fall 2025 (08/18–12/06)
Section 001
Prerequisites CDA 3103C and COP 3502C each with a grade of C (2.0) or better
Lectures Tuesdays and Thursdays, 1200–1315, 08/19–11/25 (inclusive)
Location HEC-0125
Final TBD
Instructor Paul Gazzillo paul.gazzillo@ucf.edu
TAs Sanan Hasanov, Donovan Reynolds

Labs

Start Date End Date Day Time Location Personnel
08/29 11/21 Friday 0930–1020 ENG2-0102 Donovan
08/29 11/21 Friday 1030–1120 BA2-0210 Donovan
08/29 11/21 Friday 1130–1220 HS1-O116 Donovan

Office hours

Date Day Time Location Personnel
08/25–11/25 Monday 1500–1600 HPA2-244 Sanan
08/25–11/25 Tuesday 1115–1200, 1315–1400 HEC-239 Paul
08/25–11/25 Wednesday 1500–1600 HPA2-244 Sanan
08/25–11/25 Thursday 1115–1200, 1315–1400 HEC-239 Paul
12/02 Tuesday 1200-1300 HEC-239 Paul
12/04 Thursday 1300-1400 HEC-239 Paul
12/05 Friday 1200-1400 HEC-239 Paul

Office hours will not be held on days on when there are no classes or campus is closed.

Schedule

# Date Topic Video Board Reading HW Project/Exercise Due
1 08/19 Introduction video board emacs hw1    
    Tools            
2 08/21 Command-line video board lpi sec 1.1–1.2, 2.1–2.7 hw2    
3 08/25 Version control video board 21st ch 4 hw3 vc exercise (1wk)  
4 08/27 Build automation video board 21st ch 3 hw4 hello project (2wk)  
    Files            
5 09/02 File basics video board unix sec 1–9 hw5    
6 09/04 Syscalls     lpi sec 3.1–3.4, 4.1–4.9 hw6   due: vc
7 09/09 Syscalls     lpi sec 18.1–18.4 hw7    
    Processes            
8 09/11 Process basics     lpi sec 6.1–6.6 hw8 fs project (3wk) due: hello
9 09/16 Process basics     lpi sec 24.1–24.2 hw9    
10 09/18 Process creation     lpi sec 27.1–27.4 hw10    
11 09/23 Redirection     lpi sec 5.1–5.5 hw11    
12 09/25 Pipes     lpi sec 44.1–44.4 hw12    
13 09/30 Shells     21st ch 2 hw13 proc project (3wk)  
    Midterm exam            
14 10/02 Review       none   due: fs
Midterm 10/07 Exam            
    Compilers            
15 10/09 Source to process     antlr preface, sec 2.1–2.3 hw15 in2post exercise (1wk)  
16 10/14 Compiler basics     antlr 3.3–3.4 hw16    
17 10/16 Compiler basics     codegen sec 1–6 hw17   due: in2post
18 10/21 Compiler project     codegen sec 7 hw18   due: proc
19 10/23 Arithmetic     codegen sec 8 hw19 codegen1 project (2wk)  
20 10/28 Branching     codegen sec 9 hw20    
21 10/30 Pointers     codegen sec 10 hw21 codegen2 project (2wk)  
22 11/04 Pointers       hw22    
23 11/06 Functions     codegen sec 11–12 hw23 codegen3 project (2wk) due: codegen1
Break 11/11 (no class)            
24 11/13 Functions       hw24    
25 11/18 Project review       hw25   due: codegen2
26 11/20 Stack smashing       none    
    Final exam            
27 11/25 Review       none   due: codegen3
Break 11/27 (no class)            
Final 12/04 Exam (1000–1250)            
Resubmit 12/04 Final resubmission deadline            
  • All readings (Reading), homework (HW), exercises (Exercise), and projects (Project) are assigned on the date of the row in which they appear. See the assignment section for specific rules on due dates and times as well as late policies. The Due column shows only exercise and project due dates.
  • "hw" means "Homework", e.g., hw1 means Homework 1.
  • "none" means there is no homework for that lecture
  • "emacs" means the emacs Tutorial.
  • "lpi" means The Linux Programming Interface.
  • "21st" means 21st Century C.
  • The "unix" reading means The UNIX Time-Sharing System.
  • The "antlr" reading means Definitive ANTLR 4 Reference.
  • The "codegen" reading means the Code Generation Project Handbook
  • Chapter, section, and page ranges are inclusive, e.g., 1.1–1.2 means read both 1.1 and 1.3.
  • "ch" means Chapter(s), e.g, ch1 means Chapter 1.
  • "sec" means Section(s), e.g., sec 1.1 means Section 1.1.
  • "pg" means Page(s), e.g., pg ix–x means Pages ix to x (inclusive)
  • "wk" means Week(s), e.g., 1wk means 1 Week.

Assignments

Categories

Category Number Points (pt) per Assignment Total Points (pt) per Category
Homework 20x 1pt 20pt
Exercises 2x 4pt 8pt
Projects 6x 8pt 48pt
Midterm 1x 8pt 8pt
Final 1x 12pt 12pt
Attendance 1x 4pt 4pt
TOTAL     100pt

All assignments are individual assignments. Please see Core Policy Statements for policies about academic integrity.

Late policy summary

Category Unexcused Late Policy
Homework No late homeworks or resubmissions accepted
Exercises (Re)submissions only up to two lecture days late
Projects (Re)submissions permitted until final project resubmit deadline with 1pt deduction

Excused late submissions accepted per UCF policies on excused absences and missed coursework. Please see Core Policy Statements for policies about missed coursework.

Homework

  • Due before the following lecture.
    • If an exam or exam review is the next class, then the due date is the following regular lecture.
  • Submit via webcourses.
  • Graded for genuine effort and responsiveness, not 100% accuracy.
  • Homework answers are reviewed in the following lecture, so late homework receives 0pt.
    • 20 out of all homeworks count. The rest are dropped.

Exercises

  • Due on the date in the schedule by the end of day local time, i.e., 11:59 PM
  • Exercises are simple tasks that illustrate tooling and concepts needed for class
  • Exercises can only be resubmitted up to two lecture days late as these provide core competencies needed for the class after the exercise
    • Two lecture days typically means one week, since there are two lectures per week and all assignments are due on lecture days.
    • When a following lecture day is a break, skip to the next lecture day to continuing counting.
  • Submit via git on eustis

Projects

  • Due on the date in the schedule by the end of day local time, i.e., 11:59 PM
  • Projects can be submitted or resubmitted any time up until the final project deadline (listed on the syllabus schedule) for a one-time late penalty of 1pt deduction (per project).
  • Examples:
    • A students submits the fs project by the due date. The projects recieves only 2 out of 8pt. The student resubmits a fully-working project after the due date and gets 7 out of 8pt, full credit minus the 1pt late penalty.
    • A student submits a fully-working fs project by the due date and gets 8 out of 8pt with no late penalty.
  • Only half of automated test cases will be released. The other half will be described.
  • Submit via git on eustis
  • Some projects may include optional features that provide bonus points if implemented
    • proc and fs have 2pt each additional bonus points achievable by implementing extra features
    • Test cases for bonus features are never released as students are expected to develop and test them on their own

Midterm and Final

  • In-person exams
    • Taken via webcourses or paper per the student's choice
  • Material from homework, projects, and lectures
    • Final is cumulative but with proportionately more second-half material
  • In-class review the lecture before the exam
  • Eight double-sided pages (16 total sides, 8 total pages) of reasonably-sized notes for the midterm; 12 for the final.
  • Midterm held during class
  • Final held during finals week

Attendance

  • Taken with UCF Here
  • 2pt bonus for >75% attendance
  • Notify instructor for excused absences

Letter Grades

A >= 90%, B+ >= 87%, B >= 80%, C+ >= 77%, C >= 70%, D >= 60%, F < 60%. (minuses may be used in some cases)

Logistics

What Where
Syllabus Website
Lecture notes, videos Website
Homework assignments Website
Project descriptions Website
Project implementation eustis
Project submission git server
Homework submission Webcourses
Exams Webcourses
Questions and discussion Ed Discussion
Attendance UCF Here

Computing Requirements

All students will need access to a computer that can connect to eustis to complete course assignments. For students without their own device, UCF provides both computer labs and loaner devices at no additional cost.

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.

eustis

SSH Server Username Password
eustis.eecs.ucf.edu Your NID (ab123456) Your NID password
  • Connect to eustis via ssh:

    ssh NID@eustis.eecs.ucf.edu
    

    where NID is your UCF NID, e.g., ab123456.

    Do not use eustis3 as you won't be able to access the git server.

  • Enter your NID password. Alternatively, setup an ssh key.

Off Campus Access

Eustis is only accessible on campus or via VPN.

Please visit https://secure.vpn.ucf.edu to get started.

External guides

(Links are for informational purposes only and their inclusion is not an endorsement of their content.)

Virtual machine alternative

  • Use docker or vagrant/virtualbox
  • eustis OS is Ubuntu 24.04
  • Always double-check that program compiles and runs on eustis
  • Copy gitolite key if desired
  • Use ProxyJump to submit from VM through eustis

git server

Programming projects will be submitted as git repositories to gitolite3@eustis3.eecs.ucf.edu. Detailed usage instructions will be provided as part of the course.

Webcourses

Ed Discussion

https://edstem.org

You will receive an invitation to join the class discussion board by the second week of classes.

Please direct all course-related communications to Ed Stem.

You can ask questions and discuss topics publicly, anonymously or not, and also select a private message to communicate with instructional staff only.

UCF Here

The UCF Here mobile app will be used to check-in for attendance using your smartphone.

Web App: https://here.cdl.ucf.edu/

Learn more about setting up and using UCF Here at the following student guide:

https://cdl.ucf.edu/support/webcourses/guides/ucf-here-student-guide/

If you have any questions or problems downloading the app, please contact Webcourses@UCF Support or visit the student guide.

Textbooks

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

Download Instructions from UCF Libraries

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.

textbook_instructions.png

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.

emacs Tutorial

Go through the complete tutorial emacs, which takes about 30 minutes.

  1. ssh into eustis, replacing NID with your UCF NID.

    ssh NID@eustis.eecs.ucf.edu
    
  2. Start the emacs tutorial.

    emacs -f help-with-tutorial  
    
  3. Exit the tutorial once finished by pressing Ctrl-x then Ctrl-c. Ctrl is the "Control" key. Hold it down, then tap the key (x or c in this case) and release.

Notes

(Links are for informational purposes only and their inclusion is not an endorsement of their content.)

  • Windows Users

    In Windows Terminal, Ctrl-v and Ctrl-c may be bound to paste and copy, which will interfere with emacs. Try going to settings, the "Actions" and delete the bindings to Ctrl-v and Ctrl-c. Paste and copy may be still useable with Ctrl-Shift-v and Ctrl-Shift-c. See here and here for others with the same issues.

  • Mac Users

    In MacOS Terminal, the alt key may not work as expected. Try going to preferences then "Settings" and check the "Use option as meta key". See here for more info.

References

(Links are for informational purposes only and their inclusion is not an endorsement of their content.)

Course Information

Description

This course overviews the use and creation of systems software: file systems; the command-line interface; use of processes and files; the programming environment; use of build systems, editors, and version control; systems programming; compilers.

Learning Outcomes

This course will provide students an understanding of how systems software is used, design, and built. By the end of the course, students should undertand the file system, be conversant in the command-line, learn the unix philosophy of systems programming, be familiar with GNU/Linux development toolchain, and have first-hand experience building systems software, including a shell and a compiler.

Labs

  • Labs provide additional support and content to ensure student success this semester and will provide
    • Further detail about concepts covered in lecture
    • Introduction to some content not shown in lecture
    • Lecture Review
    • Additional time for Q&A at the end of lab

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.

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/

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 acknowledg­ing 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 appropri­ately.

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.

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 (https://youtu.be/NIKYajEx4pk) 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.

Author: Paul Gazzillo

Created: 2025-09-02 Tue 23:08

Validate