COURSE PASSPORT

NETB 101, 111

Lecturers: Assoc. Prof. Nikolay Kirov, Ph.D., Ass. Prof. Emil Kelevedjiev
nkirov<at>math.bas.bg, keleved<at>math.bas.bg

We will maintain a course homepage that will contain links to all course handouts and some supplementary materials. The URL for this course is
http://www.math.bas.bg/~nkirov/2005/NETB101/index.html
which you may want to save as a bookmark in your web browser. 

1. COMPETENCIES
In this course we will cover the fundamentals of the C++ programming language. As Cay Horstmann points out, ``It is impossible to teach all of C++ to beginning programmers in one semester. This book [and course] purposefully omits several useful but technically complex C++ topics...'' We'll be covering built-it types, flow control, functions, objects, classes, vectors, and pointers.

Students successfully finished this course will:

1) know
Number Data Types, Input and Output Operators, Assignment Operator, Strings Basic Control Flow, Operators, Functions and Procedures, Variable Scope and Global Variables, Stepwise Refinement, Testing and Debugging, Using Vectors and Arrays to Collect Data Items, Pointers and Memory Allocation

2) be able to

  • Writing Simple Programs in C++
  • Constructing and Using Objects
  • Writing Functions
  • Using Vectors and Arrays
  • Using Pointers

  • 2. MAIN TOPICS
    1) Introduction
    The Anatomy of a Computer, Translating Human-Readable Programs to Machine Code, Programming Languages Design and Evolution, Compiling a Simple Program, Errors, The Compilation Process, Algorithms

    2) Fundamental Data Types
    Number Types, Input and Output, Assignment, Constants, Arithmetic, Strings, Output Formatting

    3) Objects
    Constructing Objects, Using Objects, Real-Life Objects, Displaying Graphical Shapes, Graphics Structures, Choosing a Coordinate System, Getting Input from the Graphics Window

    4) Basic Control Flow
    The if Statement, The if/else Statement, Relational Operators, Input Validation, Simple Loops, Processing a Sequence of Inputs, Using Boolean Variables

    5) Functions
    Functions as Black Boxes, Writing Functions, Function Comments, Return Values, Parameters, Side Effects, Procedures, Reference Parameters, Variable Scope and Global Variables, Stepwise Refinement, From Pseudocode to Code, Walkthroughs, Preconditions

    6) Classes
    Discovering Classes, Interface, Encapsulation, Member Functions, Default Constructors, Constructors with Parameters, Accessing Data Fields, Comparing Member Functions with Nonmember Functions, Separate Compilation

    7) Advanced Control Flow
    Multiple Alternatives, Nested Branches, Boolean Operations, DeMorgan's Law, The for Loop, The do Loop, Nested Loops, Processing Text Input, Simulations

    8) Testing and Debugging
    Unit Tests, Selecting Test Cases, Test Case Evaluations, Assertions, Program Traces, The Debugger, Strategies, Debugger Limitations

    9) Vectors and Arrays
    Using Vectors to Collect Data Items, Vector Subscripts, Vector Parameters and Return Values, Removing and Inserting Elements, Parallel Vectors, Arrays, Array Parameters, Character Arrays, Two-Dimensional Arrays

    10) Pointers
    Pointers and Memory Allocation, Deallocating Dynamic Memory, Common Uses for Pointers, Arrays and Pointers, Pointers to Character Strings


    3. RECOMMENDED READING
    A. Textbook
    Cay Horstmann, Computing Concepts with C++ Essentials, Third Edition, John Wiley & Sons, 2003.
    B. Similar textbooks in Bulgarian
    [1] Кай Хорстман, Принципи на програмирането със С++, ИК Софтех, София, 2000, 2003 [translation from second edition].
    [2] Николай Киров, Сборник от учебни материали по ВЪВЕДЕНИЕ В ПРОГРАМИРАНЕТО, Деметра, София, 2003.
    [3] Николай Киров, Сборник от учебни материали по ПРОГРАМИРАНЕ И СТРУКТУРИ ОТ ДАННИ, Деметра, София, 2004.


    4. TEACHING FORMS
    Each topic includes:

  • Lectures
  • Labs

  • 5. FORM OF EVALUATION AND COMPETENCE ASSESSMENT

    NETB101

    Tests
    Homeworks
    Practice
    Written exam
    Oral exam
    Curren evaluation
    40%
    30%
    30%
    0%
    0%
    Exam
    40%
    0%
    20%
    20%
    20%
    NETB111


    Homeworks
    Practice
    Curren evaluation

    30%
    70%

    Exam

    30%
    70%


    6. CURRENT CONTROL AND SCHEDULE  



    Points (or %) 
    for NETB101
    current 
    evaluation
    Points (or %) 
    for NETB111
    current 
    evaluation
    Week No,
    after topic
    Points (or %) 
    for NETB101
    exam
    Points (or %) 
    for NETB111
    exam
    Test 1 NETB101 10 - 5, Objects  - -
    Test 2 NETB101 10 - 10, Classes - -
    Final Test NETB101 20 - 15, Pointers 40 -
    Homework 1 NETB111 10 10 4-5, Objects  - 10
    Homework 2 NETB111 10 10 8-9, Functions - 10
    Homework 3 NETB111 10 10 14-15, Vectors and Arrays  - 10
    Exam of practice 1 NETB111 10 10 6, Objects  - -
    Exam of practice 2 NETB111 10 10 11, Classes  - -
    Final exam of practice NETB111 10 50 15, Pointers 20 70
    Written exam NETB101 - - - 20 -
    Oral exam NETB101 - - - 20 -
    Extra points* both till 5 till 5 -  -  -
    Total:
    100 100 - 100 100
    Points (or %) Grade
    90-100 Excellent 6
    76-89 Very good 5
    60-75 Good 4
    50-59 Satisfactory 3
    0-49 Poor 2

    7. ADDITIONAL EXPLANATION ON THE EXAMINATION MATERIALS AND EVALUATION CRITERIA

    Obliged attendance of the lessons – minimum 80% (24 hours per each subject = 48 hours from 60)