Spring 2009 Test #1 Review Page

CSE1320 Section 002                                                                Dr. TiernanÕs section

Topics to be covered on Test #1 with notes from Ch. 1 Ð 5+ plus other material (including from Chapters 7 and 9 and the software engineering presentation) as covered in class:

 

Main Topics                                                                              Test #1 is IN CLASS

Arrays                                                                  Section 002 Ð Wed. Mar. 4, 1:00pm

            be able to declare an array

            know the range of index values used for arrays

            understand how arrays are stored in memory

            declaring functions with arrays as parameters

            passing arrays as parameters

                        the whole array using array name

                        a single element of an array

            accessing an array and its elements inside the function it has been passed to

            using array names as pointers

Multidimensional arrays and pointers

            how C really implements multidimensional arrays

            declaring multidimensional arrays

            initializing arrays

            accessing array elements

            array notation and pointer arithmetic to access array elements

            arrays of pointers

            double indirection - pointers to pointers

Pointers

             know the rules for creating

            know what a pointer contains

            know the notation: *, &

            understand pointer arithmetic

            be able to access the contents of the location the pointer points to

            vocabulary Ð dereference, indirection, addressing operator

            passing pointers as parameters

            double indirection

            array notation with pointers

            allocating space with malloc and deallocating with free

Sorting and searching

            big O notation and efficiency

            linear search

            selection sort and bubble sort

                        swap function

Function declarations and definitions

      why ANSI C uses prototype declarations

      difference between declaration and definition of a function

Software engineering

            Identify/describe the phases of software engineering

            Understand the importance of testing

                        Strategies for testing

                        Designing test cases

                        Debugging tips

            Be able to discuss various aspects of software quality

 

Secondary and Related Topics

Data Types

            int        long     short    char

            float     double      long double

      know the:

meaning of a sign bit

differences between different types of integer data types

differences between different types of floating point data types

sizeof() operator

meaning of type conversions

Variables

            know the difference between initialization and assignment

            understand how variables are stored and addressed in memory

            input with scanf and output with printf

Control Structures

if                      (conditional)                if else                nested if else

for                    (initialization; test; processing)

while (condition)

do while

switch

            return

be able to analyze the values after the execution of a loop or selector

Operations

            recognize all the operations we have discussed

            use the relational and arithmetic operators in writing code segments

Strings

            null character/end-of-string marker/Õ\0Õ

            declaring

            reading and writing strings

            need for end-of-string markers

            %s conversion specifier

            difference from character arrays

            storing strings in character arrays

            common string functions

Functions

            know the rules for creating

                        function prototype declarations

                        function definitions

            know what function is required in any C program

            understand the difference between formal parameters and actual parameters

            understand pass by value and pass by reference

            know how to call a function

Preprocessor directives

      know what each of the following do:

            #include <stdio.h>

Algorithms

            Turning algorithms into functions

            Sort and search algorithm efficiency

Style

            visually useful indenting

            consistent use of braces

Program Development

            guidelines for program development and debugging

 

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

Almost all my tests are open book tests Ð which means that the answers are not in the book.  The book is a reference for you to use in thinking through a problem.

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 test will make you think not just remember.  I write very challenging questions that require you to think all the way through them.  A small number 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 previous semesterÕs tests.  They will give you a sense of how my tests are written.