Skip to page content

Courses

  • Computers Communication (10013)
  • תקציר הקורס:

    Abstract:

    Principles of constructing computer communication networks and the various mechanisms activated in them. The course’s focus is on the Internet, its physical and logical structure and the principles of constructing network applications over it. The main line in the course is the 5 layer model. The course is organized by a top-down approach following Kurose and Ross for methodology for teaching computers communications.
  • Programming Languages (10211)
  • תקציר הקורס:

    Abstract:

    This course focuses on the interaction between problem modeling and programming languages. Problem-solving relies on using good models implemented in a programming language capable of supporting them. The course material combines both theory and practice. All theoretical principles learned are implemented in software, and all course exercises require programming.

     

    The course integrates two approaches to teaching programming language principles: (1) Using a single language to demonstrate all language features taught in the course, and (2) Using multiple languages to represent different aspects and paradigms.

     

    The first approach is reflected in the study of the Scheme language – this language allows, with relatively simple means, the support of complex elements such as passing procedures as arguments, creating procedures (including anonymous ones) at runtime, infinite structures, manipulating the environment and the call stack, implementing object-oriented programming, and more. In this language, we will build an interpreter that receives a program and i?nput to the program as i?nput and returns the values the program computes as output.

     

    We will also review additional programming languages that implement different paradigms, such as Prolog, which represents the logic programming paradigm, and Python, which implements imperative programming and other principles.

     

    Course assignments will primarily be done in Scheme (in the Dr Racket environment).
  • Seminar in Non-Procedural Languages (10356)
  • תקציר הקורס:

    Abstract:

    In this seminar, we will explore key concepts in the theory of programming languages, focusing primarily on various paradigms—such as f?unctional programming, imperative programming, logic programming, probabilistic programming, and more.

    After an introductory overview by the instructor, each student will select a topic from a set of current articles in the field and present a lecture based on their chosen article. The presentation must be approved by the instructor.

     

    In the second part of the seminar, students will implement an interpreter for one of the defined paradigms.
  • Computational Learning in Medical Systems (50317)
  • תקציר הקורס:

    Abstract:

    This course focuses on an introduction to the theory and applications of machine learning—one of the most successful branches of artificial intelligence in both industry and academia today, enabling the solution of problems from various fields using similar tools.

    The first part of the course will cover basic concepts in the field and supervised learning methods. Techniques for solving regression and classification problems, such as linear and logistic regression, decision trees, and neural networks, will be taught. The second part will focus on unsupervised learning methods, such as clustering using various techniques and principal component analysis (PCA). The theoretical material will be accompanied by practical examples and applications, primarily from the biomedical domain.