Section outline
-
-
The schedule for the second semester.
-
This page presents the official syllabus for the course "Algorithmics and Data Structures 2". It provides detailed information about the course objectives, content, assessment methods, and recommended prerequisite knowledge. Explore the topics covered in each chapter and find valuable resources for your studies in algorithmic problem-solving. Stay informed about your instructor, and their contact details for any questions or clarifications.
-
This file contains the program for the 'Algorithmics and Data Structures 2' course as outlined in the latest curriculum framework adopted for the Common Core in Mathematics, Applied Mathematics, and Computer Science, effective from the academic year 2018-2019.
-
This directory is a valuable resource, offering a range of references, especially books available in three languages: Arabic, French, and English, that can assist students in their learning of algorithms and programming in the C language.
-
The schedule for the upcoming exam.
-
This folder contains some exams from previous years with their solution key.
-
In programming, simplicity and clarity are essential, particularly when confronting complex problems. Subprograms offer a powerful solution by breaking down these challenges into manageable, semi-independent tasks, each addressed by dedicated sets of instructions or modules. This approach, known as modular programming, forms the cornerstone of structured programming methodologies, promoting organization, readability, maintainability, and code reusability.
This chapter explores the benefits of modularity and guides students on defining and implementing their own subprograms in algorithmics and in C programming language. This chapter serves as a foundational guide for understanding the principles of modular programming and its practical implementation.
-
The course materials for Chapter 1 in English, available in PDF format.
This document is formatted for double-sided printing, 2 pages per sheet.
-
This tutorial series covers Chapter 1, which delves into the topic of subprograms, specifically functions and procedures. This series comprises a comprehensive set of exercises designed to reinforce your understanding of the material covered in class including: declaration and utilization of functions, declaration and application of procedures, proficiency in parameter passing modes, exploration of recursion.
-
This document presents the standard solutions for Tutorial Series N°. 1 on Subprograms.
-
This folder contains the recorded session divided into three parts in order to facilitate loading and downloading. You'll find each part labeled accordingly for seamless navigation and access. Feel free to explore each section at your convenience. If you have any questions or encounter any issues with the recordings, please don't hesitate to reach out.
-
This practical work aims to learn, through a set of activities and exercises, the different forms of subprograms and their use in C language.
At the end of this practical work, you should be familiar with modular programming and be able to declare, call, and use subprograms correctly in the C language.This document is formatted for double-sided printing, 2 pages per sheet. -
This document presents the standard solutions for Lab Sheet No. 1 on Subprograms, offering detailed guidance and examples for mastering subprogram handling techniques in C programming.
-
This series offers a set of supplementary exercises for individual work on recursive subprograms along with their solutions. It's important to note that these exercises are a supplement and by no means replace the classes and educational resources provided in the classroom. They are designed to enhance your understanding and provide additional opportunities for practice and self-learning.
-
-
Until now, our programs relied on temporary data stored in RAM, susceptible to loss upon system shutdown. To address this, files offer a solution by providing a means to store data persistently on permanent storage media.
This chapter explores the fundamentals of file handling in algorithmics and the C language, focusing on methods for efficient data storage, retrieval, and manipulation that transcend the limitations of volatile memory.
-
The course materials for Chapter 2 in English, available in PDF format.
-
This document is the content for Tutorial Series No. 2, centering around Files, especially text files. Based on what you learned in Lecture No. 2, this series is a hands-on application that reinforces what you've studied in class. It includes exercises for you to work on independently, plus extra tasks to give you practical experience and a better grasp of how files work.
-
This document presents the standard solutions for Tutorial Series No. 2 on Files.
-
Explore Files in C with our practical Worksheet N°2. This lab sheet is designed to introduce you to the practical use of Files in the C language. It covers essential topics such as reading from and writing to files, manipulating file pointers, and effectively managing file operations.
By the end of this lab, the student should be familiar with reading from and writing to files, handling file pointers, and managing file operations correctly in C.
-
-
Algorithmics and the C language allow for the creation of custom types or structures from basic types, known as data structures, as explored in the first semester. While the variables declared with these types define both the nature of values and memory space, they remain static variables, allocated during compilation with a fixed size. However, arrays, the simplest static data structures, can be limiting, lacking flexibility for dynamic resizing or element manipulation. Fortunately, dynamic data structures, including linked lists, offer solutions.
In this chapter we delve into the fundamental model of linked lists, which provide a more flexible approach to organizing data in memory. Linked lists are closely related to pointers and dynamic memory allocation, essential concepts addressed prior to exploring linked lists.
-
The first part of the course materials for Chapter 3 in English, available in PDF format.
This document is formatted for double-sided printing, 2 pages per sheet.
-
This file serves as the material for Tutorial Series No. 3, focusing on Pointers and Linked Lists. Aligned with the concepts introduced in Lecture No. 3, this series serves as a practical application, reinforcing the knowledge gained in class. It comprises a set of 9 exercises designed to provide hands-on experience and a deeper understanding of the intricacies of Pointers and Linked Lists.
-
This document presents the standard solutions for Tutorial Series No. 3 on Pointers and Linked Lists.
-
Welcome to this lab sheet on pointers and linked lists in the C programming language. Pointers and linked lists are fundamental concepts that play a crucial role in many computer science applications, particularly in data structures and memory management.
Throughout this lab sheet, we will delve into the intricacies of pointers and linked lists, exploring their usage, implementation, and practical applications.
This document is designed to be interactive and hands-on. You will encounter a series of examples and exercises carefully crafted to reinforce your understanding and proficiency in working with pointers and linked lists.
By the end of this session, you will have gained a solid understanding of these concepts and be equipped with the skills to employ them effectively in your programming endeavors.
This document is formatted for double-sided printing, 2 pages per sheet. -
This document presents the standard solutions for Lab Sheet No. 3 on Pointers and Linked Lists, offering detailed guidance and examples for mastering Pointers and Linked Lists handling techniques in C programming.
-
I am pleased to share with you a series of additional exercises on linked lists that I have prepared. This collection comprises 30 exercises covering a wide range of concepts and difficulty levels. Each exercise is accompanied by its solution, presented in both pseudo-code and the C programming language. These exercises have been carefully designed to offer a more in-depth exploration of linked list concepts beyond those covered in our classroom sessions.
It is important to emphasize that these exercises serve as supplementary material and in no way serve as a substitute for the course handouts and educational resources provided in the classroom. They are intended for individual work at home, providing an opportunity for you to further enhance your understanding and proficiency in linked list manipulation.
-
-
In this part of the chapter, we delve into specialized data structures derived from classical linked lists. Specifically, we focus on stacks and queues, essential in computer science for efficiently organizing data in various applications. Stacks and queues, both abstract data structures, allow element storage according to specific rules, with operations to add and remove elements. While stacks follow a Last In, First Out (LIFO) order, queues adhere to a First In, First Out (FIFO) order. This part of the chapter explores their functionalities, implementation using special linked lists, and basic operation implementations.
-
The second part of the course materials for Chapter 3 in English, available in PDF format.
This document is formatted for double-sided printing, 2 pages per sheet. -
This document contains the content for Tutorial Series No. 4, focusing on special linked lists, particularly Stacks and Queues. Based on the concepts covered in Lecture No. 3, this series offers hands-on applications to reinforce your understanding of the material. It includes exercises for independent practice, along with additional tasks to provide practical experience and enhance your comprehension of how stacks and queues operate.
-
This document presents the standard solutions for Tutorial Series No. 4 on Special Linked Lists.
-
-
-
Opened: Monday, 29 April 2024, 6:00 PMDue: Sunday, 12 May 2024, 12:00 AM
Welcome, students!
This assignment serves as an opportunity to put into practice the knowledge and skills you've gained in our lectures, tutorials, and practical sessions on linked lists. Your task is to develop a program for managing patients in a medical office, leveraging the concepts and techniques we've covered.
By working on this assignment, you'll not only reinforce your understanding of linked lists but also gain valuable experience in real-world application development. You'll have the chance to tackle practical challenges and refine your problem-solving abilities in a context relevant to your future endeavors in computer science and software engineering.
You are provided with nearly two weeks to complete the assignment and submit it on the distance learning platform. Use this time wisely to engage with the material, experiment with different approaches, and seek assistance if needed. Remember, the goal is not just to complete the assignment, but to deepen your understanding and enhance your skills.
We wish you all the best in your endeavors! If you have any questions or need clarification, don't hesitate to reach out to us. Happy coding!
-