Course Outline: NY, St. Francis College

By: Higher Education

Abstract: CIS 280: Introduction to C/C++

Department of Computer Information Systems

St. Francis College

Syllabus & Course Outline

CIS280 - Introduction to C/C++ (3)

Prof. Dennis Anderson

Fall, 1998

    Contact Information:
    Prof. Dennis Anderson
    Chairman
    CIS Dept.
    St. Francis College
    180 Remsen Street
    Brooklyn, NY 11201
    Tel: (718) 489-5201
    E-mail: andersnd@cs.nyu.edu
    http://www.stfranciscollege.edu/

    1. Course number, title, credits and prerequisites
      CIS280, Introduction to C / C++, 3 Credits
      Prerequisites: CIS201A

    2. Catalog Description

    3. Programming techniques, knowledge, and skill in C/C++. Topics include data representation, structure, storage, and processing; sequential file processing using disk storage; use of procedural verbs including input-output handling, arithmetic manipulation, and decision making; editing and validation of data. Emphasis is placed on programming, working with relative, direct, and indexed files. The students are also introduced to interactive programming.

    4. Objectives/Goals
      This course will introduce students to C and C++, the languages which are most popular for commercial programming. The course will cover all the fundamentals of C and C++. It will include extensive practice with structured programming techniques. It will introduce the concepts of Object Oriented Programming (OOP). Students will write programs in C++.

    5. Procedures
      The instructor for this course will assign the chapter material, lecture and illustrate specific items to clarify text presentation. Class discussion and review of assigned material will be a significant component of the course. Students are expected to be fully prepared for each class meeting and to participate regularly. Class examinations, class projects, and a final examination wil1 be administered during the semester.

       

      • Textbooks:
      • Required: Bronson, G. (1995) A first Book of C++, St. Paul: West.

        Kernighan, B. W. and Ritchie, D. M. (1988) The C Programming Language, 2nd Ed., New York: Prentice Hall.

        Recommended: TBA

        • Software: Borland Turbo C++ & C++ Builder but NOT required to purchase any. (A personal copy can be purchased from any software store.Dont forget to ask about student discount.) You need at least two 3 1/2" HD diskettes for the course. Buying a single diskette can be expensive, so it may be better to buy a package of ten.
        • Grading: Programming Assignments (30 %), Attendance & Class Participation (10 %), Midterm Project (20 %), Final Exam (40 %). Optional extra credit projects. Percentile of each item can be changed.
        • Assignments: Late assignment will be penalized (20-100 %). Penalties will not be waived without a proper note. In the case of the examination s, your note from a physician must specifically state that you were not able to attend the exam. Collaboration (not copying) on assignments is allowed but you must turn in your own work. Violation of this will be considered plagiarism.

       

    6. Outline
      Week 1: Introduction to Computers and the CV Language: A discussion of how C++ is used. C++ is compared with PASCAL and with COBOL; A review of basic programming concepts: We will discuss what a program is and how it is created; What an algorithm is. We will study examples of algorithms; Discuss the distinction between the programmer and the user. Discuss examples of input, processing, and output, and the instruction set of the computer.

      Week 2: Structure of a C Program: The fundamental elements of C++ are introduced: The difference between compiler directives and executable instructions is explained; We will discuss a C++ program with a While loop; The concept of variables is reviewed; The functions of the memory and the CPU are reviewed; We will discuss how and why variables are declared; We explain numeric expressions and numeric operators; Review functions and assignment statement; Show how input and output are conducted in C++.

      Week 3: Data types and how they are used; More on operators: Integers: short, int, long; unsigned; Real: double; Characters: ASCII; Character Input and Output; Identifier and naming conventions; Converting characters to numbers; Operators: Arithmetic operators; Integer Arithmetic; Floating point arithmetic; Unsigned arithmetic; Unary minus; Relational operators; Logical operators; Evaluation order; Bit-wise operators; Assignment operators; Automatic type conversion.

      Week 4: Types of statements: Expression statements; Compound statements; Simple decision statements: "if"; Assignment decisions: The conditional operator; Multiple "else if"; "switch" statement; Simple loops: "while", "do while"; "for" loop; Null statement; "break", "continue" and "goto"; Concise control expressions.

      Week 5: Decisions; We will go over a number of programs involving decisions; Review the "if" and "else" and show how they are written in C++; Discuss Boolean expressions; Review Boolean and relational operators; Discuss the inclusive and exclusive OR operators; Introduce Truth Tables; Introduce enumerated types; Switch statement.

      Week 6: Functions: The function call and the function arguments; Function returns; Return type; Function body; Character strings; Global and local variables; Scope; Modular programming; Side effects; The Return statement; Formal parameters and actual parameters; Passing parameters; Value parameters; Reference parameters; To-down approach; Stepwise refinement.

      Week 7: Midterm.

      Week 8: Iteration: Why iteration is needed. The For loop; Loop index variable; Nested For loops; Do while loops; Choosing the appropriate loop structure; Break statement; While loop conditions and the data type Float; Verifying loops; Infinite loops; The trailer value method; The EOF function.

      Week 9: Arrays and strings: What an array is; Creating arrays; Subscripts; Using computed subscripts; Array processing loops; Out-of-bounds errors; Passing arrays to functions; Debugging Arrays; Strings; Null character; Sorting arrays; Selection sort; Insertion sort; Quicksort; Two-dimensional arrays; Passing two-dimensional arrays to functions; Initializing two-dimensional arrays; Drawing shapes.

      Week 10: User defined data types and object oriented programming: Benefits of object oriented programming; Data type: time; Classes; Class definitions; Clients; Objects; Instances; Initializing objects; Constructor; Member functions; Member function prototypes.

      Week 11: More on object-oriented programming: Abstract data types; Changing data representation; Accessory function; Overloading; Operator overloading; Overloaded operators as member functions; Inheritance; Polymorphism; Templates; Debugging classes.

      Week 12: More on object-oriented programming: "inline" and "const"; Uses of void; Scope resolution operator; Reference declarations and call by reference; Default arguments; "new " and "delete" operations; "struct"; private and public; static members; class scope; "this" pointer.

      Week 13: Pointers and lists; Character data: Pointer; Address; "address of" operation; Null pointer; Dereferencing; Arrow notation; Stack; Stack frame; Linked list: Head ,Tail; List operations as member functions; Debugging programs with lists; Characters; Space Character; Non-printing characters; Escape character; Character operations.

      Week 14: Recursion: How to write a recursive function; Example of recursion; Debugging recursive functions; Nonlinear recursion; Recursive algorithms; Divide and conquer approach; Constructing index entries; Merging and splitting lists; Arithmetic on very large integers; Mutual recursion; Curve drawing.

      Week 15: Multiple-file applications: Input and output; Separate compilation; Linker; Stream library; Opening a file; closing a file; Command-line arguments; A picture specification language; Parsing; Lexical analysis; Tokens; Nodes; Children and parents.

      Resources: World Wide Web Sites including Borland.


Server Response from: ETNASC04