Course Title : Introduction to Algorithms and Programming
Code Course
Type
Regular
Semester
Lecture
(hours/week)
Seminar
(hours/week)
Lab
(hours/week)
Credits ECTS
CMP 111-2 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 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
WeekTopics
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
Prerequisites
Textbook
  • D. S. Malik C++ Programming, From Problem Analysis to Program Design, 2018
Other References
  • Deitel H. and Deitel P., “C++ How to Program”, 9th Edition, Prentice Hall, 2014
Laboratory Work
Computer Usage
Other
Learning Outcomes and Competences
1Studentë do të jenë në gjendje të kuptojnë parimet e strukturimit të bllokskemave dhe algoritmeve.
2Studentët do të jenë në gjendje të kuptojnë dhe përdorin elementët kryesorë të gjuhës së programmimit C++.
3Studentë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.
4Studentë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ë.
5Studentë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
In-term studies Quantity Percentage
Midterms130
Quizzes00
Projects00
Term Projects00
Laboratory130
Attendance00
Contribution of in-term studies to overall grade60
Contribution of final examination to overall grade40
Total100
ECTS (Allocated Based on Student) Workload
Activities Quantity Duration
(hours)
Total Workload
(hours)
Course Duration (Including the exam week : 16 x Total course hours) 16464
Hours for off-the-classroom study (Pre-study, practice) 14456
Assignments 100
Midterms 144
Final examination 188
Other 000
Total Work Load 132
Total Work Load / 25 (hours) 5.28
ECTS 5

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