Three-Month Coding Foundation Programme
Python Foundations, DSA, and Linux
Programme Description
This programme focuses on Python programming first, then moves into Data Structures and Algorithms after she
has built a strong foundation.
The structure is designed to avoid rushing her through important concepts. She will first understand how to write
code, solve simple problems, use functions, work with lists and dictionaries, handle files, and understand the
basics of Object-Oriented Programming. After that, she will move into Data Structures and Algorithms, where she
will learn how to solve problems more efficiently.
Linux will be taught once every week as a separate focus area. This will help her understand how to use the
terminal, manage files, run commands, and become familiar with tools used by developers.
The programme will run for 12 weeks. Each week will have 4 study days. The remaining days will be used for
assignments, revision, practice questions, and mini-project work.
Purpose of the Programme
The purpose of this programme is to help her build a strong foundation before choosing a specific area in
technology. Instead of starting with advanced projects immediately, she will first learn the core skills needed
across different tech fields.
Python will help her understand programming logic and how to build simple applications.
Data Structures and Algorithms will help her improve problem-solving and learn how to write more efficient code.
Linux will help her understand how developers work with terminals, files, commands, and development
environments.
After completing this foundation, she will be better prepared to explore areas such as software engineering, data
science, data engineering, DevOps, cybersecurity, cloud computing, or artificial intelligence.
Areas in Technology
1. Software Engineering
Software engineering is the process of designing, building, testing, and maintaining software applications.
Software engineers create websites, mobile apps, backend systems, APIs, desktop applications, and other
systems used by individuals, businesses, and organizations.
In this field, she would eventually learn how to build applications, connect them to databases, create user
accounts, design backend systems, and make software reliable and easy to use.
Examples of software engineering projects include a task management app, school portal, quiz app, e-commerce
website, messaging app, or booking platform.
2. Data Science
Data science focuses on using data to understand patterns, answer questions, and support decision-making.
Data scientists collect, clean, analyze, and visualize data. They may also build prediction models using machine
learning.
In this field, she would use Python, statistics, data analysis tools, and visualization libraries to study information
and make useful conclusions from it.
Page 1
Examples of data science projects include analyzing student scores, studying sales trends, predicting customer
behavior, analyzing game statistics, or creating charts from survey results.
3. Data Engineering
Data engineering focuses on collecting, organizing, storing, and moving data. Data engineers make sure data is
clean, reliable, and available for data scientists, software systems, and businesses to use.
In this field, she would learn about databases, data pipelines, APIs, automation, cloud storage, and backend
systems.
Examples of data engineering projects include collecting data from an API, cleaning the data, saving it in a
database, building a data pipeline, or creating an automated report system.
4. DevOps
DevOps combines software development and system operations. DevOps engineers help applications run
properly after they are built. They work with servers, deployments, automation, monitoring, and system reliability.
In this field, she would need Linux, Git, server basics, cloud platforms, Docker, and deployment skills.
Examples of DevOps projects include deploying a web app, setting up a server, using Docker, creating a
deployment pipeline, automating backups, or monitoring application logs.
5. Cloud Engineering
Cloud engineering focuses on building and managing applications using cloud platforms such as AWS, Google
Cloud, Microsoft Azure, or DigitalOcean. Cloud engineers work with servers, storage, databases, networking, and
deployment.
In this field, she would learn how online systems are hosted, managed, secured, and scaled.
Examples of cloud engineering projects include hosting a website, setting up cloud storage for images, deploying
a backend API, creating a database, or managing a virtual private server.
6. Cybersecurity
Cybersecurity focuses on protecting computers, websites, applications, networks, and data from attacks. It
involves understanding how systems work and how to keep them safe.
In this field, she would need Linux, networking basics, Python, security concepts, and strong problem-solving
skills.
Examples of cybersecurity projects include a password strength checker, file encryption tool, log analyzer, basic
vulnerability scanner, or secure login system.
7. Artificial Intelligence and Machine Learning
Artificial Intelligence focuses on building systems that can perform tasks that normally require human intelligence.
Machine Learning is a major part of AI and involves teaching computers to learn from data.
In this field, she would use Python, data, statistics, algorithms, and machine learning tools.
Examples of AI and machine learning projects include a chatbot, spam detector, recommendation system, image
classifier, or prediction model.
8. Frontend and Backend Development
Frontend development focuses on the part of an application users see and interact with. Backend development
focuses on the server, database, authentication, APIs, and business logic.
Python is commonly used for backend development through tools such as Flask, FastAPI, and Django. A strong
Python foundation will help her understand backend development more easily later.
Page 2
Examples of backend projects include a login system, REST API, student dashboard, task manager, or
messaging system.
Programme Structure
- Duration: 12 weeks
- Main study days: 4 days per week
- Assignment days: Remaining days of the week
- Main topics: Python, Data Structures and Algorithms, Linux
- Recommended class duration: 1.5 to 2 hours per study day
- Recommended assignment time: 1 to 2 hours per assignment day
Weekly Structure
- Day 1: Python or DSA lesson
- Day 2: Python or DSA practice
- Day 3: Guided coding practice or mini-project
- Day 4: Linux
The remaining days will be used for assignments, practice questions, debugging, revision, mini-project
improvement, reading notes, and preparing questions for the next class.
Suggested Weekly Timetable
- Monday: Python or DSA lesson
- Tuesday: Assignment and practice
- Wednesday: Python or DSA practice
- Thursday: Assignment and revision
- Friday: Guided coding project
- Saturday: Linux
- Sunday: Rest or light review
Month 1: Python Basics and Confidence Building
Week 1: Introduction to Python and Linux
Day 1 - Python
Introduction to programming, variables, data types, numbers, strings, input, output, and basic operators.
Day 2 - Python Practice
Writing simple programs using input, output, and calculations.
Day 3 - Guided Coding
Build small beginner programs such as an age calculator, area calculator, and simple interest calculator.
Day 4 - Linux
Introduction to the terminal, folders, files, and navigation.
Linux Commands
Page 3
pwd, ls, cd, mkdir, touch, clear
Assignment Focus
Practice simple Python programs that use input, output, variables, and basic calculations.
Weekly Mini-Task
Create a simple calculator program.
Week 2: Conditions and Decision Making
Day 1 - Python
if, elif, else, comparison operators, logical operators, and nested conditions.
Day 2 - Python Practice
Solving decision-based problems using conditions.
Day 3 - Guided Coding
Build programs that make choices based on user input.
Day 4 - Linux
Creating, copying, moving, deleting, and viewing files.
Linux Commands
cp, mv, rm, cat, nano
Assignment Focus
Practice condition-based programs that use decision making, comparisons, and logical operators.
Weekly Mini-Task
Build a student grade checker.
Week 3: Loops
Day 1 - Python
for loops, while loops, range(), counters, accumulators, break, and continue.
Day 2 - Python Practice
Solving repetition problems using loops.
Day 3 - Guided Coding
Build programs that repeat actions, count values, and generate patterns.
Day 4 - Linux
Viewing and editing files from the terminal.
Linux Commands
head, tail, less, nano
Assignment Focus
Practice loop-based programs that repeat tasks, count values, calculate totals, and generate patterns.
Weekly Mini-Task
Create a multiplication table generator.
Page 4
Week 4: Strings
Day 1 - Python
String indexing, slicing, string methods, looping through strings, and checking characters.
Day 2 - Python Practice
Solving text-based problems.
Day 3 - Guided Coding
Build small programs that work with usernames, passwords, names, and sentences.
Day 4 - Linux
Searching files and counting text.
Linux Commands
grep, find, wc
Assignment Focus
Practice string-based programs that process text, count characters, check patterns, and clean user input.
Weekly Mini-Task
Build a simple password strength checker.
Month 2: Python Foundations and Small Projects
Week 5: Lists
Day 1 - Python
Lists, indexing, slicing, list methods, adding items, removing items, updating items, and looping through lists.
Day 2 - Python Practice
Solving list-based problems.
Day 3 - Guided Coding
Build programs that store and process groups of data.
Day 4 - Linux
Command redirection and combining commands.
Linux Commands
>, >>, |, sort, uniq
Assignment Focus
Practice list-based programs that store multiple values, search through data, calculate totals, and organize items.
Weekly Mini-Task
Build a student score analyzer.
Week 6: Functions
Day 1 - Python
Functions, parameters, arguments, return values, local variables, and reusable code.
Page 5
Day 2 - Python Practice
Turning repeated code into functions.
Day 3 - Guided Coding
Build a program using multiple helper functions.
Day 4 - Linux
File permissions and executable files.
Linux Commands
chmod, sudo, whoami
Assignment Focus
Practice writing reusable functions that solve small problems and reduce repeated code.
Weekly Mini-Task
Create a Python utility program with reusable functions.
Week 7: Dictionaries, Sets, and Tuples
Day 1 - Python
Dictionaries, key-value pairs, tuples, sets, dictionary methods, and set operations.
Day 2 - Python Practice
Solving problems using dictionaries and sets.
Day 3 - Guided Coding
Build programs that store structured information.
Day 4 - Linux
File organization and directory practice.
Linux Practice
Create folders, move files, rename files, delete files, and organize project folders from the terminal.
Assignment Focus
Practice dictionary, set, and tuple problems that store structured data, remove duplicates, and count repeated
values.
Weekly Mini-Task
Build a contact book.
Week 8: File Handling and Object-Oriented Programming Introduction
Day 1 - Python
Reading files, writing files, appending files, and processing text data.
Day 2 - Python
Introduction to Object-Oriented Programming: classes, objects, attributes, methods, constructors, and self.
Day 3 - Guided Coding
Build a small program that uses files and simple classes.
Day 4 - Linux
Page 6
Using Linux commands to read, search, and inspect text files.
Assignment Focus
Practice saving data into files, reading data from files, and creating simple classes to represent real-world objects.
Weekly Mini-Task
Build a simple note-taking app or bank account simulation.
Month 3: Data Structures and Algorithms
Week 9: Introduction to DSA and Searching
Day 1 - DSA
What Data Structures and Algorithms are, why they matter, and how they help solve problems efficiently.
Day 2 - DSA Practice
Linear search, finding values, counting values, and checking if items exist in a list.
Day 3 - Guided Coding
Solve beginner search problems using lists, strings, and dictionaries.
Day 4 - Linux
Shell scripting basics and simple automation.
Linux Topics
Creating .sh files, running shell scripts, and automating repeated commands.
Assignment Focus
Practice beginner DSA problems involving searching, counting, duplicates, and comparing values.
Weekly Mini-Task
Build a simple search program.
Week 10: Sorting and Two-Pointer Problems
Day 1 - DSA
Bubble sort, selection sort, insertion sort, and why sorting is useful.
Day 2 - DSA Practice
Sorting numbers, sorting names, comparing values, and arranging data.
Day 3 - Guided Coding
Solve beginner sorting problems and simple two-pointer problems.
Day 4 - Linux
Processes and system monitoring.
Linux Commands
ps, top, kill, jobs
Assignment Focus
Practice sorting problems, comparison problems, and simple two-pointer exercises.
Page 7
Weekly Mini-Task
Build a sorted contact search program.
Week 11: Stacks, Queues, and Recursion
Day 1 - DSA
Stacks, queues, push, pop, enqueue, dequeue, and real-life examples.
Day 2 - DSA Practice
Solving stack, queue, and recursion problems.
Day 3 - Guided Coding
Build simulations using stacks and queues.
Day 4 - Linux
Git basics.
Linux/Git Commands
git init, git status, git add, git commit, git log
Assignment Focus
Practice stack, queue, and recursion problems through small simulations and beginner coding exercises.
Weekly Mini-Task
Build a browser history simulator.
Week 12: Final Revision and Final Project
Day 1 - Python Revision
Review variables, conditions, loops, strings, lists, functions, dictionaries, files, and OOP.
Day 2 - DSA Revision
Review searching, sorting, stacks, queues, recursion, duplicates, frequency counters, and problem-solving
patterns.
Day 3 - Final Project Work
Plan, build, test, and improve the final project.
Day 4 - Linux and Git
Organize the project folder, use Git, and prepare the final submission.
Final Project Options
- Student grade management system
- Contact management system
- Expense tracker
- Quiz application
- Library management system
- To-do list with file storage
- Bank account system
- Word frequency analyzer
Page 8
Final Project Requirements
- Variables
- Conditions
- Loops
- Functions
- Lists or dictionaries
- File storage if possible
- At least one class if possible
- Clean code structure
- A short README file
- A short explanation of how the program works
Final Programme Outcome
By the end of the three months, she should be able to:
- Write beginner Python programs confidently.
- Use variables, conditions, loops, strings, lists, functions, dictionaries, sets, files, and basic classes.
- Solve beginner coding problems step by step.
- Understand basic Data Structures and Algorithms.
- Use basic Linux terminal commands.
- Use Git to save and track code.
- Build small Python projects independently.
- Prepare for future learning in software engineering, data science, data engineering, DevOps, cybersecurity,
cloud computing, or artificial intelligence.
Page 9