As a Computer Science Student in the Open University of Israel, I am taking various courses and fulfilling other academic commitments.
This organization stores repositories for the courses I’ve completed, am currently taking, or will take as part of my Bachelor of Science in Computer Science degree at OpenU.
It includes repositories for each course, containing projects, assignments, summaries, notes, and other course-related work.
Feel free to explore any repository to dive into the course content and my learning journey.
More information can be found Here.
- Discrete Mathematics (4 CEUs) »
- ⤷ A brief introduction for logic, Set Theory, Combinatorics, and Graph Theory.
- Linear Algebra I (7 CEUs) »
- ⤷ Systems of linear equations, The space Fⁿ, Matrices, Determinants, Finite fields, The field of complex numbers, Linear spaces, Bases and dimension theory, Linear transformations, Representation of transformations using matrices, Eigenvalues, Scalar product.
- Linear Algebra II (5 CEUs) »
- ⤷ Inner product spaces, Bilinear forms and quadratic forms, Canonical forms.
- Infinitesimal Calculus I (7 CEUs) »
- ⤷ Axioms of real numbers, Limits of sequences, Upper and lower bounds of sets, Partial limits, Limits of functions, Continuous functions and their properties, Uniform continuity, Exponential functions, The derivative and its applications.
- Infinitesimal Calculus II (7 CEUs) »
- ⤷ The definite integral, Integration methods, The improper integral, Taylor and Maclaurin series, Series, Sequences and series of functions, Differential calculus of functions of two variables.
- Probability and introduction to Statistics for Computer Science students (5 CEUs) »
- ⤷ Combinatorics, Axioms of probability, Conditional probability and independence, Random variables, Continuous random variables (General, Normal, Exponential, and Uniform), Joint distribution of random variables (Discrete), Properties of expectation, Limit theorems, Statistics.
- Introduction to Computer Science using Java (6 CEUs) »
- ⤷ Introduction and fundamentals of the Java language, Object-Oriented Programming: Using given classes and writing classes, Flow control (Conditional statements and loops), Arrays, Advanced OOP – Inheritance, Static methods and variables, Method overloading, Packages, Polymorphism and Interfaces, Algorithmic complexity, Sorting and searching algorithms, Recursion, Linked lists, Stacks and queues, Trees and binary trees, Computability at a glance.
- Data Structures and Introduction to Algorithms (6 CEUs) »
- ⤷ Growth of functions, Recurrence relations, Correctness proofs, Sorting, Finding the i-th smallest element, Heaps and their applications, Basic data structures, Hash functions, Binary search trees, Red-Black trees, Advanced data structures.
- System Porgramming Laboratory (5 CEUs) »
- ⤷ Fundamental knowledge of the C language and principles of structured programming, Familiarity with the structure of the Unix operating system using Ubuntu.
- Computational Models (5 CEUs) »
- ⤷ Finite automata and regular languages, Grammars, context-free languages, pushdown automata, Turing machines, equivalence of different computation models to Turing machines, Church-Turing thesis, Decidability: Universal Turing machine, Cantor’s diagonalization method, undecidability of the halting problem, Reductions: Undecidable problems, mapping reductions, Time complexity: Polynomial reductions, classes P and NP, Cook-Levin theorem, NP-complete problems.
- Computer Organization and Design (5 CEUs) »
- ⤷ Introduction - Abstraction of Computers and Technology, Processor performance evaluation, Number representation, Boolean algebra and Boolean functions, MIPS assembly, Procedure stack and its relation to programming languages, Combinational logic, building the ALU, Sequential logic and memory units, building the register file, Single-cycle processor, Processor performance improvement using pipelining, Large and fast: Leveraging memory hierarchies.
- Logic for Computer Science (4 CEUs) »
- ⤷ Introduction – Natural and formal languages, Propositional language – Grammar and meaning, Propositional calculus – Proof theory, Adequacy and compactness theorems, Predicate language – Grammar and meaning, Predicate calculus – Proof theory, Adequacy and compactness theorems, Introduction to model theory, Name structures (of Herbrand), Gödel’s incompleteness theorem and its implications, Many-sorted logic and second-order logic, Definability in first-order logic and second-order logic.
- Operating Systems (4 CEUs) »
- ⤷ Concepts underlying modern operating systems and their historical development, Process creation, scheduling, critical sections, and issues of synchronization and inter-process communication, Memory management, File systems, Input/Output facilities, Deadlock problem and methods for dealing with it, Virtualization, Security mechanisms, Structure of the Linux operating system.
- Programming Languages (4 CEUs) »
- ⤷ Operational understanding of fundamental concepts in the implementation of modern programming languages: values, abstract data structures, memory, control structures, variable binding, type systems, modules, and objects. Introduction to understanding the semantics of programming languages through the implementation of interpreters in a functional programming language.
- Database System Concepts (4 CEUs) »
- ⤷ Introduction to Database Systems, Relational model and relational algebra, Basic and advanced SQL, Entity-Relationship model, Relational model design, Complex data types, Overview of file storage, indexing, and query processing.
- Programming and Data Analysis with Python (6 CEUs) »
- ⤷ Language fundamentals, Flow control and conditional statements, Loops, Functions, Exceptional cases, Basic data structures, Advanced data structures, Recursion – basic and advanced topics, Efficiency – basic and advanced topics, Search and sorting – basic and advanced topics, Files, Object-oriented programming, Advanced object-oriented programming and dynamic code, Introduction to data analysis, Python packages – introduction to various packages for data analysis.
- Introduction to Computer Networks (4 CEUs) »
- ⤷ Introduction, Physical Layer, Data Link Layer, Medium Access Control Sub-layer, Network Layer, Transport Layer.
- Advanced Programming with Java (4 CEUs) »
- ⤷ Object-Oriented Programming, Creating a Graphical User Interface, Multithreaded Programming, Generic Programming and Collections, Communication and Client-Server Systems.
- Introduction to Artificial Intelligence (4 CEUs) »
- ⤷ Problem Solving with State-Space Search Algorithms, Heuristics, Local Search - Local Optimization for Solution Finding, Adversarial Games, Constraint Satisfaction Problems, Bayesian Networks, Markov Decision Process (MDP), Machine Learning – Learning from Examples, Decision Trees.
- Biological Computation (4 CEUs) »
- ⤷ Cellular automata: The Game of Life; Evolutionary Computing: Genetic Algorithms, Genetic Programming; Artificial Neural Networks: Hopfield Networks, The Perceptron, Restricted Boltzmann Machines; Molecular Computing: DNA-based Computing, Enzyme-based Computing; Data Storage using DNA.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.