Course Title : Introduction to Algorithms and Programming  

Code  Course Type 
Regular Semester 
Lecture (hours/week) 
Seminar (hours/week) 
Lab (hours/week) 
Credits  ECTS  
CMP 1112  A  1  3  1  0  3.50  5  
Lecturer and Office Hours  Edlir Spaho, Msc  
Teaching Assistant and Office Hours  
Language  
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 objectoriented 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  
Week  Topics  
1  Introduction 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. 329)  
2  Introduction 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. 3050)  
3  Variables 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. 5072)  
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. 74103)  
5  Conditional Structures This topic deals with conditional structures if, ifelse, conditional operator, nested if structures, branching by using the switch command as well as labeling and jumping in different parts of the program. (pg. 124174)  
6  Repetitive 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 dowhile loop), labeling and jumping inside and outside loops as well as nested loops structures. (pg. 175 286)  
7  Arrays 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. 104123)  
8  Midterm Exam  
9  Operations 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)  
10  Functions 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. 287310)  
11  Functions 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. 344352, 373384)  
12  Functions with Vectors and Matrices This topic deals with functions for number series, build in mathematical functions and usergenerated 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. 353373)  
13  Enumerations 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. 433)  
14  Files 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. 317330)  
15  Review and Projects Presentation  
16  Final Exam  
Prerequisites  
Textbook 


Other References 


Laboratory Work  
Computer Usage  
Other  
Learning Outcomes and Competences  
1  Studentë do të jenë në gjendje të kuptojnë parimet e strukturimit të bllokskemave dhe algoritmeve.  
2  Studentët do të jenë në gjendje të kuptojnë dhe përdorin elementët kryesorë të gjuhës së programmimit C++.  
3  Studentët do të jenë në gjendje të mësojnë si të programojnë në gjuhën C++ duke përdorur strukturat kushtëzuese, strukturat ciklike, funksionet, vektorët, matricat dhe skedarët.  
4  Studentët do të jenë në gjendje të përdorin teknika të ndryshme programimi për të ndërtuar programe (module programesh) me efikasitet të lartë.  
5  Studentët do të jenë të pajisur me terminologjinë dhe teknikat e nevojshme për të vijuar me lëndë të tjera pasardhëse si Programimi i Orientuar në Objekte, si dhe gjuhë të tjera programimi.  
Course Evaluation Methods  
Interm studies  Quantity  Percentage  
Midterms  1  30  
Quizzes  0  0  
Projects  0  0  
Term Projects  0  0  
Laboratory  1  30  
Attendance  0  0  
Contribution of interm studies to overall grade  60  
Contribution of final examination to overall grade  40  
Total  100  
ECTS (Allocated Based on Student) Workload  
Activities  Quantity  Duration (hours) 
Total Workload (hours) 

Course Duration (Including the exam week : 16 x Total course hours)  16  4  64  
Hours for offtheclassroom study (Prestudy, practice)  14  4  56  
Assignments  1  0  0  
Midterms  1  4  4  
Final examination  1  8  8  
Other  0  0  0  
Total Work Load  132  
Total Work Load / 25 (hours)  5.28  
ECTS  5 
Get Syllabus PDF (Albanian) Get Syllabus PDF (English)