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
andret
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