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
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:
|
|
|
|
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 |
Obliged attendance of the lessons – minimum 80% (24 hours per each
subject = 48 hours from 60)