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.
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.
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)
| # | 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 |
- Before class: read the lesson plan for the day, then open the matching
.pyfile and run each example once so you are comfortable with the output. - 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.
- Assess — use worksheets as classwork/homework,
exam-prep/neb-style-questions.mdfor term tests, andcode-examples/projects/for the practical exam. - 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.md→ Teaching without a lab.
Run the Lesson 1 code file to see its output:
python code-examples/lesson01_hello_world.pyPreview the Lesson 1 slide deck (Marp):
npx @marp-team/marp-cli slides/lesson01.mdThis is everything you need to walk into a demo class and start teaching.
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
pythonAll example files are tested against Python 3.14 and work on any 3.x.
The slide decks are plain Markdown with --- slide separators, so they work with:
- Marp —
marp 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.
Free to use and adapt for teaching.
Two things worth knowing before your interview:
- The official NEB programming units are in C. The formal syllabus teaches C (Grade 11 Unit 5, Grade 12 Unit 4).
curriculum-map.mdexplains how Python covers the exact same concepts and includes a Python↔C comparison table — showing it demonstrates curriculum awareness, not just Python knowledge. - Many government schools have few computers.
curriculum-map.mdhas 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.pyand preview the slides with:
npx @marp-team/marp-cli slides/lesson01.mdIf 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.