(Optional for the academic year 2018-19 and mandatory for the academic year 2019-20 onwards)
1. Prerequisites : No major prerequisites are required for this course other than basic Mathematical skills. However, it will be helpful if the student has a basic knowledge of Computer Applications.
2. Learning Outcomes :
- Develop basic computational thinking. Learn how to reason with variables, state transitions, conditionals, and iteration.
- Understand the notion of data types, and higher order data structures such as lists, tuples, and dictionaries.
- Appreciate the notion of an algorithm, and understand its structure, including how algorithms handle corner cases.
- Develop a basic understanding of computer systems – architecture, OS, mobile and cloud computing.
- Learn basic SQL programming.
- Learn all about cyber safety.
3. Distribution of Marks
Unit No. Unit Name Marks 1. Programming and Computational Thinking - 1 35 2. Computer Systems and Organisation 10 3. Data Management - 1 15 4. Society, Law and Ethics - 1 10 5. Practical 30 Total 100
4.1 Unit 1: Programming and Computational Thinking (PCT-1) (80 Theory + 70 Practical)
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, and divisibility, Notion of iterative computation and control flow : for, while, flowcharts, decision trees and pseudo code; write a lot of programs: interest calculation, primarily testing, and factorials.
Idea of debugging: errors and exceptions; debugging: pdb, break points.
Sequence datatype: Lists, tuples and dictionary: finding the maximum, minimum, mean; linear search on list/tuple of numbers, and counting the frequency of elements in a list using a dictionary. Introduce the notion of accessing elements in a collection using numbers and names.
Sorting algorithm: bubble and insertion sort; count the number of operations while sorting.
Strings: Strings in Python : compare, concatenate, substring; notion of states and transitions using state transition diagrams.
4.2. Unit 2: Computer Systems and Organisation (CSO) (20 Theory + 6 Practical)
Basic computer organisation: description of a computer system and mobile system, CPU, memory, hard disk, I/O, battery, power.
Types of software:Types of Software – System Software, Utility Software and Application Software
Language of Bits: bit, byte, MB, GB, TB, and PB.
Boolean logic: OR, AND, NAND, NOR, XOR, NOT, truth tables, De Morgan’s laws Number representation: numbers in base 2, 8, 16, unsigned integers, binary addition
Strings: ASCII, UTF8, UTF32, ISCII (Indian script code)
Execution of a program: basic flow of compilation – program binary execution, Running a program: Notion of an operating system, idea of loading, Interpreters (process one line at a time), difference between a compiler and an interpreter, how an operating system runs a program, operating system as a resource manager.
Cloud Computing: Concept of cloud computers, cloud storage (public/private), and brief introduction to parallel computing.
4.3. Unit 3: Data Management (DM-1) (30 Theory+ 24 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, foreign 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 databases: Mongo DB.
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
Appropriate usage of social networks: spread of rumours, and common social networking sites (Twitter, LinkedIn, and Facebook) and specific usage rules.
Safely accessing web sites: malware, adware, viruses, Trojans
Safely communicating data: secure connections, eavesdropping, phishing and identity verification.
5. Practical
S.No. | Unit Name | Marks (Total=30) | |
1. | Lab Test(12 marks) | ||
Python program (60% logic + 20% documentation + 20% code quality) | 8 | ||
SQL program (at least 4 queries) | 4 | ||
2. | Report File + viva (10 marks) | ||
Report file: Minimum 20 Python programs and 8 SQL commands | 7 | ||
Viva voce (based on the report file) | 3 | ||
3. | Project (that uses most of the concepts that have been learnt) (See CS-XII for the rules regarding the projects). | 8 |
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.
- Find the largest and smallest numbers in a list.
- Find the third largest number in a list.
- Test for primarily.
- Find whether a string is a palindrome or not.
- Given two integers x and n, compute x n. Compute the greatest common divisor and the least common multiple of two integers.
- Test if a number is equal to the sum of the cubes of its digits. Find the smallest and largest such numbers.
5.2. Data Management: SQL Commands At least the following SQL commands 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 marks 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).
Source : CBSE