Turkey
Accessibility menu
Program Highlights
- The program provides a rigorous analytical foundation in mathematics, a thorough understanding of computer science and IT theory, as well as practical software development skills.
- Courses in business, marketing, finance, and high-technology entrepreneurship, and a wide variety of general study courses are also available.
- Reichman University computer science alumni are earning among the highest wages in Israel.
- The academic program is dynamic and in constant adaptation to the fastpaced innovations of the high-tech world.
- New elective courses are offered each year to prepare students with the most relevant tools and knowledge.
Selected Courses from the Program:
-
-
This is the first course in the calculus of one variable intended for Computer Science. Topics covered include the algebraic and analytic properties of the real number system, functions, limits, derivatives and an introduction to integration. Applications including graphing functions, maximising and minimising functions, areas and volumes.
-
Systems of linear equations, Gaussian elimination; Matrices, matrix operations, invertible matrices, a method for inverting matrices; Determinants, Cramer`s rule; Vectors in 2-space and 3-space, dot product, norm of a vector, projections, cross product, lines and planes; Real vector spaces, subspaces, linear independence, basis and dimension, row space, column space and nullspace of a matrix, rank of a matrix
-
Discrete Math: This is an introductory course in discrete mathematics oriented toward Computer Science. Topics taught in the course include: - fundamental mathematical concepts (definitions, proofs, sets, relations, functions, order relations, proofs by induction), - counting (permutations, combinations, the inclusion-exclusion principle), - basic number theory and graph theory.
-
Course Syllabus 1. Determinants 2. Linear transformations: kernel, image, composition of transformations, the inverse matrix, the duality of matrices and transformations. 3. Eigenvalues and eigenvectors, the characteristic polynomial, the minimal polynomial, diagonalisation of matrices. 4. Inner products, orthogonality, orthonormality orthogonal matrices
-
Set theory: naive and axiomatic set theory, cardinals and set comparison, finite and infinite sets, countable sets, cardinality of the continuum, degrees of infinity. Logic: We will study in the course about two logics - propositional logic and first order logic. We will understand the general components of a logic - syntax, semantics, and a proof system - and we will elaborate on each of the components with respect to the two above logics. Among other things, we will study about: Propositional logic - logic connectives, truth tables, logical consequence and equivalence, tautologies and contradictions, normal forms. First-order logic - quantifiers, predicates, functions, structures and models, logical consequence and equivalence, normal forms. As a part of first order logic, we will see examples of algebraic structures, and in particular, we will study basic concepts in group theory.
-
“Good data structures and bad code are much better than the other way around”. Indeed, in order to efficiently and effectively solve challenging computational problems, it is important to organize data in an appropriate form, called data structure. Data structures are an essential area of study and practice for computer scientists and practitioners. The course presents and analyzes classical data structures and related algorithms. In particular, we will learn how to assess the performance of various algorithms for searching, sorting, and manipulating data. We will learn widely-used data structures such as lists, stacks, queues, trees, and hash tables. We will then understand the relations between data structures and the efficiency of algorithms that exploit them. Following is a list of subjects to be covered. Time & space complexity: best case, worst case, average case and amortized – in terms of O, Ω, Θ classes. Data structures: linked list, stack, queue, binary heap, binary search tree, binary search tree with augmented data (e.g., interval tree), suffix trees, B-trees, hash table, KD- trees. Algorithms: in addition to the algorithms related to the data structures, we will also learn comparison based sorting algorithms (heap sort, quick sort, merge sort), linear sorting algorithms (radix sort, counting sort and bucket sort), order statistics algorithms, and in particular the median-of-median algorithm.
-
The course provides an introduction to procedural programming and work in a UNIX/Linux environment. The course teaches basic topics in the C programming language, such as memory structure, memory management, pointers, and design of procedural programs. In parallel, we will cover fundamental topics in work in a Linux environment, such as managing permissions, working with text files, and programming in shell scripts. The course will involve programming assignments in C in a Linux environment
-
-
The course covers fundamental ideas in the design and analysis of Algorithms. A thorough knowledge of algorithms allows a computer scientist to determine what problems can be solved using a given amount of resources. The tools and techniques used for the basic algorithms covered in this course can be adapted to provide efficient solutions to novel problems.
-
In this course we will cover essential tools that enhance any programmer's toolbox. We will discuss advanced Java topics (that were not covered in the intro class), distributed version control, Python, SQL, HTML, JavaScript and CSS. We will emphasize self-learning, and will touch upon general programming topics such as debugging and unit-tests. The course will give students a solid footing in each topic, that will allow them to keep exploring on their own.
-
Probability theory is a tool of fundamental importance to nearly all the sciences, including Computer Science. This course is intended as an elementary introduction to the mathematical theory of probability. The course covers the following topics: Basic Terms in Probability: Probability Spaces (Sample Space, the Field of Events and the Probability Function), Axioms of Probability, Combinatorial Analysis and Symmetric Sample Space, Conditional Probability and Baye’s Rule, Independency between Events. Random Variables: General Discrete Distributions and Special (Uniform, Geometric, Binomial, HyperGeometric, Poisson, Negative Binomial) and General Continuous Distributions and Special (Uniform, Exponential, Erlang, Normal), Jointly Distributed Discrete Random Variables, Independent Random Variables, Discrete Conditional Distributions, Expectation, Variance, Correlation (CoVariance, Correlation Coefficient), Markov and Chebyshev inequalities, Limit Laws (Central Limit Theorem, Convergence in Probability, the Weak Law of Large Numbers).
-
An introductory level machine learning course. We will present the main principles of data-driven learning algorithms. We will provide the theoretical basis for learning algorithms and learn about pros and cons of different approaches, from both a mathematical and a practical point of view.
Students will implement and use algorithms and will practice their application in real life data contexts. Homework and examples will be based on python code developed by the students as well as, in special cases, on using python/sklearn packages.
Subjects covered include:
- 1. Linear models: regression, logistic regression, feature selection
- 2. Decision trees , including different approaches to splitting nodes and
pruning techniques
- 3. Bayesean learning, including the advantages and disadvantages of naive vs full Bayes approaches
- 4. The perceptron - both primal and dual
- 5. kNN
- 6. Density estimation and EM
- 7. SVMs, including hinge/slack variables and how they affect results
- 8. Unsupervised learning - clustering techniques
- 9. PAC learning and sample complexity
- 10. VC dimension
- Statistical estimates of error rates
Mandatory Courses The students must choose one of two mandatory courses
-
This course reveals the inside of digital computers. The purpose of the course is to explain the principle of operation of the hardware and the relation of the hardware and the software and to give a clear view of how a high-level language program is actually executed by a digital computer. The course starts with Boolean algebra and the implementation of Boolean equations using gates and continues with forming the basic bui lding blocks of a digital computer, e.g., multiplexers, decoders, Arithmetic Logic Unit, registers, counters, state machines etc. At this stage, a simple CPU can be designed. Therefore, a RISC CPU, the MIPS, is defined by introducing its instruction set. The steps of converting a high level program into the MIPS machine language and the mechanism needed to support subroutines are discussed. This is followed by implementation of a basic single cycle MIPS in which the data path and the control part are designed in detail. The next stage is a multi-cycle implementation of the same CPU, including exceptions and interrupts handling. Eventually, a pipelined version is introduced. We will also show the similarity between the MIPS instruction set and RISC-V instruction set. The RISC-V is nowadays the open source for computer architecture.
-
This course, also known as Nand to Tetris, walks students in the construction of a modern general-purpose computer - hardware and software - from first principles. We will start from the most basic logic gate, known as Nand, and develop from it more gates and chips, leading up to a CPU, memory, and a computer architecture. This will be done using a Hardware Description Language and simulators, like computers are actually developed in industry. We will then develop an assembler, a virtual machine, a compiler for a simple, Java-like programming language, and a basic operating system. We will end this journey by developing a simple computer game like Tetris. It will be a thrill to see this game running on a computer that you built from the ground up. The course provides a deep understanding of many topics in applied computer science, as well as significant system development experience.
-
-
-
This course is organized around the five-layer Internet architecture. These five layers consist of the application, transport, network, link, and physical layers . The course covers fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics to be covered include: overview of network architectures, applications, network programming interfaces (e.g., sockets), transport, congestion, routing, and data link protocols, addressing, and distributed algorithms/systems. Examples of protocols will be drawn primarily from the Internet (e.g.,HTTP, SMTP, DNS, TCP, UDP, IP, RIP, OSPF, DHCP, ICMP, Ethernet, etc). In addition, we will also cover several Distributed Algorithms. There will be five assignments and a final exam. This course is intended for third year undergraduate computer science.
-
This is a mathematical class in which we will study the capabilities and limitations of efficient computation. We will classify various computational problems into different classes according to the amount of resources they require and prove reductions between them. We will then introduce more advanced algorithmic techniques (such as randomized algorithms and approximation algorithms) and study their limitations as well.
Topics include: time complexity, the classes P and NP, polynomial time reducibility between problems, the Cook-Levin theorem and the theory of NP completeness, self-reducibility and reducibility between search, optimization and decision problems, space complexity, randomized algorithms, approximation algorithms.
-
This course equips students with verbal communication skills ahead of their transition from academia to the professional arena. Classes are held in small groups, so to allow all students to practice. The course seeks help the students develop effective verbal communication skills by highlighting the various elements of presentation, such as structure, language, presentation, and content. Students will also be able to improve their verbal skills by using multimedia materials.
-
The course will provide an understanding of the theory and implementation of functional programming. The course will review the mathematical basis for functional programming, which is the Lambda calculus, teach the functional programming language Haskell, show how principles of functional programming have penetrated the conventional programming languages and environments, and present models for executing functional programs. The course will also mention the logic programming languages, which are based on First-order logic, and will briefly present the Prolog programming language.
-
More about the Program
Why Study at Reichman University?
For the entire list of courses please refer to the Student Handbook
*In most undergraduate programs, students are required to take general elective courses as part of their curriculum, and can also choose elective courses from other undergraduate programs at Reichman university.
**Reichman University reserves the right to cancel, alter, or expand the academic programs and courses offered.
Proud Of Our Alumni
-
Alida Sefada
My CS studies at RU equipped me with strong technical skills, practical experience, and the confidence to step into a role as a Technical Success Manager in the cybersecurity field. The connections I made and the knowledge I gained have been key in shaping a career that blends my passion for technology with a focus on customer success.
-
Niv Tennenbaum
Israel
In my third year, I took a break from my Computer Science studies to join the UpStart Entrepreneurship Program at the University. This experience gave me valuable insights into the business world and allowed me to connect with industry experts and like-minded entrepreneurs, for which I’m truly grateful.
-
Rony Sasson
Israel
RRIS Computer Science Program was very analytical and practical, which helped me a lot in the professional world. Also, thanks to this program I met a variety of people from all around the world, and a few of my best friends today.
Apply
Preparatory Courses
Faculty
Brochure
Dean, Efi Arazi School of Computer Science