Terminal & Algorithmic Basics
Learn the tools and reasoning you’ll use throughout the curriculum. Set up your workspace, practise Git and debugging, and keep solving algorithmic problems alongside the other modules.
Use your workspace
Navigate files, set up Python, and run your code.
Work with others
Use branches, pull requests, and review feedback.
Solve and debug
Explain solutions, check edge cases, and repair failures.
Terminal and Filesystem
Before you start
Navigate and manipulate a local filesystem. No terminal experience is required.
Learn and practise
Linux Journey: Command Line
Required. Complete the assigned lessons and practice in this section.
- The Shell
- pwd
- cd
- ls
- touch
- file
- cat
- less
- history
- cp
- mv
- mkdir
- rm
- find
- help
- man
- whatis
- alias
- exit
Completion requires doing the interactive exercises, not only reading the lessons.
We won’t add permissions, grep, pipelines, process management, or other Linux topics to this unit unless another module specifically requires them. Estimated time: 3–4 hours.
Python Environment Setup
Before you start
Run Python scripts and notebooks in an isolated environment. Complete terminal basics first; you should already be able to explain a short Python program.
Learn and practise
Python tutorial on virtual environments and packages
Required. Create and activate a virtual environment; install packages and record dependencies. Use the activation commands for your platform.
JupyterLab installation guide
Required. Install JupyterLab in your project environment and select the matching notebook kernel.
Learn to check the Python version, create and activate a virtual environment, install packages, record dependencies, and select the same environment as a notebook kernel. Exclude the environment directory from Git. Core Systems later introduces uv project management.
Practice
Create a project directory, then create a virtual environment:
python -m venv .venv
Activate it using the command for your platform in the Python tutorial. Use python -m pip to install NumPy, Pandas, and JupyterLab. Run a script that prints a small NumPy array, then run the same computation in a notebook. Record dependencies in requirements.txt and add .venv/ to .gitignore.
Recreate the environment in a second practice directory from your dependency file. Intentionally select an interpreter without NumPy and explain the resulting import failure before correcting it.
Git and GitHub
Source estimate: 5–6 hours, provisional until piloted.
Goal
Use Git and GitHub to track changes and contribute through a basic collaborative workflow.
Learning resources
GitHub Skills
Required. Complete the assigned lessons and practice in this section.
Introduction to Git
Required. Complete Introduction to Git, including commits, history, branches, and collaboration basics.
Introduction to GitHub
Required. Complete Introduction to GitHub, including branches, commits, and a pull request.
Resolve Merge Conflicts
Required. Complete the merge-conflict exercise and apply the workflow in your assessment repository.
Learn Git Branching
Required. Covering commits, branches, merging, and remotes.
Required topics
- Repositories
- Working tree and staging area
- git status
- git diff
- git add
- git commit
- Meaningful commit messages
- git log
- Creating and switching branches
- Merging
- Basic conflict resolution
- Cloning repositories
- Remote repositories
- Fetching, pulling, and pushing
- .gitignore
- Pull requests
- Basic code review
Assessment
The learner must:
- Clone a repository.
- Create a feature branch.
- Make and inspect changes.
- Create meaningful commits.
- Push the branch to GitHub.
- Open a pull request.
- Resolve an intentionally created merge conflict.
- Complete the merge.
- Advanced rebasing, cherry-picking, Git internals, GitHub Actions, and release management are not required.
Prerequisites
Complete terminal basics and environment setup.
Debugging Fundamentals
Source estimate: 2–3 hours, provisional until piloted.
Goal
Systematically locate, understand, and fix ordinary Python errors.
Learning resources
Use selected sections from:
LabEx — Code Debugging Techniques
Required. Tracebacks, print debugging, and the exercise
VS Code Python debugging tutorial
Required. Breakpoints, stepping, and inspecting variables
Required topics
- Syntax errors
- Runtime errors
- Logic errors
- Reading Python tracebacks
- Reproducing a failure
- Isolating the failing code
- Inspecting values with print
- Setting basic IDE breakpoints
- Stepping through code
- Inspecting variables
- Verifying fixes with normal and edge-case inputs
Assessment
The learner receives a small Python program containing:
- One runtime error
- One logic error
- One edge-case failure
- The learner must reproduce, explain, and fix all three problems.
- Logging, command-line debuggers, advanced breakpoints, and production observability are not required.
Prerequisites
Basic Python and a working local environment.
Algorithms and Problem Solving
Before you start
Develop reasoning about data structures, algorithm choices, and edge cases. Basic Python and debugging skills are required.
Learn and practise
Week 1 — Basic Problem-Solving Patterns
Week 1 challenges
Required. Complete this week’s challenges as part of the full four-week preparation kit.
Week 2 — Algorithmic Reasoning
Week 2 challenges
Required. Complete this week’s challenges as part of the full four-week preparation kit.
Week 3 — Core Data Structures
Week 3 challenges
Required. Complete this week’s challenges as part of the full four-week preparation kit.
Week 4 — Intermediate and Advanced Algorithms
Week 4 challenges
Required. Complete this week’s challenges as part of the full four-week preparation kit.
What you’ll build
Complete the full HackerRank One Month Preparation Kit.
Practice and evidence
Complete all four weeks of the HackerRank One Month Preparation Kit. Keep a completion record and explain selected solutions, including edge cases and time/space complexity. The resource name is not an Academy calendar promise.
Workload
Use the provisional estimates where supplied. Other workloads remain pending pilot. Include implementation, debugging, review, and revision.
Finish this module
Keep the required outputs and explain your decisions. Diagnose a relevant failure during review and revise incomplete evidence after feedback. Resource completion supports progress; the stated practical requirements determine completion.
