Computer Science and Python Programming (supplementary to NCERT syllabus – Grade 11 and 12)
Duration: 9 months approximately (2 classes per week on weekday evenings- 1.5 hours per class)
Course Track: Beginner
About the Course
This training program aims to equip computer science students on basics of computer science that include programming in python, basic algorithms and data-structures, computational problem solving sills, computer networking fundamentals, databases and computer security. The topics covered are in tune and supplementary to the NCERT syllabus grade 11 and 12 and is suitable for students from grade 8 and above (aged 12+ years).
This training program will be a 50-module online course for children studying 8th grade and above. Each module would span up to 1.5 hours. The precise schedule will be decided a week before commencing the course (planned for 2 sessions per week on Tuesday and Wednesday evenings – 6:30 pm to 8:00 pm IST). This course aims to introduce computer concepts and coding in python for children in the most basic yet practical and intuitive manner while guiding them to understand how computers work.
Target Audience
Prerequisites
- Have a computer or a laptop equipped with internet connectivity and enough free storage space (above 2 GB) to install Python and relevant third-party software.
- Ability to understand and converse in English (instructor will speak in Indian accent).
Training Mode
- This training program is designed to be an online live master class conducted via Google Meet.
- All communication related to training materials, assignments and Meeting Links will be via email and WhatsApp group (details will be shared upon enrollment).
- Each module is planned for a one-hour session, but can spill-over multiple sessions based on overall wavelength of attendees.
- Though the entire course is planned for seven months, it can stretch by one or two more months based on the pace of the training sessions and topic coverage.
Training Requirements
Module 1: Basics of Computer System – Part 1
- Introduction to Computers
- How computers evolved
- Parts of a computer
- CPU
- Memory
- Secondary Storage
- Input/Output devices and peripherals
Module 2: Basics of Computer System – Part 2
- Hardware, Firmware and Software
- Different types of Software
- Proprietary Software vs Open Source Software
- Computer Programs and Programming Languages
- Types of Programming Languages
- Compilers and Interpreters
- SDKs and IDEs
Module 3: Operating Systems
- Roles of an Operating System
- Types of Operating Systems (with examples)
- Examples and demonstrations on different operating systems
- User Interface
- Resource management subsystems in an OS:
- Process Management
- Memory Management
- File Management
- Device Management
Module 4: Encoding schemes and Number systems
- How computers encode data
- Representing characters
- ASCII notation
- UNICODE notation
- Basics of number system
- Decimal number system
- Binary number system
- Hexadecimal number system
- Octal number system
Module 5: Conversion between number systems
- Conversion between binary numbers and decimal numbers
- Conversion between binary to octal and hexadecimal numbers
- Conversion between decimal to octal and hexadecimal numbers
- Converting and managing floating point numbers in different number systems
Module 6: Binary number math
- 1’s complement and 2’s complement of a binary number
- Adding binary numbers
- Subtracting binary numbers
Module 7: Logic Gates and Digital Circuits
- Basic Logic Gates: NOT, AND, OR and XOR
- Truth Tables for basic logic Gates
- Adders, Complementors, Latches (overview)
- Multiplexers and Demultiplexers (overview)
Module 8: Computer architectural overview
- What’s inside a CPU
- Registers
- ALU and Control Unit
- IPU and execution pipelines
- Cache memory
- CPU instructions and Instruction-Set-Architecture
- CISC and RISC architectures
Module 9: Problem Solving Techniques
- Introduction to Problem Solving
- Steps of Problem Solving
- Algorithms and their representation
- Introduction to Algorithms
- Flow-charts
- Pseudo-code
Module 10: Algorithms and Flow-Control: Examples and Practice Exercises
- Basic flow-chart and pseudo-code exercises:
- Algorithm to find the square of a number
- Algorithm to find the perimeter of a rectangle
- Conditions and Decision making
- Fix a non-working light-bulb
- Check eligibility for voting
- Check if a number is even or odd
- Categorize a person as either a child, teenager or adult
- Verifying algorithms
- Comparison of algorithms and optimization
Module 11: Getting started with Python
- Introduction to Python
- Python REPL and IDE
- Python keywords and identifiers
- Variables, Values and Types
- Operators and Expressions
- Python statements
- Comments
- Basic Python syntax
Module 12: Simple Python Programs
- Ingredients of a Python Program
- Input and Output
- Storing Python programs in a file
- Running Python program files
- Converting between numeric and string types
- Basic debugging techniques
Module 13: Python Data Types
- “Everything is an object” paradigm
- Names, Objects, Values and Types
- Numbers –
int
,bool
,float
andcomplex
- Sequences –
str
,tuple
,list
- Sets –
set
,frozenset
- Mappings –
dict
- NoneType –
None
Module 14: More on Python Data Types
- Literal notations and construction
- Literal integer notations
- The boolean
True
andFalse
reserved identifiers - Literal string notations
- Literal notation of lists, tuples, sets and dictionaries
- Mutable and Immutable objects
- Basic object introspection:
id()
,type()
,callable()
,dir()
Module 15: Conditions in Python
- Conditional statements
- Boolean expressions and truthiness
- The
if
statement - The ternary-if expression
- The
match
statement - Compound statements and indentation rules
Module 16: Loops in Python
- The
while
loop - The
for
loop - The
range()
function - The
break
andcontinue
statements - The
else
clause in looping constructs - Choosing between a
while
andfor
loop
Exercises:
- Write a program to generate first ‘n’ fibonacci series
- Write a program to check if a number is prime
- Write a program to generate the first ‘n’ prime numbers
- Write a program to generate multiplication table for a given number
- Write a program to print the minimum and maximum of five numbers passed as user input
- Write a program to generate factorial of a number
- Write a program to find HCF of two given numbers
Module 17: Functions in Python
- Functions and reusability
- Defining functions
- Function arguments and return values
- Scope of a variable
Module 18: Modules in Python
- Introduction to Python modules
- Python program files as modules
- Modules as namespaces and modular program design
- Loading modules using
import
statement - Importing module members in current namespace
- Python standard library overview
Exercises:
- Write a function to compute simple interest and compound interest
- Write a function to compute the determinant of a quadratic equation based on the coefficients passed as arguments
- Implement a module named mathtools that provides functions – factorial, is_prime, gen_primes, fibonacci
Module 19: Working with Strings
- String literal representations
- String operators –
+
,*
,[]
- String indexing and slicing
- The
len()
function - Strings as immutable objects
- Membership operator:
in
- Traversing a string
Module 20: String methods
- String content validation
- The
isalpha()
,isdigit()
,isalnum()
,isspace()
,isprintable
methods - String case conversion
upper()
,lower()
,capitalize()
,title()
,swapcase()
methods- Substring search and match methods:
startswith()
,endswith()
find()
,index()
,count()
- Strip, split and join methods:
strip()
,lstrip()
,rstrip()
split()
,splitlines()
,join()
Module 21: String formatting
- Using the string format operator –
%
- Using the string
.format()
method - Using f-strings from Python 3.6+
Module 22: Tuples and Lists
- Introduction to Tuples and Lists
- Tuples Vs Lists
- Common operations
- Concatenation, Repetition, Indexing and Slicing
- Common methods:
.index()
and.count()
- Nested collections using Tuples and Lists
- Conversion between Tuples and Lists
Module 23: List operations
- List index and slice assignments
- Appending and Extending to a list
.append()
,.extend()
- Inserting items and removing items of a list
.insert()
,.pop()
,.remove()
,.clear()
- Replicating a list
.copy()
,copy.deepcopy()
- In-place sorting and reversing a list
.sort()
,.reverse()
Module 24: Builtin list and tuple helpers
- Iteration helpers
range()
,zip()
,enumerate()
,reversed()
,sorted()
- Reduction functions
sum()
,min()
,max()
,all()
,any()
Module 25: Sets in Python
- Introduction to
set
- Creating sets using literal notation and constructor expression
- Features and rules of a set
- Set operations: union, intersection, difference, subset and superset
- Set vs List: differences and use-cases
- An overview on
frozenset
Module 26: Dictionaries in Python
- Introduction to dictionaries
- Creating dictionaries
- Basic dictionary operations
- Traversing items of a dictionary
- Dictionary methods
.keys()
,.values()
,.items()
.copy()
,.clear()
.pop()
,.popitem()
,.update()
.get()
,.setdefault()
,.fromkeys()
Exercises:
- Write a function to return a list of indices of each occurrence of a given value in a list
- Write a function to compute the sum of all odd numbers in a given list
- Write a function to extract and return a list of prime numbers from a given list input list
- Write a function to return the first ‘n’ large numbers in a given list
- Write a function to return a median of a given list of numbers
- Write a program to repetitively prompt for email address as user input and store the username as a list of values in a dictionary based on keys that represent the domain name of the email address
- Write a function to count the frequency of occurrence of each word in a paragraph passed as a string input and return a dictionary of keys representing each word and value being the frequency of occurrence of that word.
Module 27: File I/O in Python – Part 1
- Introduction to files and filesystems
- Types of files
- File I/O in text mode and binary mode
- Understanding
str
vsbytes
objects - Reading text files
- Using the
with
statement for opening files - The
.read()
,.readline()
and.readlines()
method - File as an iterable object
- Using the
- Reading binary files
- Use-cases and limitations
Module 28: File I/O in Python – Part 2
- Writing text files
- The write mode vs append mode
- the
.write()
and.writelines()
method
- Writing to binary files
- Random I/O using
.seek()
and.tell()
methods - Using the
pickle
module to serialize and unserialize data
Exercises:
- Implement a simple user management module that manages user records in a file
- Allow adding a new user record, but raise an error if the username already exists
- Allow removal of an existing user record, bur raise an error if the username does not exit
- Allow modifying user details in the user record
- Provide a function to authenticate a user by verifying the credentials of the user record stored in the file
Module 29: Handling Exceptions in Python
- Syntax Errors vs Runtime Errors
- Builtin Errors and their meaning
- Raising Errors using
raise
statement - Raising AssertionError using
assert
statement - Handling Runtime errors gracefully using the
try
…except
statements - The usage of
else
andfinally
clauses intry
statements
Module 30: The stack data-structure
- Introduction to Stack
- Stack operations: push(), pop(), peek(), is_empty(), is_full()
- Practical use-cases of stack in programming
- Python lists as a stack datastructure
- Notations for arithmetic expressions
- Conversion from infix to postfix notation
- Evaluation of a postfix expression
Module 31: The queue data-structure
- Introduction to Queue
- Queue operations: enqueue(), dequeue(), peek(), is_empty(), is_full()
- Practical use-cases of queue in programming
- Python lists as a queue datastructure
- Queue Vs Deque
Implementing a Deque using Python list - Limitations of using a python list as a queue
- Using
collections.deque
in python
Module 32: Introduction to Sort algorithms and Bubble sort
- Introduction to Sorting
- An overview on various sorting algorithms
- Simple sorting algorithms
- Bubble sort
- Implementing bubble sort algorithm in Python
- Understanding time complexity of algorithms and the Big-O notation
Module 33: Selection sort, Insertion sort and more
- Understanding the selection sort algorithm
- Implementing selection sort using Python
- Understanding the insertion sort algorithm
- Implementing insertion sort using Python
- Comparing bubble sort, selection sort and insertion sort
Module 34: Searching algorithms
- Introduction to search algorithms
- Understanding Linear search with examples
- Understanding Binary search with examples
- Understanding Hash search with examples
Module 35: Data Representation and Analytics
- Introduction to Data Representation
- Structured and Unstructured data
- Data scraping and cleansing
- Data collection and storage
- Common Data storage formats:
- CSV, JSON, XML, Proprietary/Opaque formats
- Database Storage
- Data processing techniques
- Data Analytics: basic statistical techniques
Exercises:
- Write a program to analyze a CSV file representing the daily sales of a retail store for the last 5 years and print the following details:
- The most profitable months on average in the last 5 years
- The most sold product in the last 2 years
- Net profit in the last year
- The year with highest sales
- The top 5 list of loss-making products
Module 36: Introduction to Database Management Systems
- Introduction to Database Management Systems
- Limitations with files for storing structured data
- Access difficulty
- Data redundancy issues
- Data inconsistency issues
- Data isolation issues
- Data dependency issues
- Data access control issues
- File System vs DBMS
- Keys concepts in DBMS
- Database Schema
- Data Constraints
- Meta-data or Data Dictionary
- Database Instance
- Database Query
- Database Manipulation
- Database Engine
Module 37: Relational Databases
- Relational Data Model and RDBMS
- Attribute, Tuple, Domain, Degree and Cardinality
- Three important properties of a Relation
- Keys in a relational databases
- Candidate Key
- Primary Key
- Composite Primary Key
- Foreign Key
Module 38: Structured Query Language
- Introduction to SQL and SQL compliant RDBMS
- Introduction to MySQL – an open source client-server RDBMS
- Common MySQL Attribute Data Types
CHAR
,VARCHAR
,TEXT
,ENUM
,SET
INT
,FLOAT
,DECIMAL
DATE
,DATETIME
,TIMESTAMP
- Common MySQL Attribute Constraints
NOT NULL
,UNIQUE
,DEFAULT
,PRIMARY KEY
,FOREIGN KEY
- Data Definition Language (DDL)
CREATE DATABASE
CREATE TABLE
SHOW DATABASES
SHOW TABLES
DESCRIBE
ALTER TABLE
DROP TABLE
andDROP DATABASE
Module 39: SQL for Data Manipulation
- Inserting records to tables using
INSERT INTO
- Updating records in a table using
UPDATE
- Replacing records in a table using
REPLACE INTO
- Deleting records in a table using
DELETE FROM
- Fetching records using
SELECT
…FROM
Module 40: SQL for Data Query
- Using
SELECT
statement- Retrieve selected columns
- Renaming of selected columns during retrieval
- Retrieve distinct records
- Filtering records using
WHERE
clause - Using membership operator in filters
- Sorting records output using
ORDER BY
clause - Handling NULL values
- Substring pattern matching in filters
Module 41: SQL Functions
- Math Functions
- String Functions
- Date and Time Functions
- Aggregate Functions
- Using the
GROUP BY
clause inSELECT
statement
Module 42: Set Operations on Relational Data
- UNION, INTERSECT, DIFFERENCE, PRODUCT operations
- Performing Table Join operations
- OUTER JOIN
- INNER JOIN / NATURAL JOIN
- LEFT JOIN and RIGHT JOIN
Exercises:
- Create a database to represent student information in a school that provides access to the following:
- Student enrollment details that include student’s grade/class, subject stream, class teacher and student-id and contact number
- Student’s attendance details daywise and class-wise
- Student’s test and exam score
- Student’s enrollment into extra-curricular activities
- Student’s achievements and awards in class and extra-curricular activities
- Insert dummy records in the database for 50 students
- Practice the following operations
- Changing a given student’s grade/class
- Changing a given student’s contact number
- Deleting a student record safely from the database
- Retrieve student records for those who have full attendance
- Retrieve student records for those who have scored highest marks in each grade
- Retrieve student records for those with awards in extra-curricular activities
- Find out the average strength of students in a given class/grade
Module 43: Computer networks – Part 1
- Introduction to Computer Networks
- History and Evolution of Computer Networks
- Types of Networks: PAN, LAN, MAN, WAN
- Networking Devices:
- Modems, Ethernet, WLAN
- Repeater, Hub, Switch, Router, Gateway
- Networking Topologies:
- Mesh Networks
- Token Ring Networks
- Bus Topology Networks
- Star Topology Networks
- Tree Networks
Module 44: Computer networks – Part 2
- Identifying nodes in a computer network
- MAC Address
- IP Address (IPv4 and IPv6)
- The Internet and VPN
- The high-level Internet architecture
- The World-Wide-Web (WWW)
- HTTP / HTTPS protocol
- URI and URL
- The Domain Naming System (DNS)
- The Public Internet vs VPN
Module 45: Data Communication
- Introduction to Data Communication
- Data Communication terms and parts
- Sender, Reciever and Communication Media
- Message and Protocols
- Request, Response, Handshake and Flow-control
- Measuring Capacity of communication media
- Transmission Bandwidth
- Data Transfer Rate
- Types of data communication:
- Simplex, Half-duplex and Full-duplex communication
- Switching techniques
- Circuit Switching, Packet Switching
- Transmission Media
- Wired Media
- Wireless Media
Module 46: Communication Protocols
- An overview on ISO/OSI stack
- An overview on TCP/IP stack
- The Point-to-Point Protocol (PPP)
- Application layer Protocols
- HTTP and HTTPS
- FTP, Telnet, SSH and SFTP
- SMTP, POP3 and IMAP
Module 47: Computer and Network Security
- Threats and Prevention
- Malware: Virus, Worms, Trojan, Spyware, Adware, Keyloggers and Ransomware
- Modes of Malware distribution
- Combating Malware
- Antivirus
- Spam
- HTTP vs HTTPS
- Cookies
- Firewall
- Hackers and Crackers
- Network security threats
- DoS and DDoS attacks
- Network intrusion attacks
- Snooping and Eavesdropping
Module 48: Emerging Trends
- Introduction
- Artificial Intelligence (AI)
- Big Data and Data Analytics
- Internet of Things (IoT)
- Virtualization, Containerization, Infrastructure Automation and Cloud Computing
- Grid Computing
- Blockchains
Module 49: Societal Impact
- Introduction
- Digital Footprints
- Digital Society and Netizen
- Net Etiquettes
- Communication Etiquettes
- Social Media Etiquettes
- Data Protection
- Intellectual Property Right (IPR) and IPR Violations
- Public Access and Free/Open Source Software
- Cyber crime
- Hacking
- Phishing and Fraud Emails
- Ransomware
- Combatting and Preventing Cyber crime
- Indian Information Technology Act (IT Act)
- Health and Safety concerns
Module 50: Project Based Learning
- Introduction
- Approaches for solving projects
- Teamwork
- Project descriptions
- Delegation of work
- Software Development Practices:
- Agile Methodologies (XP, TDD, SCRUM, CRC, UIFD)
- Collaborating with teams
- Managing bugs and issues
- Contributing to Open Source projects
Monthly Course fee: ₹3000 INR (for eight months to be paid by 5th of each month)
Or Total Course fee: ₹24000 INR (to be paid in advance for enrollment)
How to enroll ?
In order to enroll to this training class, you can fill in the form below registering your interest with the required details.
You will receive an acknowledgement email from registrations@slashprog.com once you submit the form. In this email, we will provide you with the details for paying the course fee including payment links if you chose “Pay via Stripe” or UPI/NEFT details if you chose UPI/NEFT payment option.
Once we receive the payment, we will reply back with the confirmation of your training registration and provide you links to connect using Google Meet along with the exact schedule for the classes by email.
If you have any further queries, you can email us directly to contact@slashprog.com