Spring 2004 Final Exam Review Page
CSE1320
Sections 501 Dr.
Tiernan’s sections
Topics to be
covered on Final Exam with accompanying notes from Ch. 10, 11 and 12 and
Software Engineering Presentation.
Topics from the entire semester will be covered on the Comprehensive
Final. Please refer to the earlier
review sheets in addition to this one.
Test will be CLOSED BOOK, CLOSED NOTES.
Files and I/O Time is 5:30 – 8:00
how to declare file variables
how to connect file variables to
actual files in the local directory
how to open files for reading,
writing or appending (all possible combos)
fopen and fclose errors that can
occur
input/output from files using
fscanf, fprintf
Command line parameters
what the OS does with the parameters
that are typed in
what parameters are passed to the
main routine
how to use the data in the passed in
parameters
Files
and I/O
how to declare file variables
how to connect file variables to
actual files in the local directory
how to open files for reading,
writing or appending (all possible combos)
fopen and fclose errors that can
occur
input/output from files using
getc, putc, ungetc
fgets, fputs
fread, fwrite
fscanf, fprintf
accessing files in random order with
fseek and ftell
what the file pointer in a file
keeps track of
Time.h
time(),
ctime(), localtime()
how to use the three time functions
together
Error
Handling
errno
ferror(), clearerr()
perror()
Library
functions
math.h functions
ctype.h functions
Dynamic
memory allocation
malloc, calloc, free
Linked
lists
identify tasks being performed with
and on linked lists
create nodes for linked lists
three cases for inserting nodes in a
linked list
navigating through a linked list
Preprocessor
directives
Macros and macro substitution
Conditional compilation
Software
Engineering
Phases of the software life cycle
The role of testing in software
engineering
The relative importance of design
versus coding in the process
Be able to use:
C++
stream I/O
cout,cin
<<,>>
<iostream.h>
bool
inline
Default
parameters
Reference
parameters
C++
dynamic memory management
new, delete
Be able to describe:
Data
abstraction
Data
encapsulation
Information
hiding
Classes
and object
Polymorphism
Function
name overloading
how C++ decides which function to
use
Operator
overloading
operators that cannot be overloaded
Inheritance
– base class and derived classes
Be able to recognize and
understand:
scope
resolution operator ::
invoking
object
constructors
and destructor
derived
public or private classes
this
member
initialization list
Pointers
Recursion
Arrays
and structures
Function
declaration and definition
Storage
class and scope
Stacks
and queues
Error
handling
library
functions – perror, clearerr, ferror, errno
with
input and output
Conditional
compilation
C++
I/O functions and flags
Style
commenting whitespace
module size visually
useful indenting
meaningful identifiers consistent
use of braces
Program Development
sending
data to a program from the operating system
breaking code into modules
breaking programs into separate files
Test
will have some or all of the following characteristics:
multiple choice questions (not more
than 10) – typically 1 to 4 points each
short answer questions
coding questions which require
either
writing code or
interpreting code or
debugging code
( “code” includes
declarations, preprocessor directives, function definitions and
general coding of statements
and control structures and I/O commands)
matching questions
fill-in-the-blank questions
Questions
generally have their point value listed in braces at the end/side of the
question
Every test will have at least 10 points worth of extra credit
available
Test grades are assigned on a curve based on the range of actual scores on the test, i.e. the
highest score on the test (for example, an 89) will be the top of the curve so
all scores will be assigned based on where they fall (100 – 90 A, 89 – 80 B,
etc.) AFTER the actual score has been divided by the curve. For example, a high score of 89 would give
that student an A because 89/89 100 = 100.
On the same test then, a score of 68 would be curved as 68/89*100 = 76
so that student would get a C (rather than a D for the original 68). The curve on a set of test grades will NOT
be the curve used for class grades.
The test will be hard. I write very
challenging questions that require you to think all the way through them. A few of the questions will be memory type
questions because some rules must be memorized to make a student an efficient
programmer in a language. Most however
will require lots of mental effort. Do
not get too upset about it – remember EVERYONE is suffering through the same
test you are and that everyone’s grade will be curved. Check out my website for a few example test
questions from last semester’s tests.
They will give you a sense of how my tests are written.