Course Title : Introduction to Algorithms and Programming
Code Course
Credits ECTS
CMP 111-2 A -1 3 1 0 3.50 5
Lecturer and Office Hours
Teaching Assistant and Office Hours
Course Level
Description The course "Introduction to Algorithms and Programming" provides general knowledge on basic algorithms, block diagrams, steps for building and structure a program. In this context, through this course, students will learn modular programming techniques with the highest possible efficiency and effectiveness. This course will first address the basic concepts of algorithm and programming, to continue with the presentation and declaration of standard data types, conditional and repetitive structures, functions, recursion, arrays and pointers. Also in this course main finding and sorting algorithms will be treated.
Objectives This course aims to: • Familiarize students with the basic concepts of algorithm and programming. • Familiarize students with the basic algorithms, structure and steps for building a program. • Enable students to build basic object-oriented programs. • Explain the importance of algorithms in building programs as efficiently as possible. • Explain to students the elements, syntax, and basic tools used in a program. • Develop critical thinking in analyzing the algorithm and performance of a program.
Course Outline
1Introduction to Computers and C++ This topic provides an overview of the course, basic concepts of computer literacy and a general introduction to the C ++ programming language. The topic also covers the steps for creating, compiling, executing and saving a project created using a CodeBlocks IDE. (pg. 3-29)
2Introduction to C++ Programming, Flowcharts, Algorithms and Pseudo codes The topic deals with the steps for building a program, the main structure of a program as well as the analytical and graphical representation of simple algorithms. (pg. 30-50)
3Variables Declaration, Data Types, Operators and Expressions This topic deals with declaration of C ++ built in data types, rules for using identifiers, variables, constants, mathematical, relational, and logical operators, as well as increment and decrement operators. (pg. 50-72)
4 Data Formatting in C++ This topic treats the instructions used for reading and writing, the ways of formatting different types of data, writing with certain precision, displaying exponential data, etc... (pg. 74-103)
5Conditional Structures This topic deals with conditional structures if, if-else, conditional operator, nested if structures, branching by using the switch command as well as labeling and jumping in different parts of the program. (pg. 124-174)
6Repetitive Structures (Loops) This topic deals with what are repetitive structures (loops), their use, elements of a repetitive structures (loops), the main types of loop (for, while and do-while loop), labeling and jumping inside and outside loops as well as nested loops structures. (pg. 175- 286)
7Arrays and Matrices This topic treats the definitions of arrays and matrices, the declaration, reading and writing of their elements, the sum of their elements, the reading and writing of a certain element or elements as well as their displaying in a certain format. (pg. 104-123)
8Midterm Exam
9Operations with Vectors and Matrices This topic deals with different operations that can be performed with arrays or matrices such as finding certain elements, finding the element with the largest or smallest value, counting elements according to one or more criteria, sorting of elements and the building up the vector from the matrix and vice versa. (pg. 175- 286)
10Functions This topic will address the declaration and calling of functions, construction of simple functions such as sum and product, functions with and without result, functions with and without formal parameters, declaration and calling of several functions simultaneously and multiple calling of a function . (pg. 287-310)
11Functions and Recursion This topic deals with the concept of recursion, its implementation through functions such as factorial, void and inline functions, their implementation with various examples and macro functions. (pg. 344-352, 373-384)
12Functions with Vectors and Matrices This topic deals with functions for number series, build in mathematical functions and user-generated mathematical functions, functions for string operations such as finding string length, copying partial or complete strings, merging two strings and declaring of local and global variables (pg. 353-373)
13Enumerations This topic deals with the definition and utilization of enumeration group, the use of loops with numbered values, different operations with enumerations as well as the creation and use of multiple enumerations. (Literature – 2, pg. 4-33)
14Files in C++ This topic deals with creating and saving header files, calling/including files in the program (with #include) from the current folder and from any folder, saving of functions as header files and using them in other programs. (Literature – 2, pg. 317-330)
15Review and Projects Presentation
16Final Exam
Other References
Laboratory Work
Computer Usage
Learning Outcomes and Competences
1Students will be able to understand the principles of flowcharts and algorithms.
2Students will be able to understand and use the key elements of the C ++ language.
3Students will be able to learn how to program in C ++ using conditional structures, loops, functions, arrays, matrices and files.
4Students will be able to use various programming techniques to build programs (or program modules) with high efficiency.
5Students will be equipped with the necessary terminology and techniques to proceed with other subsequent subjects such as Object Oriented Programming, as well as other programming languages.
Course Evaluation Methods
In-term studies Quantity Percentage
Term Projects00
Contribution of in-term studies to overall grade60
Contribution of final examination to overall grade40
ECTS (Allocated Based on Student) Workload
Activities Quantity Duration
Total Workload
Course Duration (Including the exam week : 16 x Total course hours) 16464
Hours for off-the-classroom study (Pre-study, practice) 14342
Assignments 100
Midterms 188
Final examination 11212
Other 188
Total Work Load 134
Total Work Load / 25 (hours) 5.36

Get Syllabus PDF (Albanian) Get Syllabus PDF (English)