Skip to content

Repository files navigation

Python Programming for Classes 10-12

A complete, ready-to-teach resource pack for delivering a Python programming course in a Nepali government school (Grades 10, 11 and 12). Built for a computer-teacher selection process, but usable for a full term of classes.

Why this pack exists

The NEB Computer Science syllabus (Grades 11-12) has a Programming unit that is formally taught in the C language (Grade 11 Unit 5: Programming Concepts and Logics, Grade 12 Unit 4: Programming II). Python teaches exactly the same core concepts — algorithms, data types, control structures, loops, arrays, functions — but with far simpler syntax, which makes it an excellent way to introduce programming in Grades 10-12.

See curriculum-map.md for the exact mapping between each Python lesson and the NEB outcomes.

What is inside

intro to python/
├── README.md            <- this file
├── curriculum-map.md    <- NEB outcome mapping + suggested term plan
├── lesson-plans/        <- 10 teacher lesson plans (objectives, activities, demos, home tasks)
├── code-examples/       <- runnable .py files, one per lesson (+ projects/)
│   └── projects/        <- 5 mini-projects for project week / practical exam
├── worksheets/          <- 10 student worksheets + separate answer keys
├── slides/              <- 10 markdown slide decks (render with Marp / Reveal.js)
├── exam-prep/           <- NEB-style question bank + one-page Python cheat sheet
├── demo-lesson-script.md <- word-for-word 15-20 min demo lesson + panel Q&A
└── lab-setup-guide.md   <- installing Python on lab PCs (incl. offline install)

The 10-lesson course

# Lesson Code file Core ideas
1 Hello, Python! lesson01_hello_world.py Installing Python, IDLE, interactive vs script mode, print()
2 Variables & Data Types lesson02_variables.py int, float, str, bool, dynamic typing
3 Input & Output lesson03_io.py input(), f-strings, type conversion
4 Conditionals lesson04_conditionals.py if / elif / else, comparison & logical operators
5 Loops lesson05_loops.py for loops, range(), while, break / continue
6 Strings lesson06_strings.py indexing, slicing, methods, len()
7 Lists & Tuples lesson07_lists_tuples.py list methods, indexing, for x in list, tuples
8 Dictionaries & Sets lesson08_dicts_sets.py key-value pairs, set operations
9 Functions lesson09_functions.py def, parameters, return, scope
10 File Handling & Review lesson10_files.py reading/writing text files, closing the course

How to use this pack (as the teacher)

  1. Before class: read the lesson plan for the day, then open the matching .py file and run each example once so you are comfortable with the output.
  2. In class (suggested 45-50 min block):
    • Hook (5 min) — the "Think about it" question in the lesson plan.
    • Demo (15 min) — run the code examples live, explaining one at a time.
    • Students code (15 min) — students type the examples and try the "Try it" tasks.
    • Worksheet (10 min) — exit task from the worksheet (oral check or written).
    • Home task — given at the end of each lesson plan.
  3. Assess — use worksheets as classwork/homework, exam-prep/neb-style-questions.md for term tests, and code-examples/projects/ for the practical exam.
  4. No computers in the lab? Many Nepali schools have limited computer access. The worksheets are written so most questions can be answered on paper ("dry-run" / trace tables). See curriculum-map.mdTeaching without a lab.

Quick start — preview the demo lesson

Run the Lesson 1 code file to see its output:

python code-examples/lesson01_hello_world.py

Preview the Lesson 1 slide deck (Marp):

npx @marp-team/marp-cli slides/lesson01.md

This is everything you need to walk into a demo class and start teaching.

Running the code

You need Python 3 (any version ≥ 3.8). Download from https://www.python.org/downloads/. On Windows, tick "Add Python to PATH" during installation.

# run a single example file
python code-examples/lesson01_hello_world.py

# or open an interactive session
python

All example files are tested against Python 3.14 and work on any 3.x.

Rendering the slides

The slide decks are plain Markdown with --- slide separators, so they work with:

  • Marpmarp slides/lesson01.md (also exports to PDF/PPTX).
  • reveal.js — via pandoc: pandoc -t revealjs -o out.html slides/lesson01.md.
  • Or just open them in any Markdown viewer / paste into Google Slides.

License / reuse

Free to use and adapt for teaching.

Using this for the selection process

Two things worth knowing before your interview:

  1. The official NEB programming units are in C. The formal syllabus teaches C (Grade 11 Unit 5, Grade 12 Unit 4). curriculum-map.md explains how Python covers the exact same concepts and includes a Python↔C comparison table — showing it demonstrates curriculum awareness, not just Python knowledge.
  2. Many government schools have few computers. curriculum-map.md has a Teaching without a computer lab section (trace tables / dry-run, browser compilers like replit.com, group rotation) — mention this to show you've planned for real classroom conditions.

Run the demo lesson with:

python code-examples/lesson01_hello_world.py

and preview the slides with:

npx @marp-team/marp-cli slides/lesson01.md

If the panel asks you to teach something on the spot, follow demo-lesson-script.md — it's a word-for-word 15-20 minute lesson including the likely panel questions and model answers. If you need to set up the lab first, follow lab-setup-guide.md — it covers offline install via USB, which most no-internet schools need.

About

A ready-to-teach Python curriculum for Grades 10–12, featuring 10 structured lessons, runnable examples, worksheets, slides, projects, exam preparation, and NEB curriculum mapping - designed for practical classroom teaching, including schools with limited computer access.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages