Skip to content

Algorithms and Data Structures 1

Public syllabus for 2025-2026

Academic overview

Programme
AI
Period
Year 1, Semester 1
Credits
6
Weeks
14

Curriculum placement

Appears in study plans

Teaching team

Course coordinator
Seminar coordinators
(none)

Learning time distribution

Total
Curriculum Lecture Practice Total Weekly Lecture Practice
56 28 28 4 2 2
Exam hours
8
Individual Study Bibliography study Field study Homework Tutoring Others
94 32 13 36 5 0
Overall
150

Learning outcomes

Knowledge

  • C1. Cunoștințe fundamentale de informatică și matematică: algoritmi și structuri de date, logică și principii de demonstrare, modele și limbaje formale, structuri discrete și modele computaționale.

Skills

  • A1. Abilitatea de a identifica modele formale/computaționale adecvate, de a utiliza instrumente de modelare și de calcul științific, de a analiza eficiența unui algoritm sau a utilizării unei structuri de date.
  • A3. Abilitatea de a identifica algoritmi și structuri de date adecvate unei probleme concrete, de a aplica principiile de dezvoltare a unei aplicații informatice și de a implementa algoritmi într-un limbaj de programare.

Responsibility

  • R1. Capacitatea de a rezolva în manieră autonomă sarcini specifice.
  • R2. Capacitatea de a identifica/selecta soluții/căi de rezolvare adecvate și de a genera idei inovative.

Online platform

(none)

Course content

Content Methods Obs
C1. Fundamentals and description of algorithms. The stages of solving a problem. Data and data classifications. Types of processing (sequential, decision, cyclic). Pseudocode. Description of fundamental processing and structured data. Lecture, conversation, example 2h
C2. Successive refinement technique and decomposition of an algorithm into subalgorithms. Passing data and calling subalgorithms. Examples. Lecture, conversation, example 2h
C3. Checking the correctness of the algorithms. The stages of verifying the correctness of algorithms. Elements of formal correctness analysis: preconditions, postconditions, invariants, termination functions. Rule of sequential structure, rule of alternate structure, rule of repetitive structure. Lecture, conversation, exemplification, demonstration 2h
C4. Analysis of the complexity of algorithms I. Purpose of the analysis. Analyzed resources. Execution time estimation (best case, worst case, average case). Lecture, conversation, example, demonstration 2h
C5. Algorithm complexity analysis II. Order of complexity . Asymptotic notation. Properties. Asymptotic analysis of fundamental structures. Examples. Classes of complexity. Lecture, conversation, example, demonstration 2h
C6. Elementary sorting methods . The problem. Method of insertion, selection and exchange of neighboring elements (for each method: variants of the algorithm, correctness check, complexity analysis). Lecture, conversation, example, demonstration 2h
C7. Decrease and conquer technique . The basic principle. Recursion (definition, examples, recursive call mechanism, correctness checking, complexity analysis). Examples: factorial calculus, power calculus, binary search, generating permutations, tower of Hanoi problem, etc. Lecture, example, demonstration 2h
C8. Divide and conquer technique . The basic principle. The use of the master theorem in the analysis of divide and conquer algorithms. Sorting by interclassing (algorithm, correctness check, complexity analysis). Lecture, example, demonstration 2h
C9. Divide and conquer technique . Quick sort (algorithm, correctness check, complexity analysis). Other applications of the division technique. Lecture, example, demonstration 2h
C10. The technique of locally optimal choice (greedy). Class of problems. The principle of the technique. Correctness checking and complexity analysis. Examples: maximum sum subset problem, coins problem, knapsack problem (fractionation), activity selection problem. Lecture, example, demonstration 2h
C11. Dynamic Programming I . Presentation of the technique. The main stages in the application of dynamic programming. Lecture, example, demonstration 2h
C12. Dynamic programming II. Other applications of dynamic programming. The memoization technique. Lecture, example, demonstration 2h
C13. Backtracking search technique . Class of problems. The principle of the method and the general structure. Examples: generating permutations, generating subsets of a set, checker placement problem, coloring maps, determining paths in a graph. Lecture, example, demonstration 2h
C14. Recapitulation with the structuring of the matter. Preparation for the exam. Lecture, example, demonstration 2h

Course bibliography

[1] S. Baase; Computer Algorithms. Introduction to Design and Analysis, Addison Wesley Publishing Company, 2nd edition, 1993 [2] TH Cormen, CE Leiserson, RL Rivest and C. Stein; Introduction to Algorithms, MIT Press, 4nd edition, 2022. [3] AC Giumale; Introduction to the analysis of algorithms. Theory and application, Ed. Polirom, 2004 [4] MT Goodrich, R. Tamassia, MH Goldwasser. Data Structures & Algorithms in Python, Wiley, 2013 [5] A. Levitin; Introduction to the Design and Analysis of Algorithms, Addison Wesley Publishing Company, 2003 [6] D. Lucanu, M. Craus; Designing algorithms, Ed. Polirom, 2008 [7] S. Skiena; The Algorithm Design Manual, second edition, 2008 [8] D. Zaharie; Introduction to the design and analysis of algorithms, Ed. Eubeea, 2008

Seminar content

Content Methods Obs
L1. Algorithmic problem solving. From requirement to algorithms. Abstraction of problems. Problematization, dialogue, collaborative learning 2h
L2. Description of algorithms in pseudocode I. Presentation of processing structures. Decomposing problems into subproblems, defining and calling functions. Problematization, dialogue, collaborative learning 2h
L3. Description of algorithms in pseudocode II. Operations on one- and two-dimensional arrays. Error identification. Problematization, dialogue, collaborative learning 2h
L4. Checking the correctness of the algorithms. Identifying and using invariants Problematization, dialogue , learning through collaboration 2h
L5. Algorithm efficiency analysis I. Algorithm execution time estimation Problematization, dialogue, collaborative learning 2h
L6. Algorithm efficiency analysis II. Establishing the order of complexity of an algorithm. Problematization, dialogue, collaborative learning 2h
L7 Variants of sorting algorithms. Generating permutations and subsets. Problematization, dialogue, collaborative learning 2h
L8. Test. ASSESSMENT 2h
L9. Applications of the reduction technique. Complexity analysis of recursive algorithms. Problematization, dialogue, collaborative learning 2h
L10. Binary search. Applications of interclassing and partitioning. Problematization, dialogue, collaborative learning 2h
L11. Applications of the greedy technique . Selection and planning problems (activities selection, task planning, packing problems). Problematization, dialogue, collaborative learning 2h
L12. Applications of dynamic programming. Problematization, dialogue, collaborative learning 2h
L13. Applications of Recursive Search. Generation (subsets, permutations, etc.) and traversal (minimum cost paths) algorithms. Problematization, dialogue, collaborative learning 2h
L14. Review techniques and exam preparation. Problematization, dialogue, collaborative learning 2h
Bibliography: Same as the course

Seminar bibliography

The content is in accordance with the structure of similar courses from other universities and covers the fundamental aspects necessary to become familiar with the design and analysis of algorithms. The ability to identify, design and analyze algorithms is essential to any computer science activity. The skills offered by this discipline are necessary for an IT specialist to identify effective solutions for solving concrete problems, regardless of the specific field of activity.

Corroboration

(none)

AI tools guidance

(none)

Evaluation and delivery

Activity Criteria Methods Percentage
C
  • Knowledge of specific algorithms for classic problems and fundamental data structures;
  • Knowledge of methods for checking the correctness and analyzing the efficiency of algorithms;
  • The ability to identify the algorithm and data structure appropriate to a concrete problem and to establish the order of complexity of an algorithm;
  • Written exam in exam session & oral examination
  • 45.0%
S
  • The ability to check the correctness of an algorithm
  • The ability to identify the algorithm and data structure appropriate to a concrete problem, verify correctness and establish the order of complexity of an algorithm;
  • Test during the semester
  • 30.0%
S
  • Active participation in laboratory applications, solving the homework;
  • Homework / laboratory activity (oral assessment)
  • 20.0%

Performance standards

Minimum standard (knowledge and skills required for grade 5) description of a simple algorithm in pseudocode; establishing the order of complexity of a simple algorithm; knowledge of some fundamental algorithms in computer science; The final grade is calculated as the weighted average of the grades awarded for the components specified in 9.4 and 9.5. The exam is considered passed if the average is at least 5 and each of the grades is at least equal to 4. In each of the exam sessions, the grade is calculated according to the same rule. In the reevaluation sessions, only tests involving a written test and for which a passing grade (minimum 5) has not been obtained may be given, unless the student wishes to take the tests already passed. The seminar activity consists of discussing the solutions proposed by the students (their interventions are scored) and analyzing the statements of the problems proposed for the next seminar. A grade is awarded for each intervention. The seminar grade will be the arithmetic mean of the grades obtained during the semester. A minimum of two interventions are required to pass the course. Note: Students may attend consultation hours (2 modules/week according to the schedule established at the beginning of the semester) during which the course and seminar instructor answers students' questions and provides additional explanations related to the course content, seminar applications, and topics.

Additional info

(none)