The Undergraduate Program in Software Engineering consists of a total of 3 terms, with the first two terms focused on coursework and the third term dedicated to thesis work.
During the first term, students are required to take a total of 3 courses, and in the second term, they are obligated to complete 6 courses.
SOFTARE ENGINEERING LESSONS
1. Software Development Methodologies
- Agile, Scrum, Kanban, and Waterfall methodologies.
- Software life cycle models and project management.
2. Advanced Algorithms and Data Structures
- Optimization techniques, graph algorithms, and dynamic programming.
- Data structure design for high-performance systems.
3. Software Architecture and Design
- Design patterns (e.g., Singleton, Factory, Observer).
- Architectural styles such as microservices, monoliths, and event-driven architectures.
4. Machine Learning and Artificial Intelligence
- Neural networks, supervised and unsupervised learning.
- Applications in natural language processing and computer vision.
5. Cloud Computing and Distributed Systems
- Cloud platforms like AWS, Azure, and Google Cloud.
- Distributed computing models and technologies such as Kafka and Hadoop.
6. Cybersecurity and Secure Software Design
- Secure coding practices and penetration testing.
- Cryptographic principles and network security.
7. DevOps and Continuous Delivery
- CI/CD pipelines, containerization (e.g., Docker), and orchestration tools (e.g., Kubernetes).
- Version control systems like Git and configuration management.
8. Human-Computer Interaction and UX Design
- Principles of user interface (UI) and user experience (UX) design.
- Accessibility and usability testing.
9. Big Data and Data Engineering
- Processing and analyzing large datasets using tools like Spark and Hadoop.
- Data modeling and ETL (Extract, Transform, Load) processes.
10. Software Testing and Quality Assurance
- Automated testing frameworks and tools like Selenium and JUnit.
- Test-driven development (TDD) and behavior-driven development (BDD).