Review CS 604 FINAL, Thursday December 12, 8am-10am
Style:
Short answer (scripts, unix commands, short essay) (DEFINITELY!!!)
Fill in the blank/Matching: matching terms to their definitions (DEFINITELY!!!)
PROGRAMMING!!!! (You will definitely write short programs in both C and Ada!!)
Multiple Choice: (maybe…)
Topics:
UNIX commands
Operating systems concepts/history
Programming Languages/Compilers/Interpreters
Imperative Programming Languages
Object Oriented Programming Languages
C
Ada
Terms to know:
Operating System, System programs, Control program, Kernel, Resident monitor, control cards, Shell, home directory, current working directory, Pipe, Redirection, Absolute reference, Relative reference, job control, symbolic link, hard link, machine language, assembly language, compiler, interpreter, grammar, scanner, parser
Concepts to understand: Operating systems: -
Role of an Operating system from both the “systems” viewpoint and the “user’s”
-
History of the development of Operating systems
-
Automatic job sequencing
-
Spooling
-
Multiprogramming: what it is, and its benefits
-
Multi-tasking: what it is, and how its different from multiprogramming.
UNIX: -
History of UNIX
-
Advantages and disadvantages of UNIX
-
Unix file system, structure, file naming conventions, 4 types of files, & wildcards
-
Job control, pausing a UNIX job, running jobs in the foreground/background
-
Absolute vs Relative references
-
REDIRECTION & PIPES: know how they work and the difference between >, >>, and |
-
File permissions, changing file access permissions: using both numeric permissions, and symbolic permissions
-
UNDERSTAND umask!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
Symbolic vs Hard links
-
Scripts: declaring numeric and string variables/arrays, accessing values stored in these variables
-
Pipelines
-
Know the difference between set and setenv!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
In cshell scripts, what is the difference between the different kinds of quotation marks: ‘, “, & `.
-
How do you execute a script or cause it to execute under a specific shell.
-
Difference between directories and ordinary files
-
Understand the use of the wildcard symbols and the filename strings they generate (*, ?, and [ ] )
-
Be prepared to write a shell script
Unix Commands:
man, who, finger, ps, pwd, cd, ls, mkdir, cp, mv, rm, rmdir, cat, head, tail, cut, grep, comm, diff, sort, uname, chmod, umask, ln, set, setenv, echo, alias, foreach, if, while, fg, bg, jobs, history, kill, , more
Programming Languages (Concepts): Sethi: chapters 1, 2, 3.1 – 3.4, 4.1-4.4, 4.7, 4.9, 5 (all) , 6 (all), 7.1-7.4 -
What does it mean for a programming language to be higher level and general purpose.
-
Know what the scanner and parser does in a compiler.
-
What is the difference between a bottom-up and a top-down parser. (pg 40)
-
Know the difference between a compiler and an interpreter.
-
Know what influenced the move to higher level languages
-
Know why some languages are more successful than others
-
Know the difference between the different families of programming languages: functional, logical, object oriented, and imperative
-
What is an imperative programming language/ What is an object oriented programming language
-
Understand the differences between the formal syntax vs the abstract syntax of a language
-
Understand the two layers of the formal syntax of a language: lexical layer * grammatical/grammar layer
-
Abstract syntax trees, and PARSE trees
-
Know how to read and develop a grammar in BNF notation
-
When is a grammar ambiguous.
-
short circuit evaluation of logical expressions.
-
Records, enumeration types, and ARRAYS
-
UNDERSTAND THE DIFFERENCE BETWEEN DYNAMICALLY ALLOCATED OBJECTS vs STATICALLY DECLARED OBJECTS. Where is storage space allocated for these!!!!! Understand dereferencing (operatiors for C and Ada), allocation, declaration, deallocation,
-
VARIABLE BINDINGS (4.9)
-
What is the difference between a function procedures and a proper procedure
-
Parameter passing modes: call by reference, call by value, call by value-result
-
Abstraction: procedural, object, data, and module
TERMS: (C, Ada, & programming languages)
Grammar, Compilation/compiler, interpretation/interpreter, tokens, terminals, non-terminal, Context free grammar, productions, derivations: leftmost & right most derivations, bindings: Rvalue & Lvalue, structured programming, flow of control, sequential composition, iteration, selection, and abstraction (procedural), definite iteration, indefinite iteration, break, continue (statements), composite/constructed types, basic types, type expression, record, enumeration, discrete types, POINTER, dereferencing, memory leak!!!, dangling pointer, procedure call, activation, recursion, activation records, Information hiding, encapsulation, object, instance, class, abstract data type, methods, messages, operations, member functions, constructors, destructors, public vs private portions/operations in classes, class hierarchy, inheritance, subclass, base class
C Programming:
Chapters 1, 2, 3, 4, 5, 6, 8.1, 8.2, 9.1, 9.2, 9.3, 9.4, 9.5, 10.1-10.7, 11.1 – 11.4
You will need to be familiar with:
-
Basic I/O, printf, scanf, Fprintf, Fgetc, Fopen, Fclose, getc
-
Assignment statements, expressions, and operator precedence
-
Scope of variables/local variables/ global variables
-
Arrays
-
Strings
-
POINTERS: dereferencing operator *, and address operator &
-
Dynamic vs static memory allocation
-
Basic string manipulation: strcpy, strcmp, strncmp…
-
Increment and decrement operators ++ and --, and the difference between using these as prefix vs postfix operators
-
Basic and composite data types: int, char, float, enum, struct, array ….
-
Conditional statements, if, if else, switch
-
Conditional expressions; relational, equality and logical operators
-
Loops: while, for, do, break and continue
-
FUNCTIONS: calling, prototypes, parameter lists
-
Dynamic memory allocation: malloc, free
Ada Programming:
You need to review my handouts online:
-
Basic I/O: for text, integers, and floating point numbers.
-
Assignment statements, expressions, and operator precedence
-
Scope of variables/local variables/ global variables
-
PACKAGES!!!! Package specification and package body
-
Functions and procedures
-
Parameter modes: in , out, and in out
-
Basic and composite data types: integer, character, string, float, enumeration, record, array
-
Constrained vs unconstrained arrays
-
Conditional statements: if, elseif, case
-
Loops: while, for, loop
-
Conditional expressions: relational, equality, and logical operators
-
Access types: definition, use, allocating memory and freeing memory
-
PRIVITE AND LIMITED PRIVATE TYPES. Their use and differences.
-
SCOPE RULES: for global/local variables, and nested procedures!!!!!
-
GENERICS!!!!!!!!!! Understand Generic Units, Generic subprograms, generic packages, generic formal parameters WHY ARE GENERICS USEFUL!!!
-
Understand the concepts of derived types. (Handout on Object oriented programming languages.)
Share with your friends: |