Senegal Premiere Digital Computing AI
Senegal Classe de Première - Digital and Computer ScienceThis course builds upon prior computer science instruction in primary school, middle school mathematics and technology, and the secondary school "Digital and Scientific Technology" course. It also incorporates the algorithmic concepts covered in secondary school mathematics. The curriculum is designed to prepare students for higher education by providing a foundation in computer science, fostering a scientific approach, and encouraging research activities. The focus is on understanding the core concepts and methods of computer science, both scientifically and technically. Core ConceptsThe curriculum revolves around four fundamental concepts and their interactions:
A key transversal element is interfaces, which enable communication with humans, data collection, and system control. Skills DevelopmentThe course aims to develop the following skills:
Project-Based ApproachAt least one-quarter of class time is dedicated to designing and developing projects in groups of two to four students. These projects are crucial for understanding computer science and acquiring practical skills. Projects can address issues from other disciplines and focus on designing solutions for specific needs. Student choice in project themes is encouraged. Examples include:
Project management includes milestones for review with the teacher, validation of elements, progress monitoring, and objective adaptation to maintain student motivation. Projects should remain manageable to ensure completion. ImplementationPractical activities and projects require individual student access to internet-connected equipment. A user-friendly, interpreted, concise, free, multi-platform programming language with rich libraries and a large educational community is preferred. Currently, Python 3 (or higher) is the chosen language, although expertise in a specific language is not a primary learning objective. Curriculum ElementsThe curriculum is structured around eight themes, which are not meant to be taught in isolation but rather interwoven to highlight their interactions. 1. History of Computer Science: This transversal theme is integrated into the other seven, exploring the historical development of computer science concepts and the individuals who shaped them. 2. Data Representation: Basic Types and Values: Covers how computers manipulate data at the bit level, encoding basic data types (integers, floats, characters, strings), and how encoding affects memory size. 3. Data Representation: Constructed Types: Introduces constructed types built from basic types, including tuples, records (collecting values of different types in named fields), and arrays (allowing calculated direct access to elements). Python terminology is used. 4. Data Processing in Tables: Focuses on data organized in tables as lists of named tuples with shared descriptors. This prepares students for the concept of databases, which will be covered later. Double-indexed arrays or tuple arrays are used within a standard programming language, not a database management system. 5. Human-Computer Interactions on the Web: Explores how users interact with machines through web pages, focusing on event management associated with graphical elements and algorithmic methods. The client-server dialogue is revisited with simple examples, identifying client requests, server calculations, and server responses processed by the client. An exhaustive description of available elements or expertise in languages like PHP or JavaScript is not required. 6. Hardware Architectures and Operating Systems: Explores the architecture of machines and their operating systems, including electronic circuits, networks, and operating system functions (program execution, input/output, power management). The role of sensors and actuators in input/output devices (keyboard, graphical and tactile interfaces, physical measurement devices, machine controls, etc.) is also covered. 7. Languages and Programming: Introduces Turing-complete programming languages and their characteristics, emphasizing the importance of specification, documentation, testing, and modularization for code reuse and library development. Simple programs written by students require concise but precise specifications. 8. Algorithmics: Introduces the concept of algorithmic methods, studying classic algorithms and their costs, particularly with large datasets (preferably open data). The importance of proving algorithm correctness and termination is highlighted using simple examples of loop invariants and variants. |