Skip to page content

Courses

  • Integrative Software Engineering (10143)
  • Course summary:

    Abstract:

    Developing and refactoring complex software systems

    require understanding a variety of software aspects:

    Multiprocessing; Utilizing Reactive Programming methodologies and techniques; Logging;

    Separating components to layers and utilizing architectural patterns like MVC;

    Unit-testing, Mocking and Integration-testing;

    Integration to Relational and NoSQL databases;

    Client/Server oriented development using Web-Services;

    Utilizing software frameworks like Spring and Hibernate.

     

    The students will implement an Integrated Software System,

    provide API's to their backend business logic,

    using a variety of front end applications.

    The students are required to utilize knowledge gained throughout the Software Engineering Program,

    including aspects of Operating Systems, Networking, Database development,

    Object Oriented Design and Development and Software Architecture.

     

    The students are expected to demonstrate self-paced learning skills

    by extending their knowledge and understanding of utilizing software frameworks,

    with the guidance of the course teachers.
  • Software Systems Architecture (10151)
  • Cloud Computing Architecture (10353)
  • Course summary:

    Abstract:

    Distributed systems provide high scalability and modular distribution of developed components.

     

    Cloud Computing architecture enhances software components dynamics, modularity and flexibility that affects their scalability;

    enables reconstructing software components to better meet changing business and technical requirements;

    provides better distribution of processing, data and control;

    enables cross cloud platform; provides better operational control and addressing runtime issues;

    enables efficient reusability of software components.

    The course discusses Cloud Computing architectures development aspects, including common cloud architecture design patterns for efficient development,

    Distributed data and process development, efficient Distributed Systems development methodologies, monitoring and control for cleaner code, Development cycle automation and further tools and methodologies for effective Agile cloud development.

     

    Enhanced Java Development and networking application development knowledge prerequisites are covered by the prerequisite courses.
  • Final Project in Science1 (11402)
  • Course summary:

    Abstract:

    As part of the course, the student will be exposed to all the development stages of an application or software package including: application design and development, interface design, algorithm implementation, architecture selection and database integration, methodology implementation, critical thinking, end-to-end development and testing, documentation and presentation, teamwork and project management.
  • Final Project in Science2 (11403)
  • Course summary:

    Abstract:

    This is a continuation course in which the student will be exposed to all the development stages of an application or software package, including: application design and development, interface design, algorithm implementation, architecture selection and database integration, methodology implementation, critical thinking, end-to-end development and testing, documentation and presentation, teamwork and management projects.