Study Program

Software Engineering

NOTICE: the Hardware Engineering Degree has been discontinued

Course Overview: The Bachelor of Science in Software Engineering program is tailored to equip students with the knowledge, skills, and expertise necessary to design, develop, and maintain software systems. Emphasizing both theoretical foundations and practical application, the curriculum dives into software design, system architectures, and the software development lifecycle. Graduates will be prepared to tackle complex software challenges and innovate in the ever-evolving tech industry.

Program Objectives:

  1. Provide students with a robust understanding of software development methodologies and best practices.
  2. Foster skills in software design, testing, and maintenance.
  3. Instill an appreciation for the ethical and social implications of software systems.
  4. Promote teamwork, project management, and effective communication skills.

Course Structure: The program spans over four years, divided into eight semesters, integrating both theoretical concepts and hands-on projects.

Year 1: Introduction to Programming, Computer Systems and Architecture, Discrete Mathematics, Software Design Principles.

Year 2: Data Structures and Algorithms, Object-Oriented Programming, Operating Systems, Database Systems.

Year 3: Software Project Management, Web Development, Mobile App Development, Software Testing and Quality Assurance.

Year 4: Distributed Systems, Cybersecurity in Software Engineering, Advanced Software Design Patterns, Capstone Project in Software Engineering.

Year 1:

  1. Introduction to Programming Exam
    • Basics of programming languages and syntax
    • Fundamental programming concepts and problem-solving
  2. Computer Systems and Architecture Exam
    • Overview of computer hardware and system components
    • Basics of computer organization and operations
  3. Discrete Mathematics Exam
    • Logic, set theory, and graph theory
    • Mathematical reasoning and proofs
  4. Software Design Principles Exam
    • Basics of software design and architecture
    • Introduction to software development methodologies

Year 2:

  1. Data Structures and Algorithms Exam
    • Fundamental data structures: arrays, lists, trees, and graphs
    • Algorithm design and analysis
  2. Object-Oriented Programming Exam
    • Principles of object-oriented design
    • Classes, inheritance, polymorphism, and encapsulation
  3. Operating Systems Exam
    • Basics of OS operations, processes, and memory management
    • Synchronization, concurrency, and system calls
  4. Database Systems Exam
    • Relational database design and normalization
    • SQL, transactions, and database management

Year 3:

  1. Software Project Management Exam
    • Principles of project management in software development
    • Software lifecycle, planning, and risk management
  2. Web Development Exam
    • Web architecture, protocols, and technologies
    • Front-end and back-end development
  3. Mobile App Development Exam
    • Mobile application design and development principles
    • Platforms, tools, and best practices for mobile development
  4. Software Testing and Quality Assurance Exam
    • Software testing methodologies and techniques
    • Quality assurance and software reliability

Year 4:

  1. Distributed Systems Exam
    • Principles of distributed computing and systems
    • Scalability, fault tolerance, and system coordination
  2. Cybersecurity in Software Engineering Exam
    • Software security principles and best practices
    • Threats, vulnerabilities, and risk mitigation
  3. Advanced Software Design Patterns Exam
    • Exploration of advanced design patterns and architectures
    • Modular and scalable software design
  4. Capstone Project Presentation
    • Comprehensive software development project
    • Addressing real-world challenges or innovations in software engineering
  1. High school diploma or equivalent, with strong performance in mathematics and any computer-related courses.
  2. Letters of recommendation, preferably from math or computer science educators.
  3. A personal statement detailing the applicant’s interest in software engineering and any relevant experiences.
  4. An interview may be conducted to gauge the applicant’s aptitude and passion for the field.