COURSE PASSPORT

NETB101 Introduction to Programming (C++)
NETB121 Programming Language C++

Credits: 3 for NETB101 and 3 for NETB121
Department Informatics
Lecturers:
Assoc. Prof. PhD Nikolay Kirov (NETB101), Assist. Prof. PhD Lasko Laskov (NETB121)
e-mail: nkirov<at>nbu.bg, llaskov<at>nbu.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://nikolay.kirov.be/2012/NETB101/index.html (and mirror: http://www.math.bas.bg/or/nkirov/2012/NETB101/index.html)
which you may want to save as a bookmark in your web browser. 

1. COMPETENCES:

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 and vectors.

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

2) be able to

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

  • 2. MAIN TOPICS

    Introduction
    What is Programming? The Anatomy of a Computer. Machine Code and Programming Languages. Becomes Familiar with Your Programming Environment. Analyzing Your First Program. Errors. Problem Solving: Algorithm Design

    Fundamental Data Types
    Variables. Arithemtic. Input and Output. Problem Solving: First Do It by Hand. Strings.

    Decisions (Basic Control Flow)
    The if Statement. Comparing Numbers and Strings. Multiple Alternatives. Nested Branches. Problem Solving: Flowcharts. Problem Solving: Test Cases. Boolean Variables and Operators. Application: Input Validation.

    Loops
    The while Loop. Problem Solving: Hand-Tracing. The for Loop. The do Loop. Processing Input. Problem Solving: Storyboards. Common Loop Algorithms. Nested Loops. Random Numbers and Simulations.

    Functions
    Functions as Black Boxes. Implementing Functions. Parameter Passing. Return Value. Functions without Return Values. Problem Solving: Reusable Functions. Problem Solving: Sterwise Refinement. Variable Scope and Global Variables. Reference Parameters. Recursive Functions.

    Arrays and Vectors
    Arrays. Common Array Algorithms. Arrays and Functions. Problem Solving: Adapting Algorithms. Problem Solving: Discovering Algorithms by Manipulating Physical Objects. Two-Dimensional Arrays. Vectors.


    3. RECOMMENDED TEXTBOOKS

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


    4. TEACHING FORMS

    Each topic includes:
    - Lectures: NETB101
    - Workshop: NETB121

    5. FORM OF EVALUATION AND COMPETENCE ASSESSMENT

    NETB101

    Tests
    Homeworks
    Practice
    Written exam
    Oral exam
    current Evaluation
    40%
    30%
    30%
    0%
    0%
    Term Exam
    40%
    0%
    20%
    20%
    20%
    NETB121


    Homeworks
    Practice
    current Evaluation

    30%
    70%

    Term Exam

    30%
    70%


    6. CURRENT CONTROL AND SCHEDULE  



    Points for NETB101
    Current  Evaluation
    Points for NETB121
    Current  Evaluation
    Week No.

    Points for NETB101
    Term Exam
    Points for NETB121
    Term Exam
    Test_1 NETB101 10 - 5

    - -
    Test_2 NETB101 10 - 10

    - -
    Final Test NETB101 20 - 15

    40 -
    Homework_1 NETB121 10 10 6

    - 10
    Homework_2 NETB121 10 10 11

    - 10
    Homework_3 NETB121 10 10 15
    - 10
    Exam of Practice_1 NETB121 10 10 6
    - -
    Exam of Practice_2 NETB121 10 10 11
    - -
    Final Exam of Practice NETB121 10 50 15
    20 70
    Written Exam NETB101
    - - -
    20 -
    Oral Exam NETB101 - - -
    20 -
    Extra Points* both max 5 max 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)  
    http://www.math.bas.bg/or/nkirov/2012/NETB101/ and http://nikolay.kirov.be/2012/NETB101/