Created by Erik Grigoryan and Gevorg Galstyan

Informatics Bachelor · Year 1 · Semester 1

Reinforced Informatics 1 (Introduction to Algorithms)

Mathematical, logical and algorithmic foundations of computer science — number systems, logic, core algorithm types, data structures and sorting — forming a solid base for further programming and informatics courses.

4 ECTS 30 in-class hours 80 hours individual work

Course Identification

“Reinforced Informatics 1 (Introduction to Algorithms)” is a first-year, first-semester course in the 2025–2026 academic year within the Informatics Bachelor (Armenian) / Licence en Informatique de l’Université de Toulouse (French) program at the French University in Armenia. The course belongs to the Informatics (Computer Science) specialization and is assigned to the ICM Faculty as Bloc 2, Module 2.

Credits & Workload

The course carries 4 ECTS credits and includes a total of 30 contact hours, delivered entirely as lectures with integrated practical components. There is no separate laboratory or project component specified. In addition, students are expected to complete approximately 80 hours of individual work over the semester.

Aim of the Course

The aim of “Reinforced Informatics 1 (Introduction to Algorithms)” is to study the mathematical, logical and algorithmic foundations of computer science, as well as the basic ideas of algorithms and data structures. The course introduces fundamental concepts and principles that provide a strong theoretical and practical basis for subsequent informatics subjects, including number systems, propositional logic, basic algorithmic structures, arrays, graphs, trees and classical sorting methods.

Learning Outcomes - Knowledge

By the end of the course, students are expected to:

  • Describe discrete structures and basic algorithms used in computer science.
  • Understand and apply the mathematical, logical and algorithmic foundations of computer science.

Learning Outcomes - Application of Professional Knowledge

  • Use effective tools and modern environments for solving algorithmic and programming-related tasks.
  • Explain the principles of positional numeral systems (decimal, hexadecimal, binary), logical expressions, linear, branching and iterative algorithms, and basic data structures (arrays, graphs, trees).
  • Perform conversions between number systems and carry out arithmetic operations in the binary system, as well as construct truth tables for logical expressions.
  • Analyse and represent different algorithm types (linear, branching, loop-based) using pseudocode and flowcharts.

Learning Outcomes - Transferable Skills

  • Work with professional literature in Armenian related to computer science and algorithms.
  • Use clear written and oral professional communication in Armenian to explain algorithmic solutions.
  • Analyse problems and design algorithmic solutions in a structured and step-by-step manner.

Assessment & Grading

Assessment is based on two written examinations: one intermediate test and one final exam. All evaluations are individual. Each assessment consists of 4 problems worth 5 points each for a total of 20 points.

The final grade is composed as follows:

  • First written test – duration: 0.5–1.5 hours, weight: 50% of the overall 20-point grade. Problems cover the mathematical and logical foundations of computer science and the basics of algorithmisation (branching and loop algorithms, one-dimensional arrays).
  • Second written exam – duration: 2 hours, weight: 50% of the overall 20-point grade. Problems require applying algorithmic knowledge to two-dimensional arrays and recursion, as well as tasks on data structures and sorting algorithms.

Full credit for a problem (5 points) is awarded when the student presents a completely correct and well-explained solution. Partial credit (2–4 points) is given when the main concepts are understood but minor mistakes occur (e.g. slight inaccuracies in a truth table or a flowchart). Minimal credit (1–1.5 points) is awarded when the student attempts the solution but shows significant conceptual misunderstandings or largely incorrect results.

Teaching Methods & Prerequisites

Teaching is practice-oriented and based on real or realistic examples and systematic solution of diverse types of problems. Students are guided through interactive activities to develop problem-solving skills, discover effective learning strategies and strengthen critical thinking, helping them retain and apply knowledge in later courses.

To enrol in this course, students should have school-level knowledge of mathematics and informatics. These prerequisites ensure familiarity with basic numerical operations, elementary logic and introductory programming concepts.

Course Content

Topic 1 – Mathematical Foundations of Computer Science

Positional number systems and representation of numerical information in computers. Binary and hexadecimal systems; conversion between decimal, binary and hexadecimal; arithmetic operations in the binary system.

Topic 2 – Logical Foundations of Computer Science

Propositions and logical operators; simple and compound statements; conjunction, disjunction, exclusive OR and negation; implication and equivalence; construction and use of truth tables for analysing logical expressions.

Topic 3 – Foundations of Algorithmisation

The concept of an algorithm and its basic properties. Forms of representing algorithms: mathematical formulas, programming language code and pseudocode. Algorithm representation via flowcharts: types of blocks, graphical symbols, functions and naming conventions.

Topic 4 – Loop Algorithms and Arrays

Conditional structures; simple loop structures (pre-condition loops, post-condition loops, counter-controlled loops); nested loops. Arrays: processing one-dimensional arrays (vectors) and two-dimensional arrays (matrices). Introduction to the concept of recursion.

Topic 5 – Data Structures

Basic data structures used in algorithms and programming:

  • Stacks
  • Queues
  • Lists
  • Graphs
  • Binary search trees
  • Heaps

Discussion of their operations and typical applications in computer science.

Topic 6 – Sorting Algorithms

Classical sorting methods and their basic properties:

  • Bubble sort
  • Selection sort
  • Insertion sort
  • Shaker sort

Introduction to the notion of algorithmic complexity and comparing sorting algorithms on this basis.

Literature & Resources

Required Literature

  • J. Glenn Brookshear, Dennis Brylow, Computer Science: An Overview, 12th Edition, Pearson Education Limited, 2015.
  • A. B. Chaudhuri, Flowchart and Algorithm Basics: The Art of Programming, Mercury Learning and Information LLC, 2020.
  • L. Khachoyan, A. Andreasian, Collection of Programming Problems, YSU Press, 2019.
  • M. A. Jagharyan, Data Structures, YSU Press, 2014.

Additional Literature

  • S. Sogoyan, History of the Development of Informatics and Information Technologies, Zangak, 2015.
  • S. G. Sargsyan et al., Data Structures, YSU, 2010.
  • M. Alaverdyan, T. Harutyunyan, Sh. Melikyan, Collection of Programming Problems, Part 1, YSU Press, 2011.
  • G. L. Yesayan, A. H. Makaryan, Collection of Programming Problems, 2005.
  • Eric Lehman, F. Thomson Leighton, Albert R. Meyer, Mathematics for Computer Science, MIT, 2012.
  • David Harel, Yishai Feldman, The Spirit of Computing, 3rd Edition, 2004.

Online Resources