France Première Computer Science (specialty)
Chapters: 7
1. History of computing
Key events in computing history
- History of Computing: From Gears to the Web – Computing grew from tools for counting to machines that follow programs. Pascal built a gear calculator in 1642. Babbage designed a programmable engine and Ada Lovelace wrote the first program idea in 1843. In 1936 Alan Turing described a universal machine. The first large electronic computers, such as ENIAC (1945), filled rooms; programming languages (Fortran 1957, C 1972) made them easier to use. Chips made computers small: personal computers arrived in the late 1970s and 1980s. ARPANET (1969) grew into the Internet, and the World Wide Web opened in 1991. Codd's relational model (1970) gave databases a firm base. Open-source software, such as Linux (1991), let people share code. Many scientists shaped this story.
2. Data representation
Base types: binary, integers, floats, booleans, text · Tuples, lists, dictionaries
- Number Systems and Encoding – A number system is a way to write numbers using a set of digits and a base. Decimal (base 10) uses 0–9, binary (base 2) uses 0 and 1, octal (base 8) uses 0–7, and hexadecimal (base 16) uses 0–9 and A–F. To go from decimal to any base, divide repeatedly by the base and read remainders bottom to top; for fractions, multiply by the base and read the integer parts top to bottom. To go to decimal, multiply each digit by its place value and add. Binary ↔ octal uses groups of 3 bits, binary ↔ hex groups of 4. Text is stored with encoding schemes: ASCII (7-bit, 128 characters), ISCII (8-bit, Indian scripts) and Unicode (every script), stored as UTF-8 (1–4 bytes) or UTF-32 (4 bytes).
- Data Structures: Arrays, Lists, Stacks, Queues and Trees – A data structure is a way of organising data in memory so a program can use it well. Arrays keep items in numbered boxes for instant access by index. Linked lists chain nodes with pointers, so inserting is easy. Stacks work last-in-first-out, queues first-in-first-out. Dictionaries find values by key, and trees store data in levels so searching is fast. Choosing the right structure makes programs faster and simpler.
3. Tabular data
Indexing, searching, sorting, merging tables
- Database Concepts: DBMS, Relations and Keys – Keeping data in separate files causes duplication, inconsistency and poor security. A database stores related data in one organised place, and a DBMS (like MySQL) is the software that manages it. In the relational model, data is kept in tables (relations) made of columns (attributes) and rows (tuples); a domain is the set of allowed values of a column. A candidate key uniquely identifies each row; one is chosen as the primary key and the others are alternate keys.
4. Human–machine interaction on the Web
HTML, CSS, JS, HTTP, forms
- Web Services: What Happens When You Open a Website – The World Wide Web (WWW) is a system of linked web pages that live on the Internet and are reached with a browser. Web pages are written in HTML, which uses fixed tags to show content; XML uses tags you make yourself to store and carry data. Every website has a domain name, like example.org, which DNS turns into an IP address. A URL is the full address of one resource: protocol, domain and path. A website is a set of related web pages. A web browser asks for pages and shows them; a web server stores them and sends them; web hosting is renting space on such a server so your site is online all the time.
5. Hardware and operating systems
Von Neumann model, networks, OS, sensors
- Computer Architecture – Computer architecture is the design of how a computer's parts work together. Most computers follow the von Neumann model: a CPU and one main memory that stores both the program and its data, joined by the address, data and control buses. The CPU repeats the fetch-decode-execute cycle using special registers (PC, MAR, MDR, CIR, ACC), a control unit and an ALU. Speed depends on clock speed, number of cores and cache size. Instructions are machine code (binary); assembly gives them short names. Designs vary: Harvard (separate memories), RISC vs CISC, and small embedded systems.
6. Languages and programming
Programming constructs, specification and testing
- Python Basics: Modes, Variables, Data Types and Operators – Python runs in interactive mode (one line at a time) or script mode (a saved .py file). Blocks are shown by indentation. Variables are names tied to values; every value has a data type, and some types are mutable. Operators build expressions that Python works out by precedence. input() reads text, int()/float()/str() convert types, and debugging fixes syntax, runtime and logical errors.
- Getting Started with Python – Python is a high-level, free and open-source, interpreted, portable, case-sensitive language that is easy to read. You can run it in interactive mode (type after the >>> prompt and see the result at once) or script mode (save code in a .py file and run it). Python's character set includes letters, digits, special symbols, whitespace and all Unicode characters. The smallest units of a program are tokens: keywords, identifiers, literals, operators and punctuators. A variable is a name that refers to a value; in an assignment the right side (r-value) is evaluated first and stored in the left side (l-value). Comments start with # and are ignored by Python.
- Python Revision for Class 12: Everything from Class 11 in One Place – Class 12 builds on Class 11 Python. You must know tokens (keywords, identifiers, literals, operators, punctuators), data types (int, float, bool, str, list, tuple, dict), which types are mutable (can change in place) and which are immutable, operator precedence, if-elif-else, for and while loops with break and continue, string slicing, and the main methods of lists, tuples and dictionaries.
7. Algorithms
Traversal, sorting, binary search, greedy, kNN
- Introduction to Problem Solving – Problem solving on a computer has stages: analyse the problem (inputs, outputs, rules), develop an algorithm (a finite, clear, ordered set of steps), code it in a programming language, test it with different inputs, and debug (find and remove errors). An algorithm can be shown as a flowchart (oval = start/stop, parallelogram = input/output, rectangle = process, diamond = decision, arrows = flow) or as pseudocode (structured plain English). Decomposition breaks a big problem into smaller sub-problems that are solved separately and then joined.