Israel Bagrut Computer Science 5 Units study plan
Israel Bagrut Computer Science 5 Units · Give each week a clear focus.
8 weeks · About 7 hours per week
Algorithms and Problem Solving & Programming in a High-Level Language (Java/C#)
Implement, from a blank editor, correct Java or C# solutions for linear search, binary search, and selection/insertion sort, and trace each on a 10-element array by hand
Decompose three multi-step word problems into sub-problems and write pseudocode for each before coding
Analyze the time complexity of every solution you wrote this week and justify the bound in one sentence
Set up a personal code template (input reading, output formatting, main method) that compiles and runs without edits
Your checkpoint
A folder of 8 working, self-tested programs with a one-line complexity note per program
Algorithms and Problem Solving & Data Structures
Implement dynamic arrays (add, remove, get, resize) from scratch and test edge cases: empty, full, index 0, last index
Implement a singly linked list with insert-at-head, insert-at-index, delete, and reverse, and verify each against hand-drawn pointer diagrams
Solve five recursion problems (factorial, Fibonacci, binary search, Towers of Hanoi, permutations) and draw the recursion tree for each
Compare array vs linked list on insert, delete, and random access, writing a table of complexity results
Your checkpoint
A written comparison table plus a test log showing at least 20 passing assertions across your array and linked-list classes
Data Structures & Algorithms and Problem Solving
Implement a stack and a queue both on arrays and on linked lists, then use the stack to check balanced brackets and the queue to simulate a print spooler
Implement merge sort and quicksort, and count comparisons on best, average, and worst inputs for each
Implement a hash table with separate chaining, handle collisions, and measure load-factor effects on lookup time
Trace by hand the state of a stack and a queue through a 12-operation sequence and confirm your trace matches your code's output
Your checkpoint
A benchmark report with measured comparison counts for merge sort and quicksort on sorted, reverse-sorted, and random inputs of size 100, 1000, and 10000
Object-Oriented Programming and Design & Programming in a High-Level Language (Java/C#)
Model a small system (library, bank, or parking lot) as a class diagram with at least 6 classes, showing inheritance, composition, and interfaces
Implement that model in Java or C# using encapsulation, an abstract base class, and at least one interface, with no public fields
Refactor one working program to remove duplicated code using inheritance or composition, and document the before/after structure
Write a short justification for each design decision, including why you chose inheritance versus composition in two specific places
Your checkpoint
A working 6-class OOP project with a class diagram and a one-page design rationale
Computational Models and Algorithmic Efficiency & Theory of Computation and Formal Languages
Construct deterministic finite automata for at least six stated languages and convert two of them to regular expressions
Convert two NFAs to DFAs using subset construction, showing every intermediate state set
Write a regular expression for a given language and explain why a language such as a^n b^n is not regular
Classify ten problems by complexity class (constant, logarithmic, linear, n log n, quadratic, exponential) from their code alone
Explain the halting problem and why it is undecidable, in your own words, in under 150 words
Your checkpoint
A handwritten-style solutions sheet with six automata, two subset-construction tables, and ten complexity classifications, all self-checked
Algorithms and Problem Solving & Computational Models and Algorithmic Efficiency
Solve three algorithmic design problems by choosing between greedy, divide-and-conquer, and dynamic programming, and justify the choice
Implement one dynamic-programming solution (for example, longest common subsequence or knapsack) with both a memoized and a tabulated version
Compute the exact number of operations for two algorithms on input size n and derive their asymptotic bounds formally
Identify and fix one accidental quadratic loop in code you wrote earlier
Your checkpoint
A DP solution in two versions with a written recurrence relation and a proof sketch of correctness
Computer Systems and Architecture & Ethics, Social Implications, and Information Security
Convert between binary, decimal, and hexadecimal, and perform two's-complement addition and subtraction on 8-bit numbers
Explain the roles of CPU, registers, cache levels, RAM, and secondary storage, and describe the fetch-decode-execute cycle step by step
Write a short analysis of a real security failure (for example, SQL injection or weak password storage) identifying the vulnerability, impact, and correct mitigation
State the main legal and ethical obligations around personal data and unauthorized access in the Israeli context, and apply them to two short scenarios
List five common web vulnerabilities and the defensive coding practice that prevents each
Your checkpoint
A two-page security and ethics brief covering three scenarios, each with a named vulnerability, its consequence, and a concrete mitigation
Software Engineering and Project Development & Algorithms and Problem Solving & Object-Oriented Programming and Design
Run a full timed mock exam under real conditions and score it against a rubric you write yourself
Review every wrong answer, classify the error as conceptual, careless, or time-management, and redo those items
Produce a one-page revision sheet of formulas, complexity classes, and design principles you keep forgetting
Write a short project-development retrospective covering requirements, design, implementation, and testing stages for the project you built in week 4
Your checkpoint
A scored mock exam with an error log and a one-page final revision sheet
Milestones
Week 2: You can implement binary search, a dynamic array, and a linked-list reversal from memory in under 30 minutes total, with all tests passing
Week 4: Your OOP project compiles, runs, and its class diagram matches the code, with every class justified in the rationale
Week 6: You can derive the time complexity of unfamiliar code and choose correctly between greedy and dynamic programming on three new problems
Week 8: Your timed mock exam score is at least 75 percent, and no error in the log is classified as conceptual more than once