4.1: Programming and Computational Thinking (PCT -1)
Familiarization with the basics of Python programming: a simple 'hello world' program, process of writing a program, running it, and print statement; simple data-types: integer, float, string
Introduce the notion of a variable, and methods to manipulate it ( concept of L-value and R-value even if not taught explicitly)
Notion of iterative computation and control flow: for, while, flowcharts, decision trees and pseudo code; write a lot programs: interest calculation, primarily testing, and factorials.
Sorting algorithm: bubble and insertion sort; count the number of operations while sorting.
String:compare, concat, substring; notion of states and transitions using state transition diagram.
4.2.Unit 2: Computer Systems and Organization ( CSO )
Basic Computer organization: description of a computer system and mobile system, CPU, memory, hard disk, I/O, battery, power
4.3. Unit 3: Data Management ( DM-1)
Relational database: idea of a database and the need for it. relation, keys, primary key, foreign key, use SQL commands to create a table, foreigh keys; insert/delete an entry, delete a table.
SQL commands: select,project, and join; indexes, and a lot of in-class practice.
Basics of NoSQL database-Mongo DB
4.4. Unit 4: Society, Law and Ethics ( SLE-1)-Cyber safety
Cyber safety: safely browsing the web, identity protection, confidentiality, social networks, cyber tolls and bullying.
5.1. Programming in Python:
At least the following Python concepts should be covered in the lab sessions: expressions, conditionals, loops, list, dictionary, and strings. The following are some representative lab assignments.
At least the following SQL command should be covered during the labs: create, insert, delete, select and join. The following are some representative assignments.
Create a student table with the student id, name, and marks as attributes where the student id is the primary key.
Insert the details of a new student in the above table
Delete the details of a particular student in the above table
Use the select command to get the details of the students with mark more than 80
Create a new table ( name date of birth) by joining two tables ( student id, name ) and (student id , date of birth )
Create a new table ( order ID , customer Name and order Date ) by joining two tables ( order ID,customer ID, and order Date) and ( customer ID, customer Name, contact Name, country)
CBSE Syllabus : Computer Science class : XII
4.1 : Programming and Computational Thinking(PCT-2)
Revision of the basics of Python
Functions: scope, parameter passing, mutable/immutable properties of data objects, pass array to function, return values, functions using libraries: mathematical, and string functions.
File handling: open and close a file, read , write, and append to a file, standard input , output, and error streams, relative and absolute paths.
Using Python libraries: Create and import Python libraries
Idea of efficiency: performance defined as inversely proportional to the wall clock time , count the number of operations a piece of code is performing , and measure the time taken by a program. Example: take two different programs for the same problem, and understand how the efficient one takes less time.
Data visualization using Pyplot: line chart, pie chart, and bar chart.
Data-structures: list, stacks, queues.
4.2 : Computer Networks ( CN )
Structure of a network: Types of networks: local area and wide area ( web and Internet), new technologies such as cloud and IoT, public vs private cloud, wired and wireless networks; concept of a client and server.
Network devices such as a NIC, switch, hub, router and access point
Network stack: amplitue and frequency modulation, collision in wireless networks, error checking, and the notion of a MAC address, main idea of routing. IP addresses ( v4 and v6 ), routing table, router, DNS , and web URLs, TCP: basic idea of retransmission, and rate modulation when there is congestion( analogy to a road network ), Protocols: 2G,3G,4G,Wi-Fi. What makes a protocol have a higher bandwidth?
Application layer:HTTP(basic idea ), working of email, secure communication: encryption and certificates ( HTTPS ), network applications: remote desktop, remote login, HTTP, FTP, SCP, SSH, POP/IMAP, SMTP, VoIP, NFC
4.3 : Data Management (DM-2)
Write a minimal Django based web application that parses a GET and POST request, and wites the field to a file - flat file and CSV file.
Interface Python with an SQL database
SQL commands: aggregation functions - having, group by, order by.
4.4 : Society, Law and Ethics ( SLE-2)
Intellectual property rights, plagiarism, digital rights management, and licensing ( Creative Commons, GPL and Apache), open source, open data, privacy.
Technology and society: understanding of societal issues and cultural changes induced by technology.
E-waste management: proper disposal of used electorics gadgets.
Identity theft, unique ids and biometrics
Gender and disability issues while teaching and using computers
5.1 : Programming in Python:
Recursively find the factorial of a natural number.
Read a file line by line and print it.
Remove all the lines that content the character 'a' in the file and write it to another file.
Write a Python function sin(x, n) to calculate the value of sing(x) using its Taylor series expansion up to n terms. Compare teh values of sing(x) for different values of n with the correct value.
Write a random number generator that generatrs random numbers between 1 and 6 ( simulates a dice)
Write a recursive code to find the sum of all elements of a list
Write a recursive code to compute the nth Fibonacci number.
Write a python program to implement a stack and queue using a list data-structure.
Write a recursive Python program to test if a string is a palindrome or not
Write a Python program to plot the function y=x2 using the pyplot or matplotlib libraries.
Create a graphical application that accepts user inputs, performs some operation on them,and then writs the output on the screen. For example, write a small calculator. Use the Tkinter Library.
Open a webpage using the urllib library.
Compute EMIs for a loan using numpy or scipy libraries
Take a sample of 10 phishing e-mails and find the most common words.
5.2 : Data Management: SQL and web-server
Find the min, max, sum, and average of the marks in a student marks table.
Find the total number of customers from each country in a table ( customer ID, customer name, country ) using group by
Write SQL query to order the ( student ID, marks) table in descending oder of the marks.
Integrate SQL with Python by importing the MySQL module
Write a Django based web server to parse the user request ( POST ), and write it to a CSV file.