(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, concat, 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.
|S.No.||Unit Name||Marks (Total=30)||1.||Lab Test(12 marks)|
|Python program (60% logic + 20% documentation + 20% code
|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).
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.
- 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
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.