MSc Machine Learning & Data Science
About the Program
- Part-time program: 4 semesters over the course of 2 calendar years. Timeline may vary and is highly flexible to accommodate the students’ needs.
- Mandatory courses and core elective courses will be given on Thursdays and Fridays. Some elective courses, preparatory courses, office hours and hands-on support sessions may extend to weekdays.
- Applicants should have a Bachelor of Science (B.Sc.) degree in computer science or in an exact/natural science (physics, chemistry, biology, statistics, math, economics).
- Students may be required to take prerequisite courses including, but not limited to, Linear Algebra for Data Science, Calculus A+B, and Probability Theory.
- Practical experience will include small projects as part of each elective course, plus one mandatory, large, structured project.
- All Mandatory classes and some of the elective courses are taught in English, to prepare students for international working environments. Some of the elective courses are given in Hebrew, but English speaking students can complete all academic requirements with courses taught in English.
- working environments. Students can complete all academic requirements with courses taught in English.
- Answers the growing demand for top-level and highly skilled researchers, both in academia and industry.
- Trains future technology leaders of the highest caliber in the field of computer science, who will be able to pursue careers in both academia and industry.
- Students will attend frontal lectures and seminars, and will produce projects of different scales that will provide them with hands-on experience in data science and machine learning.
- Provides a community and partnering opportunities for students, scientists, and researchers from the entire scientific spectrum.
What Are You Going To Study?
Mandatory Core Courses (16 Credits)
Prof. Zohar Yakhini
Students will learn theoretical foundations and practical methodologies for statistical inference, modelling and data analysis. We will start with more advanced probability theory and move to statistical methodology and its practical application in example studies. Methods will be implemented in software (Python, Matlab) and applied in homework projects investigating datasets and practicing the communication of results and conclusions.
Prof. Zohar Yakhini
This is an introductory course in machine learning that will introduce the main principles of data-driven algorithms, including supervised (regression, classification) and unsupervised (clustering, PCA, MLE) learning. Subjects to be covered include: linear models, decision trees, Bayesian learning, parameter estimation and the EM algorithm, PAC learning, artificial neural networks, support vector machines, and more.
The rise of Big Data and the vision of a data-driven world present exciting new challenges related to processing Big Data: handling data diversity, exploiting new hardware, software, and cloud-based platforms. These challenges affect all sectors: healthcare, advertising, business intelligence, social sciences, and many more. Platforms will be introduced and used in practice.
Prof. Ya’akov Hel-Or
This course introduces the basics of neural network concepts and continues to focus on tools for image understanding using Deep Learning. Topics include: the general architectures of Neural Networks (NN), their underlying concepts, optimizing parameters, feed forward and back propagation, CNNs, RNNs, other architectures.
Dr. Shai Fine
In this course, we will review the fundamental elements of machine learning – concepts, techniques, and algorithms. Topics to be covered range from data preparation and feature selection, to supervised and unsupervised learning, including advanced methods, such as ensemble learning, support vector machines (SVM), and deep learning. The course will blend statistical inference, information theory, and computer science, thus providing the theoretical intuition behind modern machine learning methods, as well as practical knowledge. The course will include a mix of theoretical and practical exercises, some of which will require programming, as well as a final exam.
Applied Machine Learning and Data Science Elective Courses
Prof. Yael Moses
In this course, we will learn how to develop an artificial visual system that can interpret visual information from images. A variety of approaches for classic computer vision tasks will be discussed. These include extracting image features, computing the depth from a stereo pair of images, depth from shading, and depth from motion. We will also study higher level tasks, such as image segmentation, object recognition, and the analysis of motion. The course includes theoretical and empirical aspects of these approaches. We will concentrate on classic solutions, but we will also briefly introduce the state-of-the-art approaches that are based on neural networks.
Dr. Kfir Bar
This course teaches the basic foundations of Computational Linguistics and Natural Language Processing (CL/NLP). This domain brings together methods from computer science, linguistics, statistics, cognitive science, and even philosophy, in order to gain insights into how natural language is structured and used. Based on the insights gained, technological applications are developed that can automatically process human language data and extract the main elements of meaning. This course will also demonstrate CL/NLP applications to language technology.
Prof. Yacov Hel-Or
The availability of endless visual data, together with modern hardware for parallel image processing, has transformed image processing and vision fields in the last few years. This course will provide a classic view of image processing and will present the Deep Learning architecture as a successful framework for visual data analysis, with a huge impact in real-world applications.
The course will familiarize students with the Python scientific stack, including NumPy, SciPy, Matplotlib, and Pandas, and best practices for scientific computing. During each class, we will look at a scientific problem, a method for solving it, and an implementation in Python. Examples will include how to model the spread of infectious diseases, find stationary points for a predator-prey equation system, identify an object in an image, calculate the extinction probability of a rare mutation, analyze results of a tennis game, and plot a map of hurricane density.
Dr. Yossi Shamai
Most scientists and engineers are often faced with tasks that require some knowledge of numerical analysis. Choosing from a wide spectrum of problems, we develop numerical methods in an interactive and friendly way, while analyzing each of the problems. Notions such as consistency, accuracy, and efficiency will be studied.
Prof. Ariel Shamir
This course tackles both the representation and presentation issues of data and 3D objects using computers. Visualization and graphics is presented as a method for understanding and exploring data, be it scientific, physical or abstract. Modeling focuses on the different schemes to represent data found in computer-aided mechanical design, medical imaging, games and graphics, and more. The course begins by defining the visualization pipeline and different mapping functions, it presents point-based, boundary, solid and volume representations, scalar and vector field visualization, isosurfaces and volume rendering, and advanced topics such as multi-resolution, mesh compression, shape analysis and feature extraction.
Dr. Yaniv Erlich
The course will introduce definitions, algorithms, statistical methods, and data analysis programming routines relevant for genome biology. The course will consist of lectures, hands-on assignments and student projects. Lecture topics include: databases of genetic and genomic information, sequence (NGS) analysis, phylogenetics, comparative genomics, genotyping methods, association studies, differential expression and more. Hands-on homework assignments will require programming in Python, and will focus on analyzing real data from literature.
Machine Learning and Deep Learning Elective Courses
Prof. Ariel Shamir
The idea of unsupervised learning is to derive insights and understand data without using any known labels. It therefore deals more with finding structures in the data. We will discuss metrics and distance measures, clustering in low and high dimensions, dimensionality reduction, principal component analysis and factorization, LDA, multi-dimensional scaling, T-SNE, and self-organizing maps.
Dr. Moshe Butman
Reinforcement Learning (RL) is a subfield of Artificial Intelligence that trains a software agent to make autonomous decisions based on its history of rewards. Over the past decade, RL has experienced considerable progress (both research and commercial), especially following the progress in the field of Deep Learning. Over the past few years, many impressive achievements have been reported in RL, including winning games like Chess, Go and in other fields Autonomous Robots, etc. This course aims to provide a review of the basic concepts and algorithms in the field, particularly in the context of deep reinforcement learning. Python notebooks will be used to demonstrate some of the algorithms.
Dr. Asnat Messica
Recommender systems are widely used by online companies worldwide to provide the most relevant content to their users. They changed the way users find relevant items in various areas such as e-commerce, content websites, social media and more. The goal of this course is to provide the students with both theoretical and practical aspects of recommender systems. We will study machine learning algorithms for personalized recommendations, including recent algorithms, advanced evaluation, research topics, and implementation tools.
Dr. Aviv Yehezkel
Big Data problems more often involve huge amounts of data that cannot even fit in a computer’s storage. This course covers some algorithmic techniques developed for handling such big-data problems. As we shall see, handling such problems forces one to summarize the large amounts of data into compact "sketches" that retain the required important and useful information. The techniques we will study have been successfully applied in wide range of applications, including in databases, computer networks, recommendation platforms, etc. The course will focus on both the theoretical aspects of the design and analysis of such algorithms as well as on the applications.
Big Data and Statistics Elective Courses
Mr. Dan Amiga
Cloud computing is a relatively new field, but has already become a standard in development of high computing scalable applications. Utilizing cloud computing allows a single developer access to practically unlimited computing power and storage, therefore enabling the creation of large-scale social networks and technology for finance corporations, search engines, medical research, etc. We will focus on development on top of different cloud infrastructures (AWS/Azure/Google), and will utilize different architectures, tools, and algorithms.
This course will provide a review of Machine Learning algorithms, and their respective python libraries using notebooks. It will expose students to industrial research challenges solved using machine learning and Big Data. As an example, we will see cases of machine learning in the areas of finance, CyberSecurity, sciences, and medical data - all processing data at scale using Hadoop, Spark or Ray.
Prof. Zohar Yakhini
We will start with introducing concepts and techniques in stochastic processes: Markov processes, Poisson processes. We will study applications of these concepts in analyzing data from real life domains, including economics, bioinformatics (sequence analysis and NGS) and environmental monitoring data. We will also address topics in information theory (entropy, mutual information, KL divergence, tail algebras of stochastic processes) and survival analysis (log rank test, Cox regression and their applications), as well as multiple testing issues.
Infrastructure and Computer Science General Course Electives
Prof. Alon Rosen
Cryptography is concerned with the design of systems that should be able to withstand any abuse. In this course we will learn how to think precisely about the security of such systems. Specifically, we will learn how to design algorithms that guarantee privacy and authenticity of data during communication and computation, and establish their security using rigorous proofs of security.
We will review broadly core areas in computer security. We will start with a general overview of the cyber world: security objectives, understanding of attack types, categories of adversaries and security challenges. We will learn fundamental cryptography and tools, as well as the operational model of the Internet, including its protocols and their vulnerabilities and the essentials of the web network and its inherent dangers. Finally, we will review attack infrastructures and security services. The focus of the course will be on the principles, attack types, and major defense solutions. Time-permitting, we will invite guest industry speakers.
Prof. Tami Tamir
An advanced course intended mainly for M.Sc. students. The course will address algorithm design and analysis, highlighting several solution techniques. Topics to be covered include approximation algorithms for NP-hard problems, linear programming, randomized algorithms, online algorithms, parameterized complexity, and more.
Preparatory Courses for Non-Computer Science Graduates
The course presents key ideas and techniques in computer science and object-oriented programming, using Python. Key elements of the theory and practice of computer science are presented in the context of programming examples and exercises. Through this experience, students develop an appreciation of the elegance and rigor of computer science, and become competent Python programmers.
Prof. Anat Bremler-Bar
The first half of the course will present basic concepts in operating systems including Processes and threads, Scheduling, Cache, Memory Management, File System, and I/O devices. We will study the Linux OS, and discuss and study cloud computing and virtualization. In the second half, we will present practical and hands-on introduction to SQL and its usage.
Prof. Shay Mozes
This class is intended for students in the Data Science M.Sc. program who did not take the classes on data structures and on algorithms in their undergraduate studies. Topics include asymptotic notation (big O, Theta, etc.), worst case analysis (including expected worst case and amortized worst case), data structures - lists, queues, stacks, heaps, binary search trees, and hash tables. Sorting algorithms and lower bound for sorting, graphs and basic algorithms for graphs - depth-first-search, breadth-first-search, shortest paths, minimum spanning trees, the concepts of greedy algorithms, divide-and conquer algorithm, dynamic programming. We will introduce and analyze a few randomized algorithms, and discuss NP completeness and approximation algorithms.
This is a course in linear algebra with special emphasis on topics related to machine learning and data science. It is designed for computer science and data science students. Our course provides a complete coverage of core linear algebra topics. The students may be familiar with some of the topics from their undergraduate studies. The course will revisit and expand topics and will emphasize geometric interpretation and applications.
Mandatory Final Project (5 Credits)
- For the entire list of courses please refer to the Student Handbook
- Students are required to take 36 credits: 21 credits of mandatory core courses including a final project, 3 credits of mandatory electives, and 12 credits from a list of general computer science electives. Any student with an insufficient background in either computer science or math will be required to take additional preparatory courses, to be determined by the Admissions Committee.
- The academic administration of Reichman University reserves the right to make changes to the curriculum.