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.