## Informatics Practices (with Python)Class 11 - New Syllabus (2019-20)

Code No. 065
Optional for the academic year 2018-19 and mandatory for the academic year 2019-20 onwards

1. Prerequisites
Since a lot of students join CBSE schools from schools run by a state board, we are not assuming any pre-requisites for this course other than basic mathematical skills. However, it will be helpful if the student has a basic knowledge of Computer Applications 1 and 2.

2. Learning Outcomes
1. Basic computational thinking. Learn how to reason with variables, state transitions, conditionals, and iteration.
2. Notion of data types, and higher order data structures such as lists, and dictionaries.
3. Concepts of data handling: creating, managing and working with Data Frames using Python Pandas.
4. Structure of simple SQL queries.
5. Cyber safety.

3. Distribution of Marks

 Unit No. Unit Name Marks Periods Theory Theory Practicals 1. Introduction to Computer System 5 3 2 2. Introductory Python Programming 30 45 35 3. Data Handling 10 20 15 4. Data Management 15 30 20 5. Society, Law and Ethics 10 10 0 70 108 72

4.1 Unit 1: Programming and Computational Thinking (PCT-1) (70 Theory + 60 Practical)
⊕ Basic computer organisation: describe a computer system and mobile system, CPU, memory, hard disk, I/O, battery, power, transition from a calculator to a computer

⊕ Familiarization with the basics of Python programming: a simple “hello world" program, process of writing a program, running it, and print statements; simple data-types: integer, float, string

⊕ Introduce the notion of a variable, and methods to manipulate it (concept of L-value and Rvalue even if not taught explicitly)

⊕ Knowledge of data types and operators: accepting input from the console, assignment statement, expressions, operators and their precedence.

⊕ Conditional statements: if, if-else, if-elif-else; simple programs: e.g.: absolute value, sort 3 numbers, divisibility.

⊕ Notion of iterative computation and control flow: for, while, flowcharts, decision trees and pseudo code; write a lot of programs: interest calculation, EMI, tax calculation (examples from GST), standard deviation, correlation

⊕ Lists and dictionary: finding the maximum, minimum, mean; linear search on a list of numbers, and counting the frequency of elements in a list using a dictionary.

⊕ Text handling: compare, concat, and substring operations.

⊕ Introduction to Python modules: creating and importing

4.2 Unit 2: Data Handling (DH-1) (30 Theory + 20 Practical)
4.2.1. Introduction to Python Pandas
⊕ Introduction to data structures in Pandas: Series, and Data Frame
⊕ Operations on a Series: head, tail, vector operations
⊕ Data Frame operations: create, display, iteration, select column, add column, delete column
⊕ Binary operations in a Data Frame: add, sub, mul, div, radd, rsub
⊕ Missing data and filling values.
⊕ Comparisons, Boolean reductions, comparing Series, and combining Data Frames.

4.2.2. Transfer data between CSV files/SQL databases, and Data Frame objects.

4.3. Unit 3: Data Management (DM-1) (30 Theory + 20 Practical)
⊕ Relational databases: idea of a database and the need for it, relations, keys, primary key, foreign key;

⊕ Use SQL commands to create a table, keys, and foreign keys; insert/delete an entry, delete a table.

⊕ Basic SQL: select, project, and join; indexes, and a lot of in-class practice.

4.4. Unit 4: Society, Law and Ethics (SLE-1) - Cyber safety (10 Theory)
⊕ Cyber safety: safely browsing the web, identity protection, confidentiality, social networks, cyber trolls and bullying

⊕ Safely accessing web sites: adware, malware, viruses, Trojans

⊕ Safely communicating data: secure connections, eavesdropping, and phishing and identity verification.

5. Class XI Practical (30 Marks)

1. Problem-solving using arithmetic operations, conditional statements and iterations with the help of a Python program 60% logic + 20% documentation + 20% code quality (To be tested on the day of the final exam) (6 Marks)

2. Problem-solving using numPy (To be tested on the day of the final exam) (4 Marks)

3. SQL – 5 Queries based on single table (To be tested on the day of the final exam) (5 Marks)

4. Report File (6 Marks)
- Minimum 20 Python Programs
- Minimum 20 SQL Queries

5. Viva (4 Marks)

6. Project using the concepts learnt in the course (5 Marks)

Programming in Python
⊕ (Sample problems to be solved using expressions, conditions, loops, list, dictionary, and strings.)
⊕ To find average and grade for given marks,
⊕ To find amount for given cost-qty-discount,
⊕ To calculate cost perimeter-wise/ area-wise,
⊕ To calculate interest (Simple and Compound)
⊕ To calculate profit-loss for given Cost and Sell Price
⊕ To calculate EMI for Amount, Period and Interest,
⊕ To calculate tax (examples from GST/Income Tax)
⊕ To find the largest and smallest numbers in a list.
⊕ To find the third largest number in a list.
⊕ To find the sum of squares of the first 100 natural numbers.
⊕ To find whether a string is a palindrome or not.
⊕ To compute xn , for given two integers x and n,
⊕ To compute the greatest common divisor and the least common multiple of two integers.
⊕ To test if a number is equal to the sum of the cubes of its digits. Find the smallest and largest such numbers in the range of 100 to 1000.

Data Handling:
The following are some representative lab assignments.
⊕ Import numpy as `np` and print the version number.
⊕ To create an array of 1D containing numeric values 0 to 9
⊕ To create a numPy array with all values as True
⊕ To extract all odd numbers from numPy array
⊕ To extract all even numbers from numPy array
⊕ To copy the content of an array A to another array B, replacing all odd numbers of array A with -1 without altering the original array A
⊕ To replace all odd numbers in numPyarr with -1
⊕ To copy content of a 1D array into a 2D array with 2 rows
⊕ To perform basic arithmetic operations on 1D and 2D array

Data Management:

SQL Commands At least the following SQL commands should be covered during the labs: create, insert, delete, select.

The following are some representative assignments.

⊕ To create a database
⊕ To create student table with the student id, class, section, gender, name, dob, and marks as attributes where the student id is the primary key.
⊕ To insert the details of at least 10 student in the above table.
⊕  To delete the details of a particular student in the above table.
⊕  To increase marks by 5% for those students, who have Rno more than 20
⊕  To display the entire content of table on screen
⊕  To display Rno, Name and Marks of those students, who are scoring marks more than 50.
⊕  To find the average of marks from the student table
⊕  To find the number of students, who are from section ‘A’
⊕  To add a new column email of appropriate data type
⊕  To find the minimum and maximum marks obtained by students
⊕  To modify email for each student.
⊕  To display the information all the students, whose name starts with ‘AN’ (Examples: ANAND, ANGAD,..)
⊕  To display Rno, Name, DOB of those students, who are born between ‘2005- 01-01’ and ‘2005-12-31’
⊕  To display Rno, Name, DOB, Marks, Email of those male students in ascending order of their names.
⊕  To display Rno, Gender, Name, DOB, Marks, Email in descending order of their marks.