Day 1 -- Outline

Day 1 -- Outline


I. Introduction 
    A. Class Structure
        1. Incemental Development
        2. Pop Quizzes (15%)
        3. 3 In Lab Tests (15%)
        4. Final -- Programming Exam (10%)
        5. Grading of Quizzes and Projects in Class
        6. Project Points (60%)
    B. Turning in Projects
        1. At beginning of Class
        2. Graded in Class -- Spec, Design, Code Style
        3. Code with accompaning makefile in Project Directory
    C. Testing 
        1. You can get points for finding errors during review
            a. The person getting reviewed has no points taken off
        2. During Testing you get points for finding errors in others
           code; 1 point for each error you find in each other person's
           code 
        2. Minus 1 point for each error found in your code during testing
        3. Non-Clean Compile, Non-Clean Link == 1 plus point for person
           finding it, 0 execution points for person submitting
    D. Demonstration Project -- Dayplanner
    E. Class Project -- Genealogy
II. Command Line Arguments
    A. int argc
    B. char* argv[]
III. File I/O
    A. #include <iostream.h>
    B. #include <fstream.h>
    C. ifstream input_file
        1. Opening file
            a. ifstream input_file(name, ios::in);
            b. input_file.open(name, ios::in);
            c. input_file.fail()
        2. Closing file
            a. input_file.close()
    D. ofstream output_file
        1. Opening file
            a. ofstream output_file(name, ios::out);
            b. output_file.open(name, ios::out);
        2. Closing file
            a. output_file.close()
    E. Using
        1. input_file >> string >> endl;
        2. input_file.get(c);
            a. false if attempt to read past end of file
        3. output_file << c;
        4. output_file << string;
        5. output_file << endl;
IV. Review
    A. Logging In
    B. File Structures
        1. Create and delete Subdirectory
        2. Create and Delete Files
            a. touch and rm
            b. Create with editor
    C. Shells(ksh, csh, etc.) -- briefly (as command line interface)
        1.  Frequent Commands
            a. Editor -- editor of choice (emacs, vi, etc.)
            b. g++ *.C, *.cxx
            c. man
            d. gdb
            e. ci 
            e. co 
            f. make
            h. ls
            i. chmod
            j. See Unix Book -- learn on your own
    D. Compilers
        1. .C, .H, .o files
        2. Include files in C++
    E. Linking
        1. libraries
    D. executable files
V. C++ Questions -- 10 min
    A. Pointers
VI. Makefiles
    A. file timestamps
    B. Standard Entry
        a. file name
            1. colon
            2. tab
        b. dependencies
            1. tabs
            2. continuation line = \'\n'
        c. action
            1. tabs
    C. .o, .c, .C, .h dependencies
    D. Macros
        1. X = ...
        2. $(X)
    E. Example of makefile
        1. See the Makefile in ~woodfiel/dayplanner on breezy
    F. mkmf, makedepend
    G. Make files and Black Box Testing
VII. Simple Error Handling
    A. error parameter
    B. exceptions -- not in g++ compiler we are using

CS Dept Home Page  BYU Home Page  OSM Home Page
Last updated 30 Apr 1996