CITB107 Програмиране

Учебна програма, график за лекциите и упражненията, учебни материали [2019/2020]


Тема на лекцията
Дата

Тема на упражнението


1
Увод. Програмн езици С и С++.  Алгоритми
Анатомия на компютър. Компилиране на проста програма. Програмни езици. Грешки. Алгоритми.
Chapter 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
Сам. работа: Big C++
R1.7, R1.14, R1.18, P1.1
1.10

Операционна система Ubuntu. Инсталиране и основни дейности с нея. Работа с конзола (текстов терминал). Текстов редактор. Компилатор. Написване, компилиране и изпълнение на програма на  С++. Компилиране на прости програми.  Среди за програмиране в MS Windows -  Dev-C++ || Code::Blocks
2
Основни типове данни
Числени типове; вход и изход; операция присвояване; константи; аритметика; форматиране на изхода
Chapter 2. Fundamental Data Types
Number Types, Input and Output, Assignment, Constants, Arithmetic, Output Formatting
Сам. работа: Big C++
R2.4, R2.6, R2.7, R2.13,  P2.5, P2.6, P2.15
8.10

Числени типове, представяне на числата в компютъра; вход и изход. Underflow, overflow, грешка от закръгляне. Присвояване; константи; аритметика. Форматиране на изхода.


3
Низове  и обекти
Низове; конструиране на обекти; използване на обекти; обекти от реалния свят.
Chapter 3.
Objects [pdf-file]
Constructing Objects, Using Objects, Real-Life Objects
Сам. работа: Big C++
R2.13, R2.16, R2.22, ,P2.16, P2.21, P2.30
15.10

Низове. Конструиране на обекти; използване на обекти; обекти от реалния свят.
Първо домашно.


4
Основни  управляващи оператори
Оператор if и if/else; оператори за сравнение; проверка на входа; прости цикли; обработка на входна редица; използване на булеви променливи
Chapter 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
Сам. работа: Big C++
R3.1, R3.3, R3.6, R3.12, P3.1, P3.2, P3.8
22.10

Оператори if и if/else; оператори за сравнение; сравняване на числа тип double; проверка на входа. Цикъл while; обработка на входна редица; използване на булеви променливи.
5
Тест 1
29.10

Използване на функции; писане на функции; коментари; връщани стойности; параматри; странични ефекти, 
6
Функции  - I
Функциите като черни кутии; писане на функции; коментари; връщани стойности; параматри; странични ефекти; процедури
Chapter 5.
Functions I
Functions as Black Boxes, Writing Functions, Function Comments, Return Values, Parameters, Side Effects, Procedures, Reference Parameters
R4.4. R4.7, P4.7, P4.15, P4.20
5.11

Параметри-псевдоними; област на действие на променливи; глобални променливи.
Второ домашно.

7
Функции  - II
Параметри-псевдоними; област на действие на променливи; глобални променливи; стъпково прецизиране; от псевдокод към код.
Chapter 5.
Functions II
Variable Scope and Global Variables, Stepwise Refinement, From Pseudocode to Code
Задачи за упражнения (на английски)
Задачи за упражнения (на български)
R4.9, R4.13, R4.17, P4.4, P4.5, P4.6,
12.11

Първо контролно


8
Класове
Откриване на класове; интерфейс; капсулиране; член-функции; конструктори по подразбиране и с параметри; достъп да членове-данни; сравняване на член-функции с обикновени функции
Chapter 6.
Classes
Discovering Classes, Interface, Encapsulation, Member Functions, Default Constructors, Constructors with Parameters, Accessing Data Fields, Comparing Member Functions with Nonmember Functions
19.11

Класове.

9
Управляващи оператори
Няколко алтернативи; вложени клонове; булеви операции; закони на DeMorgan. Цикли for и do; вложени цикли; обработка на текстов вход.
Chapter 7.
Advanced Control Flow I
Chapter 7. Advanced  Control Flow II
Multiple Alternatives, Nested Branches, Boolean Operations, DeMorgan's Law. The for and do Loop, Nested Loops, Processing Text Input.
Задачи за упражнения (на англйски)
26.11

Оператор if - алтернативи, вложени оператори. Цикли for и do; вложени цикли; обработка на текстов вход.
10
Тест 2
3.12

Проверка на програми. Проследяване на работата на програмата. Използване на дебъгер.
Трето домашно

11
Тестване и дебъгване
Единични тестове; избор на тестове; оценка на тестове; макрос assert; проследяване на програма; дебъгер.
Chapter 8. Testing  and Debugging
Unit Tests, Selecting Test Cases, Test Case Evaluations, Assertions, Program Traces, The Debugger
R4.21, R4.23, P4.15
10.12

Използване на вектори. Вектори като параметри и върнати стойности на функции. Успоредни вектори.
12
Вектори
Използване на вектори за съхраняване на данни. Индекси. Вектори като параметри и върнати стойности. Успоредни вектори
Chapter 9.
Vectors and Arrays
Using Vectors to Collect Data Items, Vector Subscripts, Vector Parameters and Return Values, Removing and Inserting Elements, Parallel Vectors
R6.2, R6.10, P6.2, P6.7, P6.10, P6.14
Задачи за упражнения (на български)
17.12

Прости алгоритми за вектори.

13
Масиви
Дефиниране и използване на масиви. Масиви като параметри на функции. Масиви от символи. Двумерни масиви.
Chapter 9. Vectors and Arrays
Using Vectors to Collect Data Items, Vector Subscripts, Vector Parameters and Return Values, Removing and Inserting Elements, Parallel Vectors
7.01

Използване на масиви. Масиви като параметри на функции. Масиви от символи. Двумерни масиви.


14
Указатели
Дефиниране и стойност на указател. Динамична памет. Използване на указатели в С++. Масиви и указатели. Указатели и С-низове.
Chapter 10. Pointers
Pointers and Memory Allocation, Deallocating Dynamic Memory, Common Uses for Pointers, Arrays and Pointers, Pointers to Character Strings
14.01

Указатели
Четвърто домашно

15
Тест 3
21.01

Второ контролно


Семестриален изпит: Тест 4 + устен изпит
27.01.2020, 8:00, 409-1
27.01