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.

 

Main Topics                                                                                                                                            

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

 

 

Secondary and Related Topics

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.