Computer Science Class 12

Computer Science

CLASS-XII

Code No. 083

2020-21

 

 

1. Prerequisites

 

Computer Science- Class XI

  1. Learning Outcomes
  • Apply the concept of functions and recursion.
  • Ability to create and use Python libraries.
  • Apply the concept of file handling.
  • Make use of the concept of efficiency in algorithms and computing in general.
  • Ability to use basic data structures: Stacks and Queues.
  • Explain the basics of computer networks.
  • Ability to use connectivity between Python and SQL.

Distribution of Marks:

 

Unit No.

Unit Name

Theory

Marks

 

Periods

Theory   Practical

1

Computational Thinking and programming-2

40

70               50

2

Computer Networks

10

15

3

Database Management

20

25               20

Total

 

70

25               20

 

Unit I: Computational Thinking and Programming - 2

  • Revision of the basics of Python covered in Class XI.
  • Functions: scope, parameter passing, mutable/immutable properties of data objects, passing strings, lists, tuples, dictionaries to functions, default parameters, positional parameters, return values, functions using libraries: mathematical and string functions.
  • File handling: Need for a data file, Types of file: Text files, Binary files and CSV (Comma-separated values) files
  • Text File: Basic operations on a text file: Open (filename – absolute or relative path, mode) / Close a text file, Reading and Manipulation of data from a text file, Appending data into a text file, standard input/output and error streams, relative and absolute paths.
  • Binary File: Basic operations on a binary file: Open (filename – absolute or relative path, mode) / Close a binary file, Pickle Module – methods load and dump; Read, Write/Create, Search, Append and Update operations in a binary file.
  • CSV File: Import CSV module, functions – Open / Close a CSV file, read from a CSV file and Write into a CSV file using csv.reader ( ) and csv.writerow( ).
  • Using Python libraries: create and import Python libraries.
  • Recursion: simple algorithms with recursion: print a message forever, the sum of first n natural numbers, factorial, Fibonacci numbers; recursion on arrays: binary search.
  • The idea of efficiency: performance measurement in terms of the number of operations.
  • Data-structures: Lists as covered in Class XI, Stacks – Push, Pop using a list, Queues – Insert, Delete using a list.

Unit II: Computer Networks

  • Evolution of Networking: ARPANET, Internet, Interspace Different ways of sending data across the network with reference to switching techniques (Circuit and Packet switching).
  • Data Communication terminologies: Concept of Channel, Bandwidth (Hz, kHz, MHz) and Data transfer rate (bps, Kbps, Mbps, Gbps, Tbps).
  • Transmission media: Twisted pair cable, coaxial cable, optical fiber, infrared, radio link, microwave link, and satellite link.
  • Network devices: Modem, RJ45 connector, Ethernet Card, Router, Switch, Gateway, WiFi card.
  • Network Topologies and types: Bus, Star, Tree, PAN, LAN, WAN, MAN.
  • Network Protocol: TCP/IP, File Transfer Protocol (FTP), PPP, HTTP, SMTP, POP3, Remote Login (Telnet) and Internet, Wireless / Mobile Communication protocol such as GSM, GPRS and WLL.
  • Mobile Telecommunication Technologies: 1G, 2G, 3G, 4G, and 5G; Mobile processors;
  • Electronic mail protocols such as SMTP, POP3, Protocols for Chat and Video Conferencing: VoIP, Wireless technologies such as Wi-Fi and WiMax
  • Network Security Concepts:
  • Threats and prevention from Viruses, Worms, Trojan horse, Spams Use of Cookies, Protection using Firewall, https;
  • India IT Act, Cyber Law, Cyber Crimes, IPR issues, hacking.
  • Introduction To Web services: WWW, HyperText Markup Language (HTML), Extensible Markup Language (XML); HyperText Transfer Protocol (HTTP); Domain Names; URL; Website, Web browser, Web Servers; Web Hosting, Web Scripting – Client-side (VB Script, JavaScript, PHP) and Server-side (ASP, JSP, PHP), Web 2.0 (for social networking)
  • E-commerce payment transactions using online banking, mobile banking, payment apps, and services.

 

Unit III: Database Management

            Database Concepts:

              Introduction to database concepts and their need.

             Relational data model:

Concept of domain, relation, tuple, attribute, degree, cardinality, key, primary key, candidate key, alternate key and foreign key

Structured Query Language: General Concepts:

Advantages of using SQL, Data Definition Language and Data Manipulation Language;

Data Types:

               Number / decimal, character / varchar / varchar2, date;

SQL commands:

CREATE TABLE, DROP TABLE, ALTER TABLE, UPDATE ....SET...., INSERT, DELETE; SELECT,

DISTINCT, FROM, WHERE, IN, BETWEEN, LIKE, NULL / IS NULL, ORDER BY,GROUP BY, HAVING;

SQL functions:

              SUM ( ), AVG ( ), COUNT ( ), MAX ( ) and MIN ( );

Joins:

equi-join and natural join

The interface of Python with an SQL database

Connecting SQL with Python

Creating Database connectivity Applications

Performing Insert, Update, Delete queries

Display data by using fetchone(), fetchall(), rowcount

​​​​​​​  Practical

 

S.

No.

Area

Marks

(Total= 30)

1

1          Lab Test:

 

1. Python   program   (60%   logic   +   20% documentation + 20% code quality)   7         

2.  A small Python program sends a SQL query to a database and displays the result.

A stub program can be provided.      

 

 

5

 

7

 

Report file: Minimum 20 Python programs. Out of this  at  least  4  programs  should  send  SQL

commands to a database and retrieve the result

7

2

Project (that uses the concepts that have been learned in Class 11 and 12

8

3

Viva voce

3

 

Suggested Practical Python Programming

 

  • Recursively find the factorial of a natural number.
  • Write a recursive code to find the sum of all elements of a list.
  • Write a recursive code to compute the nth Fibonacci number.
  • Read a text file line by line and display each word separated by a #.
  • Read a text file and display the number of vowels/ consonants/ uppercase/ lowercase characters in the file.
  •  Create a binary file with a name and roll number. Search for a given roll number and display the name, if not –  found display appropriate message.
  • Create a binary file with roll number, name and marks. Input a roll number and update the marks.
  • Remove all the lines that contain the character `a' in a file and write it to another file.
  • Write a random number generator that generates random numbers between 1 and 6 (simulates a dice).
  • Write a Python program to implement a stack and queue using a list of data-structure.
  • Take a sample of ten phishing e-mails (or any text file) and find the most commonly occurring word(s)

 

Database Management

  • Create a student table and insert data. Implement the following SQL commands on the student table:
  • ALTER table to add new attributes / modify data type / drop attribute
  • UPDATE table to modify data
  • ORDER By to display data in ascending/descending order DELETE to remove tuple(s)
  • GROUP BY and find the min, max, sum, count and average
  • A similar exercise may be framed for other cases.
  • Integrate SQL with Python by importing the MySQL module.

 

  1. Project

 

  • The project aims to create something tangible and useful using Python / Python and SQL connectivity. This should be done in groups of two to three students and should be started by students at least 6 months before the submission deadline. The aim here is to find a real-world problem that is worthwhile to solve.

 

  • Students are encouraged to visit local businesses and ask them about the problems that they are facing. For example, if a business is finding it hard to create invoices for filing GST claims, then students can do a project that takes the raw data (list endly application of transactions), groups the transactions by category, accounts for the GST tax rates, and creates invoices in the appropriate format. Students can be extremely creative here. They can use a wide variety of Python libraries to create user fritions such as games, software for their school, software for their disabled fellow students, and mobile applications, Of course, to do some of these projects, some additional learning is required; this should be encouraged. Students should know how to teach themselves.

 

  • The students should be sensitized to avoid plagiarism and violations of copyright issues while working on projects. Teachers should take necessary measures for this.