The general objective of this module is to present the concepts, abstractions, fundamentals, mechanisms, and implementations of modern Operating Systems. We will analyze the main components and explore some advanced topics.
- Understand the operation and algorithms of an operating system.
- Apply concepts present in operating systems in software development, such as deadlock, synchronization, and parallelization.
- Implementation in the Pint-OS operating system.
1. Processes
2. Threads
3. Concurrency
4. CPU scheduling
5. Synchronization
6. Memory management
7. File systems
8. Storage structure
9. Input/output
In this module, we dive into Object-Oriented Programming (OOP) concepts and their practical applications.
1. Introduction to Object-Oriented Programming
2. Abstraction: classes, objects, methods, and attributes
3. Inheritance
4. Encapsulation: packages and access modifiers
5. Polymorphism: principle of substitution, overloading, overriding, abstract classes, interfaces
6. Overview of UML (Unified Modeling Language) and major object-oriented design patterns
7. Graphical toolkits
8. Overview of test-driven development
9. Exceptions and Object-Oriented Programming
10. Parameterized types and Object-Oriented Programming
This module focuses on fundamental algorithms and data structures that are essential for software development.
1. Basic data types
2. Composite structures (homogeneous and heterogeneous)
3. Linear structures (Lists, Stacks, Queues)
4. Recursive algorithms
5. Comparison between recursive and iterative algorithms
6. Trees and their generalizations: binary trees, search trees
7. Search algorithms: sequential, binary, and hashing (Hash)
8. Data classification
9. Methods of sorting data in primary and secondary memory
Feel free to explore each section for in-depth information about the topics covered in my Semester 3 at CESAR School!