COP-3402 Systems Software

Table of Contents

COP-3402 Systems Software

  • Spring 2024
  • Section 2
  • University of Central Florida
  • Prerequisite(s): CDA 3103C and COP 3502C each with a grade of C (2.0) or better.

Personnel

Office Hours

  • Mondays 1pm–2pm (Paul, HEC-239)
  • Tuesdays 1pm–2pm (Paul, HEC-239)
  • Wednesdays 12pm–2pm (May, HEC-213)

End-of-semester hours

  • Exam week (week of 04/22): TBD
  • Post-exam week: TBD

Course Schedule

Lectures

  • Fridays, 0930–1220
  • NSC O101
  • 01/12/2024–04/19/2024 (inclusive)
    • No class 03/22/2024 (Spring Break)

Final Exam

  • Friday, April 26, 2024, 0830–-0950

Labs

  • Section 14-LAB: Fridays 1330-1420, CB1 O307
  • Section 15-LAB: Fridays 1430-1520, CB1 O307
  • Section 16-LAB: Fridays 1530-1620, CB1 O308
  • Section 18-LAB: Fridays 1630-1720, BA1 O121

Lectures

# Date Lecture Project Due
1 01/12 Course intro and setup (video)  
2 01/19 System tools (video)  
3 01/26 Compiler overview, toy compiler (video)  
4 02/02 Compiler-compilers, SimpleC (video)  
5 02/09 Semantic actions, abstract syntax trees (video) Due 02/09: Toy compiler 1
6 02/16 Regular expressions, finite-state automata (video) Due 02/16: Toy compiler 2
7 02/23 Grammars, parsing  
8 03/01 Type-checking, symbol tables Due 03/01: SimpleC compiler, Project 1
9 03/08 Code generation: globals, functions  
10 03/15 Code generation: variables and expressions Due 03/15: SimpleC compiler, Project 2
Break 03/22 (no class)  
11 03/29 Code generation: arrays and pointers  
12 04/05 Code-generation: control-flow Due 04/05: SimpleC compiler, Project 3
13 04/12 Special topic: analyzing configurable software  
14 04/19 Exam review  
Final 04/26 Final Exam 0830–0950 Due 04/26: SimpleC compiler, Project 4

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

Assignments

Note that 1 point on graded activities corresponds to 1% of your final grade.

1% Logistics

  • Submit your GitHub user name to the webcourses assignment (necessary to grade your project)
    • Due on the first day of the lecture (01/12) to satisfy UCF's academic activity requirements

24% Homework assignments

  • 12 homework assignments (2% each), one per week, except special topics and final prep
    • Each due the night before the following lecture at 11:59PM
      • E.g., homework from lecture 1 on Friday 01/12 is due Thursday 01/18 11:59PM
      • E.g., homework from lecture 10 on Friday 03/15 is due Thursday 03/29 11:59PM (after the break)
  • Effort taken into account in grading

10% Toy compilers

  • Two coding exercises (5% each)
  • Code provided to you as images
  • Meant only for practice and environment setup
  • Submitting someone else's hand-coded version is a violation of academic integrity.
  • This is the only time in this course you are allowed to use existing source code.

48% SimpleC compiler

  • Four programming projects, 12% each
  • Graded via a test suite
  • 2% bonus for a complete compiler
  • Additional bonus projects
    • See project descriptions for ideas
    • Come to office hours to demonstrate the implementation

15% Final

  • Content from lectures, homework, and projects

2% Participation

  • Participation and course engagement

Late policies

  • Homework and projects are considered late after 11:59pm ET on their due date
  • Homework assignments may be turned in up to one week late and will receive half off
  • Toy compilers may not be turned in late, since they only require hand-entering and running the code.
  • SimpleC compiler projects may be turned in or resubmitted after their deadline any time until 11:59pm ET on 04/26 with a loss of 2 points from your total grade for each project that is late

Letter grades

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

Course Info

Description

Design and development of compilers, assemblers, linkers, and loaders. Basic operating systems will be covered as well as brief introductions to advanced topics such as optimization, software security, and program analysis.

  • Learning Outcomes

    This course will provide students an understanding of systems software tools, in particularly the compiler and other tools for processing and executing programming languages. Student will learn both the big picture view of these tools as well as the details of their development. Students will gain both conceptual and practical understanding of the mechanics of these tools. The following include motivational benefits of such study:

    • To understand well your development tools and be a better engineer
    • To work on large, complex piece of software and gain experience with
      • modularity, apis and invariants
      • incremental improvement
    • To think formally about algorithms
    • To think practically about working with data structures
    • To think about invariants, i.e., pre and post conditions, in large software products.
    • To use real-world development tools

Course Materials

  • Recommended
  • Supplementary
    • Advanced Compiler Design and Implementation by Steven Muchnich. Morgan Kaufman, 1997
    • Modern Compiler Implementation in C by Andrew Appel. Cambridge University Press, 1998
    • Compiler Construction: Principles and Practice by Kenneth C. Louden, PWS, 1997
    • Concepts of Programming Languages, 8th Edition by Robert W. Sebesta. Addison Wesley, 2010.

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: 2024-02-23 Fri 12:20

Validate