Course Description: This course introduces students to the fundamental principles of algorithm design and data
representation, serving as a foundation for programming and computational problem-
solving. This course combines theory and practice through algorithmic reasoning and
implementation in the C programming language. This course consists of six chapters:
Chapter 1 – Introduction and Historical Background:
o This chapter provides a brief overview of the history of computer science and the emergence
of algorithmic thinking. It introduces the concept of an algorithm and explains its essential
role in problem-solving and computation.
Chapter 2 – Sequential Algorithms:
o Students learn the structure and syntax of algorithms, including variables, constants, and
data types. The chapter covers basic operations, assignment, input/output instructions, and
simple algorithms. It also introduces the representation of algorithms using flowcharts and
their translation into the C language.
Chapter 3 – Conditional Structures:
o This section explores how decisions are made within algorithms through conditional
statements. Students learn to use structures such as if, if–else, and switch to control the flow
of execution based on logical conditions.
Chapter 4 – Loops:
o This chapter focuses on iterative processes that repeat a set of instructions. It introduces the
different types of loops (while, do...while, and for), their syntax, and practical applications.
Concepts such as nested loops and control statements (break, continue, goto, return) are also
presented.
Chapter 5 – Arrays and Strings:
o Students are introduced to arrays as data structures that store multiple values of the same
type, as well as to strings for text manipulation. The chapter emphasizes how to create,
access, and modify arrays and strings in C language.
Chapter 6 – Custom Data Types:
o The final chapter explains how to define and use user-defined data types such as struct and
typedef. Students learn how to organize and manage complex data, preparing them for more
advanced programming concepts and structured data management.
Target Audience: First-year mathematics students.
Main Objectives: The main objectives of this course is to help students understand how
problems can be formally described, analyzed, and solved efficiently using algorithmic and
computational methods.