Skip to page content

Courses

  • Software Engineering Methods (10214)
  • תקציר הקורס:

    Abstract:

    Software engineering aims to facilitate the construction

    of large and complicated software systems within well-defined bounds of quality, time and budget. Like other engineering disciplines software engineering uses models to analyze and reason about the systems under construction.

    In this course, we teach the Unified Modeling Language (UML) and demonstrate how it may describe the different models that are used in the course of development of large software systems. The course structure follows the major phases of software development: requirements elicitation, system specification, architectural design, class design and finally the construction of the system. To assimilate these ideas and techniques you will form groups and develop a series of practical assignments

    throughout the semester. Each meeting will contain a theoretical

    part where we will learn new ideas and a practical part where we will implement them in context.
  • Computational Models (10215)
  • תקציר הקורס:

    Abstract:

    Students will learn about models of computing machines: finite automata, pushdown automata, and Turing machines. Students will demonstrate knowledge of Formal languages, their descriptions, and their relationships to the computational models; Students will learn the limits of the various models.
  • Masterpieces Of Software Engineering (10232)
  • תקציר הקורס:

    Abstract:

    במסגרת הקורס נלמד מערכת תוכנה מעולה. ננתח את המערכת במגוון רחב של היבטים, החל מארגון הסביבה ותהליכי הבנייה של המערכת, דרך הארכיטקטורה של המערכת, באיזו טכניקות היא משתמשת כדי להיות גמישה וקלה לשינוי, האופן שבו היא מנהלת משאבים ביעילות, ועד לאלגוריתמים העיקריים בהם היא משתמשת.

     

    We will study the structure and source code of an excellent software system. We will focus on the design decisions that underlie the way the software is built. We will examine how these design decisions help to make the system flexible, efficient, and adaptable. We will also see how theory can be used in a practical context to make the system both efficient and to simplify its structure.