A comprehensive portfolio of Computer Science (NSI - Numérique et Sciences Informatiques) projects demonstrating advanced Python programming concepts, algorithms, and data structures.
This repository showcases a curated collection of Python projects developed during my NSI coursework, highlighting rigorous applications of fundamental and advanced computer science topics, including:
- Object-Oriented Programming
- Data Structures & Algorithms
- Database Management
- Web Development
- Computational Biology Simulations
- Graph Theory & Cryptography
A full-stack web application designed for managing a school library's collection and loans, demonstrating full development lifecycle capabilities.
Tech Stack: Django, SQLite, JavaScript
Features:
- Book catalog management
- User authentication and borrowing system
- Database-driven architecture
- Responsive web interface
Files: Projet CDI/
An ecological simulation implementing the Lotka-Volterra model with visual representation, showcasing an ability to model complex mathematical concepts in software.
Tech Stack: Python, Pygame/Tkinter
Features:
- Real-time ecosystem dynamics
- Population tracking and visualization
- Grid-based environment with sprites
- Emergent behavior patterns
Files: Projet proie-prédateur/
An intelligent Sudoku puzzle solver using backtracking algorithms, demonstrating strong algorithmic problem-solving skills and efficiency.
Tech Stack: Python
Features:
- Constraint satisfaction problem implementation
- Recursive backtracking algorithm
- Input validation and solution verification
Files: Projet sudoku/
A database management system integrated with Python, evidencing data persistence and system design capabilities.
Tech Stack: Python, SQLite
Features:
- SQL query interface
- Data manipulation and retrieval
- Database design and normalization
Files: Projet base de donnée/
| File | Concept | Description |
|---|---|---|
ex01_recursivite.py |
Recursion | Recursive functions, base cases, stack management |
ex02_modules.py |
Modules | Code organization, imports, namespace management |
ex03_prog_objet.py |
OOP | Classes, inheritance, encapsulation, polymorphism |
ex04_arbres.py |
Trees | Binary trees, BST, traversal algorithms |
ex05_structures_lineaires.py |
Linear Structures | Stacks, queues, linked lists |
ex07_diviser_regner.py |
Divide & Conquer | Merge sort, quick sort, binary search |
ex09_puces.py |
Chip Game | Logic puzzles, problem-solving algorithms |
ex10_graphes.py |
Graph Theory | Graph representations, traversal (BFS/DFS), shortest paths |
ex11_securisation.py |
Security | Cryptography, hashing, data protection |
ex12_calculabilité.py |
Computability | Turing machines, complexity theory |
ex13_prog_fonctionelle.py |
Functional Programming | Lambda functions, map/filter/reduce, immutability |
ex14_recherche_textuelle.py |
Text Search | Pattern matching, string algorithms |
- Language: Python 3.x
- Web Framework: Django
- Database: SQLite
- Testing: pytest
- Version Control: Git
- Package Management: pip, npm
- Implementations showcase a clear understanding of time and space complexity analysis
- Optimized solutions for classic computer science problems
- Practical application of Big-O notation
- Clean, documented code emphasizing maintainability
- Modular architecture principles applied throughout
- Test coverage ensuring reliability
- Robust database design and normalization
- Algorithm design tailored to specific constraints
- Informed data structure selection and implementation
- End-to-end real-world application development
This repository represents personal educational work, but feedback and professional inquiries are always welcome.