Courses & Curriculum

Key courses that have shaped my technical foundation in computer science and telecommunications at ENSEEIHT, covering everything from low-level systems to high-level distributed architectures.

Computer Science

Algorithms & Data Structures

Advanced algorithms, complexity analysis, tree structures, graphs, dynamic programming, and optimization techniques.

PythonC

Object-Oriented Programming

Design patterns, SOLID principles, inheritance, polymorphism, and software architecture with emphasis on maintainability.

JavaAda

Systems Programming

Operating systems, process management, memory allocation, file systems, and concurrent programming with Linux kernel interactions.

CLinux

Networks & Telecommunications

Network Protocols & Architecture

TCP/IP stack, routing algorithms, network layer protocols, QoS, and performance optimization with hands-on labs.

PythonC

Distributed Systems

Distributed architectures, consensus algorithms, replication, fault tolerance, and microservices patterns.

JavaPython

Telecommunications Systems

Signal processing, modulation techniques, wireless communications, and 4G/5G technologies.

PythonC

Mathematics, Physics & Security

Applied Mathematics

Linear algebra, probability, statistics, and numerical analysis for engineering applications.

Python

Physics & Signals

Electromagnetic theory, signal processing, and physical layer communications.

Python

Cryptography

Symmetric and asymmetric encryption, hash functions, digital signatures, and PKI systems.

PythonC

Network Security

Firewalls, intrusion detection, VPNs, and security auditing techniques.

PythonC