Skip to page content

Courses

  • Object-Oriented Programming (10128)
  • תקציר הקורס:

    Abstract:

    The students will learn about classes and objects, constructors,

    inheritance, polymorphism, and interfaces,

    and will learn how to combine them all into an object-oriented system.

    The students will learn how to show the system also using class diagrams.

     

    Grade structure:

    70%: exam

    10%: average of Casaine exercises

    20%: project
  • Integrative Software Engineering (10143)
  • תקציר הקורס:

    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.
  • Cloud Computing Architecture (10353)
  • תקציר הקורס:

    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.