NETB100 Programming
Annotation:
This course is intended for beginners in computer programming, and is designed to cover the theoretical background of the basic topics that are required to acquire the practical skills to design and implement simple computer programs. The course gives the fundamental knowledge needed to study the concepts of the object-oriented programming (OOP) starting from the procedural programming paradigm.
The programming language chosen for the course is C++ because:
- it is a multi-paradigm language;
- it is popular and widely used;
many modern languages (Java, C#, PHP, Python, Lua, etc.) are based on it.
The programming environment is the Linux OS distribution Ubuntu together with the GCC compiler collection front end for C++. Although the usage of other Linux/Unix based distributions is acceptable, any usage of MS Windows is strictly forbidden in this course. Also, no IDE usage is encouraged, and students must input the text of their programs using a simple text editor.
The course is composed by 12 theoretical lectures that cover in details the following basic topics: fundamental data types, character strings, program control flow, program structure, functions and variable scope, arrays and vectors, introduction to classes, debugging.
The course is the theoretical part of the collection of courses that cover the topics for computer programming for the first semester of the program Networking Technologies. The practical part is covered by the following two practical courses that are interchangeable:
- NETB125 Computer Programming Labs;
- NETB126 C++ Applications.
Lecturers:
Assoc. Prof. Lasko Laskov, PhD
Course Description:
Competencies:
Computer programming, procedural programming paradigm, basic object-oriented programming, C++.
Prerequisites:
The students must have the required level of English language (B2). High school mathematics, basic computer skills.
Types:
Full-time Programmes
Types of Courses:
Lecture
Language of teaching:
English
Topics:
Bibliography:
1. C. Horstmann. C++ for Everyone 2E Binder Ready Version. John Wiley & Sons, 2nd edition, 2011.
2. C. Horstmann and T. Budd. Big C++. John Wiley & Sons, 2nd edition, 2008.
3. B. Stroustrup. The C++ programming language. Addison-Wesley, 2000.
4. V. Shtern. Core C++ – A Software Engineering Approach. Prentice Hall, 2nd edition, 2000.
Assessment:
The grading of the student is evaluated in points. The maximal grade for the course is 100 pt. There are two ways to receive the final grade for the course.
1. Exams during the semester:
max 40 pt. – three theoretical tests (10 pt., 10 pt., 20 pt.);
max 30 pt. – three practical exams (NETB125 or NETB126);
max 30 pt. – three homework assignments (NETB125 or NETB126);
2. Term exam during the exam session:
max 40 pt. – theoretical term test;
max 30 pt. – practical term exam (NETB125 or NETB126);
max 30 pt. – three homework assignments (NETB125 or NETB126);
Note that in both cases the homework assignments are considered. The practical exams are held according to the schedule of NETB125 Computer Programming Labs or NETB126 C++ Applications, depending on which of the two courses the student is attending to.