Spring
2002 Final Review Page (Ch 11,12 & SE)1
CSE1320
Sections 003 and 501 Dr.
Tiernan’s sections
Topics to be covered on Final
from last part of the semester with accompanying notes (Ch.11, Ch.12, and
Software Engineering). The Final Exam
is COMPREHENSIVE so all topics from previous review sheets are included as
review topics for the Final Exam.
C library functions
Be able to describe the benefits of having an existing library of functions for C
Error handling with library
functions
Be able to describe why we must check for errors with library functions
Know the error return types for at least three library functions and how you would use this information
errno
Utility
functions
Know how to use:
strtod
atoi
Math
functions
Know how to use:
pow
sqrt
Character functions
Know how to use all functions listed on pgs. 588-589 and iscntrl, islower, isupper
Memory allocation / deallocation
Know how to use:
malloc and calloc with pointer variables
free
Linked lists
Understand how to define a node for a linked list
Understand the process for:
adding a node to a list
removing a node
changing the order of nodes
Preprocessor macros
Know how to define
Know limitations of
C++ topics
Input and output
objects – cin, cout
operators - >>, <<
library file – iostream.h
bool
Passing parameters by reference
Know some difference in how C++ deals with data typing issues vs. how C deals with the same issues.
Characteristics of OOP
Data abstraction and encapsulation
be able to give a general definition related to C++
class (extension of struct)
member functions and member data
scope resolution operator
constructor and destructor
Polymorphism
be able to give a general definition related to C++
operator overloading
function overloading
understand how C++ decides which function to use (p. 670)
templates
Software Engineering
Know the phases of software development and be able to give a one sentence definition of each phase
Be able to describe at least three types of testing that should occur in software development
Be able to name at least three characteristics of software quality
Secondary
Topics
C library functions
time and date
Conditional compilation
preprocessor commands
#DEFINE, #IFDEF, etc.
be able to describe how conditional compilation helps in debugging and testing
C++ topics
Inline
Default parameter values
new and delete
Inheritance (if I get to it on review day)
Test
will have some or all of the following characteristics:
multiple choice questions (not more than 10) – typically 1 to 2 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
Assume that you will need to analyze each question carefully. Almost every question has multiple levels of definition and you must read and understand ALL parts of the question in order to give the complete and correct answer.
Assume that memorization is not enough. Two study suggestions are the following.
1) Pick a program that is coded in the book. Do NOT read any of the text before or after the program. By reading only the code itself, try to figure out everything that the code does. This means that you must determine the purpose and function of the OVERALL program not just what each line does individually. After you think you have it all figured out, then read the text to see if you were correct and if you missed any actions that occur in the code.
2) Pick an exercise from the end of the chapter of the type that says “You are an ---- for company X and you have to write a program to . . .” Given the information in the exercise, try to create the outline of the program, what subfunctions you would want to create, what type of data is passed around, what input and output are needed. Make sure that each of your planned functions has a unified single purpose and that the code to implement it would not have to be very long.
These two types of study will help you practice analyzing code and analyzing problems to be coded.
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.
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.