Fall 2004 Final Exam Review Page
CSE1320 Sections 001 & 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.
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
singly and doubly linked lists
Preprocessor directives
Macros and macro substitution
Conditional compilation
Software engineering
Identify/describe the phases of software engineering
Understand the importance of testing
Be able to discuss various aspects of software quality
C++
In general terms, the difference between sequential programming (like C) and object-oriented
programming (like C++)
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 and recognize:
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
Templates –what they are
Inheritance – base class and derived classes
Container class
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
with input and output
C++ I/O functions and flags – extra credit questions only
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.