Skip to main content
Version: Current

Terminal & Algorithmic Basics

Engineering FundamentalsModule 1 · Required

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​

practice

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​

tutorial

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.

documentation

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​

article

GitHub Skills

Required. Complete the assigned lessons and practice in this section.

practice

Introduction to Git

Required. Complete Introduction to Git, including commits, history, branches, and collaboration basics.

practice

Introduction to GitHub

Required. Complete Introduction to GitHub, including branches, commits, and a pull request.

practice

Resolve Merge Conflicts

Required. Complete the merge-conflict exercise and apply the workflow in your assessment repository.

article

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:

practice

LabEx — Code Debugging Techniques

Required. Tracebacks, print debugging, and the exercise

tutorial

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​

practice

Week 1 challenges

Required. Complete this week’s challenges as part of the full four-week preparation kit.

Week 2 — Algorithmic Reasoning​

practice

Week 2 challenges

Required. Complete this week’s challenges as part of the full four-week preparation kit.

Week 3 — Core Data Structures​

practice

Week 3 challenges

Required. Complete this week’s challenges as part of the full four-week preparation kit.

Week 4 — Intermediate and Advanced Algorithms​

practice

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.

Roadmap AssistantRoadmap Assistant