UP | HOME

Final Review
COP-3402

Table of Contents

Exam format

Type Count
Multiple choice 13
Short answer 6
Long answer 5
TOTAL 24
  • Bring your UCF ID to confirm your identify when entering the room and taking the exam.
    • You may only answer questions for your own webcourses account
  • In-person, webcourses or paper exam
    • Bring your laptop for webcourses exam
    • Laptop may only have webcourses open
    • Any other use of the machine will result in an academic misconduct report
    • ID will be checked in class for grade to count
  • Questions will only be available during the exam period
  • Twelve double-sided physical pages of reasonably-sized notes permitted
    • No online notes or other digital resources are allowed
    • Laptop is only for webcourses exam and nothing else
  • No additional items (cell phones, laptops, etc.) permitted besides, for a paper exam, a writing implement containing no additional information
  • If taking the paper exam, put full name and NID on every page (including additional paper, scratch paper, and notes)
  • Review course policies
  • Final is worth 16pt. Each question is worth 2/3 pt.

Question topics and examples

File systems and navigation

  • What makes the unix file system "hierarchical"?
  • What is the difference between absolute vs. relative paths
  • How are parent directories referenced in the file system?
  • What is the working directory and how do you display it?
  • What is the unix standard command to rename a file?
  • What is tab-completion?
  • What unix standard will show you the text of a file?
  • How do you change the working directory?
  • What is the unix command to delete a file?
  • How does the implementation of deleting a file work? Does it remove the file's contents from the storage medium?

Version control

  • What git command copies commits from the local repository to the remote repository?
  • What git command copies commits from the remote repository to the local repository?
  • What git command stages a new file?
  • What git command creates a log of the change to a staged file to the local repository?

Processes, advanced processes?

  • How do you redirect standard (out, in) of bash command to a file? for instance, i want to redirect grep's (out, in) to the file grep.txt what do i type?
  • How do you redirect standard out from one command to another command's standard in? for instance, let's say i want to count the results of find with wc, what do i type?

Editor

  • How do you edit files in vim or emacs (pick one)?
  • How do you quit the editor in vim or emacs (pick one)?

Process, pipe, syscalls

  • How are processes created with unix system calls?
  • How are program executed with unix system calls?
  • How are standard in, out, and err redirected with system calls?
  • How do pipes work and what do they do?

Source code vs. executable

  • How are executables created from source code?
  • What unix utilities are involved in each phase?

SimpleIR

  • What instructions are available
  • Writing SimpleIR programs for simple algorithms

Function implementation

  • Stack frames, its contents
  • System V AMD64 ABI
  • Parameter passing
  • Prologue and epilogue
  • call and ret behavior
  • Comparison of SimpleIR functions to assembly "functions"
  • Translating SimpleIR functions to x86-64 assembly

Variables

  • Local variable layout in the stack frame
  • Assignment, both immediate values and from other variables
  • The compiler's symbol table
  • Assembly instruction support for accessing variables in the stack frame

Arithmetic

  • What x86-64 instructions are used for each arithmetic operator in SimpleIR?
  • SimpleIR arithmetic commands vs. x86-64 assembly (number of arguments, behavior)

Branching

  • Unconditional branching in SimpleIR and x86-64 assembly
  • Conditional branching in SimpleIR and x86-64 assembly
  • How if, while, and for can be implemented in SimpleIR
  • How SimpleIR can be implemented in x86-64 assembly

Pointers

  • SimpleIR's three pointer operations: reference, dereference, and dereference assignment
  • x86-64 mov instructions for performing register indirect stores and loads
  • Implementing SimpleIR's pointer operations in x86-64 assembly

Author: Paul Gazzillo

Created: 2024-11-26 Tue 12:22

Validate