0% found this document useful (0 votes)
12 views26 pages

UGCF2022 Semester I CS

Pulkits model of eco Cal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views26 pages

UGCF2022 Semester I CS

Pulkits model of eco Cal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Based on Undergraduate Curriculum Framework 2022

UNIVERSITY OF DELHI

UNDERGRADUATE PROGRAMMES OF STUDY

STRUCTURE, COURSES & SYLLABI OF SEMESTER -I

Disclaimer: The syllabi are uploaded are as approved by the Academic Council on …… and Executive Council
on ….

Department of Computer Science


COURSES OFFERED BY DEPARTMENT OF COMPUTER SCIENCE

Category I
(Provide the details of the Discipline Specific Courses offered by your department for
the UG Programme with your discipline as the Single Core Discipline)
[UG Programme for Bachelor in Computer Science (Honours) degree in three years]

DISCIPLINE SPECIFIC CORE COURSE -1 (DSC-1) – : Programming using Python

CREDIT DISTRIBUTION, ELIGIBILITY AND PRE-REQUISITES OF THE


COURSE

Course Credit Credit distribution of the course Eligibility Pre-requisite


title & s Lecture Tutoria Practical/ criteria of the course
Code l Practice (if any)
DSC01 4 3 0 1 Pass in Pass in Class
Programm Class XII XII
ing using
Python

[Eligibility criteria are the minimum requirement of academic level for opting for the course,
such as Class XII pass or Class XII pass with Mathematics as one of the papers in Class XII
and so on.
Pre-requisite of a course is the prior knowledge or skill which are primarily required to be
acquired before joining the course. For example, the pre-requisite for studying ‘Perspectives
on Public Administration’ course (offered in the VIth Semester) is that he/she should have
studied ‘Public Administration in India’ (offered in the 1st Semester).

Learning Objectives
The course is designed to introduce programming concepts using Python to students. The
course aims to develop structured as well as object-oriented programming skills using
Python. The course also aims to achieve competence amongst its students to develop correct
and efficient Python programs to solve real life problems.

[State the purpose for creating and teaching the course. Describe what the course aims to
do from the teacher’s perspective.]

Learning outcomes

On successful completion of the course, students will be able to:

● Develop, document, and debug modular Python programs of reasonable complexity.

● Implement arrays and user defined functions in Python.

● Write programs in Python using dynamic memory allocation, handling external files,
interrupts and exceptions.
● Solve real life problems of reasonable complexity using suitable and efficient
programming constructs in Python.

● Solve real life problems of reasonable complexity using the concepts of object oriented
programming in Python.

[The Learning outcome specify a behaviour, skill, or action that a student can demonstrate
after completion of the course. The objectives have to be specific, measurable by some sort
of assessment and written from the learner's perspective.

The method for writing Learning Outcome is – “By studying this course, students will be
able to (put a measurable verb) + (learning statement)
For example, the Learning outcome of the course – “Basic Personal Taxation” can be as
follows: “By studying this course, students will be able to assess (verb) an individual’s
income tax liability (learning statement)]

SYLLABUS OF DSC-1

UNIT – I (2 Weeks)
Introduction to Programming: Problem solving strategies; Structure of a Python program;
Syntax and semantics; Executing simple programs in Python.

UNIT – II (4 Weeks)
Creating Python Programs: Identifiers and keywords; Literals, numbers, and strings;
Operators; Expressions; Input/output statements; Defining functions; Control structures
(conditional statements, loop control statements, break, continue and pass, exit function),
default arguments.

UNIT – III (5 Weeks)


Built-in data structures: Mutable and immutable objects; Strings, built-in functions for string,
string traversal, string operators and operations; Lists creation, traversal, slicing and splitting
operations, passing list to a function; Tuples, sets, dictionaries and their operations.

UNIT – IV (2 Weeks)
Object Oriented Programming: Introduction to classes, objects and methods; Standard
libraries.

UNIT – V (2 Weeks)
File and exception handling: File handling through libraries; Errors and exception handling.

Practical component (if any) -

1. WAP to find the roots of a quadratic equation


2. WAP to accept a number ‘n’ and
a. Check if ’n’ is prime
b. Generate all prime numbers till ‘n’
c. Generate first ‘n’ prime numbers
This program may be done using functions
3. WAP to create a pyramid of the character ‘*’ and a reverse pyramid
*
***
*****
*******
*********

*********
*******
******
***
*
4. WAP that accepts a character and performs the following:
a. print whether the character is a letter or numeric digit or a special character
b. if the character is a letter, print whether the letter is uppercase or lowercase
c. if the character is a numeric digit, prints its name in text (e.g., if input is 9, output
is NINE)
5. WAP to perform the following operations on a string
a. Find the frequency of a character in a string.
b. Replace a character by another character in a string.
c. Remove the first occurrence of a character from a string.
d. Remove all occurrences of a character from a string.
6. WAP to swap the first n characters of two strings.
7. Write a function that accepts two strings and returns the indices of all the occurrences
of the second string in the first string as a list. If the second string is not present in the
first string then it should return -1.
8. WAP to create a list of the cubes of only the even integers appearing in the input list
(may have elements of other types also) using the following:
a. 'for' loop
b. list comprehension

9. WAP to read a file and


a. Print the total number of characters, words and lines in the file.
b. Calculate the frequency of each character in the file. Use a variable of dictionary
type to maintain the count.
c. Print the words in reverse order.
d. Copy even lines of the file to a file named ‘File1’ and odd lines to another file
named ‘File2’.
10. WAP to define a class Point with coordinates x and y as attributes. Create relevant
methods and print the objects. Also define a method distance to calculate the distance
between any two point objects.
11. Write a function that prints a dictionary where the keys are numbers between 1 and 5
and the values are cubes of the keys.
12. Consider a tuple t1=(1, 2, 5, 7, 9, 2, 4, 6, 8, 10). WAP to perform following operations:
a) Print half the values of the tuple in one line and the other half in the next line.
b) Print another tuple whose values are even numbers in the given tuple.
c) Concatenate a tuple t2=(11,13,15) with t1.
d) Return maximum and minimum value from this tuple

13. WAP to accept a name from a user. Raise and handle appropriate exception(s) if the
text entered by the user contains digits and/or special characters.

Essential/recommended readings
1. Taneja, S., Kumar, N. Python Programming- A modular Approach, 1st edition, Pearson
Education India, 2018.
2. Balaguruswamy E. Introduction to Computing and Problem Solving using Python, 2nd
edition, McGraw Hill Education, 2018.

Suggestive readings
(i) Brown, Martin C. Python: The Complete Reference, 2nd edition, McGraw Hill Education,
2018.

(ii) Guttag, J.V. Introduction to computation and programming using Python, 2nd edition,
MIT Press, 2016.
Note: Examination scheme and mode shall be as prescribed by the Examination Branch,
University of Delhi, from time to time.

DISCIPLINE SPECIFIC CORE COURSE – 2 (DSC-2): Computer System Architecture


Credit distribution, Eligibility and Prerequisites of the Course

Course Credit Credit distribution of the course Eligibility Pre-requisite


title & s Lecture Tutoria Practical/ criteria of the course
Code l Practice (if any)
DSC 02 4 3 0 1 Pass in Pass in Class
Computer Class XII XII
System
Architectu
re

Learning Objectives
This course introduces the students to the fundamental concepts of digital computer
organization, design and architecture. It aims to develop a basic understanding of the
building blocks of the computer system and highlights how these blocks are organized
together to architect a digital computer system.

Learning outcomes

On successful completion of the course, students will be able to:


● Design and Simplify Combinational and sequential circuits using basic building
blocks.

● Represent data in binary form, convert numeric data between different number
systems and perform arithmetic operations in binary.
● Explain instruction cycle, pipelining and interrupts.
● Explain data communication between CPU, memory and I/O devices.
● Simulate the design of a basic computer using a software tool.

SYLLABUS OF DSC- 2

UNIT – I (2 Weeks)
Digital Logic Circuits: Logic Gates, Truth Tables, Boolean Algebra, Digital Circuits,
Combinational Circuits, Introduction to Sequential Circuits, Circuit Simplification using
Karnaugh Map, Don’t Care Conditions, Flip-Flops, Characteristic Tables, Excitation Table.

UNIT – II (3 Weeks)
Digital Components (Fundamental building blocks): Designing of combinational circuits- Half
Adder, Full Adder, Decoders, Encoders, Multiplexers, Registers and Memory (RAM , ROM
and their types) , Arithmetic Microoperations, Binary Adder, Binary Adder-Subtractor.

UNIT – III (2 Weeks)


Data Representation and Basic Computer Arithmetic: Number System, r and (r-1)’s
Complements, data representation and arithmetic operations.

UNIT – IV (3 Weeks)
Basic Computer Organization and Design: Bus organization, Microprogrammed vs Hardwired
Control , Instruction Codes, Instruction Format, Instruction Cycle, Instruction pipelining,
Memory Reference, Register Reference and Input Output Instructions, Program Interrupt and
Interrupt Cycle.

UNIT – V (2 Weeks)
Processors: General register organization, Stack Organization, Addressing Modes, Overview
of Reduced Instruction Set Computer (RISC) , Complex Instruction Set Computer (CISC),
Multicore processor and Graphics Processing Unit (GPU)

UNIT – VI (3 Weeks)
Memory and Input-Output Organization: Memory hierarchy (main, cache and auxiliary
memory), Input-Output Interface, Modes of Transfer: Programmed I/O, Interrupt initiated I/O,
Direct memory access.

Practical component (if any) -


(Use Simulator – CPU Sim 3.6.9 or any higher version for the implementation)
1. Create a machine based on the following architecture:
Registers
IR DR AC AR PC I E
16 bits 16 16 12 12 1 bit 1 bit
bits bits bits bits

Instruction format
emory 4096 15 12 11 0
words

6 bits per word Opcod Address


e

Basic Computer Instructions

Memory Reference Register Reference

Symbol H Symbol H
ex ex

AND 0xxx CLA 7800

ADD 1xxx CLE 7400

LDA 2xxx CMA 7200


Direct
STA 3xxx Address CME 7100
ing
BUN 4xxx CIR 7080

BSA 5xxx CIL 7040

ISZ 6xxx INC 7020

AND_I 8xxx SPA 7010

ADD_I 9xxx SNA 7008

LDA_I Axxx Indirect SZA 7004


Address
STA_I Bxxx ing SZE 7002

BUN_I Cxxx HLT 7001

BSA_I Dxxx INP F800


ISZ_I Exxx OUT F400

Refer to Chapter-5 of reference 1 for description of instructions.


Design the register set, memory and the instruction set. Use this machine
for the assignments of this section.
2. Create a Fetch routine of the instruction cycle.
3. Write an assembly program to simulate ADD operation on two user-entered
numbers.
4. Write an assembly program to simulate SUBTRACT operation
on two user-entered numbers.
5. Write an assembly program to simulate the following logical
operations on two user- entered numbers.

i. AND
ii. OR
iii. NOT
iv. XOR
v. NOR
vi. NAND

6. Write an assembly program for simulating following memory-reference


instructions.

i. ADD
ii. LDA
iii. STA
iv. BUN
v. ISZ

7. Write an assembly language program to simulate the machine for


following register reference instructions and determine the contents of
AC, E, PC, AR and IR registers in decimal after the execution:

i. CLA
ii. CMA
iii. CME
iv. HLT
8. Write an assembly language program to simulate the machine for
following register reference instructions and determine the contents of
AC, E, PC, AR and IR registers in decimal after the execution:
i. INC
ii. SPA
iii. SNA
iv. SZE
9. Write an assembly language program to simulate the machine for
following register reference instructions and determine the contents of
AC, E, PC, AR and IR registers in decimal after the execution:

i. CIR
ii. CIL

10. Write an assembly program that reads in integers and adds them
together; until a negative non-zero number is read in. Then it outputs
the sum (not including the last number).
11. Write an assembly program that reads in integers and adds them
together; until zero is read in. Then it outputs the sum.

Essential/recommended readings
1. David A. Patterson and John L. Hennessy. “Computer Organization and Design : The
Hardware/Software interface”, 5th edition, Elsevier, 2012.
2. Mano, M. Computer System Architecture, 3rd edition, Pearson Education, 1993.

Suggestive readings (if any)


(i) Mano, M. Digital Design, Pearson Education Asia, 1995.

(ii) Null, L., & Lobur, J. The Essentials of Computer Organization and Architecture,
5th edition, (Reprint) Jones and Bartlett Learning, 2018.
(iii) Stallings, W. Computer Organization and Architecture Designing for Performance
8th edition, Prentice Hall of India, 2010.

DISCIPLINE SPECIFIC CORE COURSE– 3 (DSC-3): Mathematics for computing


Credit distribution, Eligibility and Pre-requisites of the Course

Course Credit Credit distribution of the course Eligibility Pre-requisite


title & s Lecture Tutoria Practical/ criteria of the course (if
Code l Practice any)
DSC 03 4 3 0 1 Pass in Pass in Class
Mathemati Class XII XII
cs for
computing
Learning Objectives

This course introduces the students to the fundamental concepts and topics of linear algebra
and vector calculus, whose knowledge is important in other computer science courses. The
course aims to build the foundation for some of the core courses in later semesters.

Learning outcomes

After successful completion of this course, the student will be able to:

● Perform operations on matrices and sparse matrices


● Compute the determinant, rank and eigenvalues of a matrix
● Perform diagonalization
● Perform operations on vectors, the dot product and cross product
● Represent vectors geometrically and calculate the gradient, divergence, curl
● Apply linear algebra and vector calculus to solve problems in sub-disciplines of
computer science.

SYLLABUS OF DSC-3

UNIT – I (2 Weeks)
Introduction to Matrix Algebra: Echelon form of a Matrix, Rank of a Matrix, Determinant
and Inverse of a matrix, Solution of System of Homogeneous & Non-Homogeneous
Equations: Gauss elimination and Gauss Jordan Method.

UNIT – II (3 Weeks)
Vector Space and Linear Transformation: Vector Space, Sub-spaces, Linear Combinations,
Linear Span, Convex Sets, Linear Independence/ Dependence, Basis & Dimension.

UNIT – III (3 Weeks)


Linear transformation on finite dimensional vector spaces, Inner Product Space, Schwarz
Inequality, Orthonormal Basis, Gram-Schmidt Orthogonalization Process.

UNIT – IV (3 Weeks)
Eigenvalue and Eigenvector: Characteristic Polynomial, Cayley Hamilton Theorem, Eigen
Value and Eigen Vector of a matrix, Eigenspaces, Diagonalization, Positive Definite
Matrices, Applications to Markov Matrices

UNIT –V (4 Weeks)
Vector Calculus: Vector Algebra, Laws of Vector Algebra, Dot Product, Cross Product, Vector
and Scalar Fields, Ordinary Derivative of Vectors, Space Curves, Partial Derivatives, Del
Operator, Gradient of a Scalar Field, Directional Derivative, Gradient of Matrices, Divergence
of a Vector Field, Laplacian Operator, Curl of a Vector Field.

Practical component (if any) -

1. Create and transform vectors and matrices (the transpose vector (matrix) conjugate transpose
of a vector (matrix))
2. Generate the matrix into echelon form and find its rank.

3. Find cofactors, determinant, adjoint and inverse of a matrix.

4. Solve a system of Homogeneous and non-homogeneous equations using Gauss elimination


method.

1. Solve a system of Homogeneous equations using the Gauss Jordan method.

6. Generate basis of column space, null space, row space and left null space of a matrix space.

7.Check the linear dependence of vectors. Generate a linear combination of given vectors of
Rn/ matrices of the same size and find the transition matrix of given matrix space.

8.Find the orthonormal basis of a given vector space using the Gram-Schmidt
orthogonalization process.

9.Check the diagonalizable property of matrices and find the corresponding eigenvalue and

verify the Cayley- Hamilton theorem.

10.Application of Linear algebra: Coding and decoding of messages using nonsingular


matrices.

eg code “Linear Algebra is fun” and then decode it.

11.Compute Gradient of a scalar field.

12.Compute Divergence of a vector field.

13.Compute Curl of a vector field.

Essential/recommended readings

1. Strang Gilbert. Introduction to Linear Algebra, 5th Edition, Wellesley-Cambridge


Press, 2021.
2. Kreyszig Erwin. Advanced Engineering Mathematics, 10th Edition, Wiley, 2015.
3. Strang Gilbert. Linear Algebra and Learning from Data, 1st Edition,
Wellesley-CambridgePress, 2019.
4. Jain R. K., Iyengar S.R. K. Advanced Engineering Mathematics, 5th Edition, Narosa,
2016.

Suggestive readings

(i) Deisenroth, Marc Peter, Faisal A. Aldo and Ong ChengSoon. Mathematics for Machine
Learning, 1st Edition, Cambridge University Press, 2020.
(ii) Lipschutz Seymour and Lipson Marc. Schaum's Outline of Linear Algebra, 6th Edition,
McGraw Hill, 2017.
Category II
(___________ Courses for Undergraduate Programme of study with Computer Science
discipline as one of the three Core Disciplines)

DISCIPLINE SPECIFIC CORE COURSE (DSC-1): Programming fundamentals using C++

CREDIT DISTRIBUTION, ELIGIBILITY AND PRE-REQUISITES OF THE


COURSE

Course Credit Credit distribution of the course Eligibility Pre-requisite


title & s Lecture Tutoria Practical/ criteria of the course
Code l Practice (if any)
DSC01: 4 3 0 1 Pass in Pass in Class
Programm Class XII XII
ing
fundament
als using
C++

Learning Objectives

This course is designed to introduce programming concepts using C++ to students. The
course aims to develop structured as well as object-oriented programming skills using C++
programming language. The course also aims to achieve competence amongst its students to
develop correct and efficient C++ programs to solve problems spanning multiple domains.

Learning outcomes

On successful completion of the course, students will be able to:

● Write simple programs using built-in data types of C++.


● Implement arrays and user defined functions in C++.
● Write programs using dynamic memory allocation, handling external files, interrupts
and exceptions.
● Solve problems spanning multiple domains using suitable programming constructs in
C++.
● Solve problems spanning multiple domains using the concepts of object oriented
programming in C++.

SYLLABUS OF DSC-1

UNIT – I (1 Week)
Introduction to C++: Need and characteristics of Object-Oriented Programming, Structure of
a C++ Program (main () function, header files, output, input, comments), compile and execute
a simple program

UNIT – II (4 Weeks)
Programming Fundamentals: Data types, Variables, Operators, Expressions, Arrays,
Keywords, Decision making constructs, Iteration, Type Casting, Input-output statements,
Functions, Command Line Arguments/Parameters
UNIT – III ( 3 Weeks)
Object Oriented Programming: Concepts of Abstraction, Encapsulation. Creating Classes and
objects, Modifiers and Access Control, Constructors, Destructors, Implementation of
Inheritance and Polymorphism, Template functions and classes

UNIT – IV (3 Weeks)
Pointers and References: Static and dynamic memory allocation, Pointer and Reference
Variables, Implementing Runtime polymorphism using pointers and references

UNIT – V(4 Weeks)


Exception and File Handling: Using try, catch, throw, throws and finally; Nested try, File I/O
Basics, File Operations

Practical component (if any) -

1. Write a program to compute the sum of the first n terms of the following series:
𝑆 = 1 − 2𝑛 + 3𝑛 − 4𝑛 +. ..
The number of terms n is to be taken from the user through the command line. If the
command line argument is not found then prompt the user to enter the value of n.

2. Write a program to display the following pattern:

A
BA
CBA
DCBA
The number of rows n, is to be taken from the user.

3. Write a program to compute the factors of a given number using the default argument.
4. Write a menu driven program to perform the following operations on an array:
a. Find the minimum, maximum and average of the array elements
b. Search an element in the array using linear search
c. Search an element in the array using binary search (both iterative and recursive
versions)
d. Display the address of every element of the array
5. Write a menu driven program to perform the following operations on a string:
a. Calculate length of the string (use pointers)
b. Check whether the first character of every word in the string is in uppercase or
not
c. Reverse the string
d. Display the address of every character in the string
6. Create a class Triangle. Include overloaded functions for calculating the area of a
triangle.
7. Create a template class TwoDim which contains x and y coordinates. Define default
constructor, parameterized constructor and void print() function to print the
coordinates. Now reuse this class in ThreeDim adding a new dimension as z. Define
the constructors and void print() in the subclass. Implement main() to show runtime
polymorphism.
8. Copy the contents of one text file to another file and display the number of characters
copied.

Essential/recommended readings
1. Stephen Prata, C++ Primer Plus, 6th Edition, Pearson India, 2015.

2. E Balaguruswamy, Object Oriented Programming with C++, 8th edition, McGraw-Hill


Education, 2020.
3. D.S. Malik, C++ Programming: From Problem Analysis to Program Design, 6th
edition, Cengage Learning, 2013.

Suggestive readings

(i) Herbert Schildt, C++: The Complete Reference, 4th Edition, McGraw Hill, 2003.

(ii) A. B. Forouzan, Richard F. Gilberg, Computer Science: A Structured Approach using

C++, 2nd edition, Cengage Learning, 2010.

Note: Examination scheme and mode shall be as prescribed by the Examination Branch,
University of Delhi, from time to time.

Category III
____________Courses for Undergraduate Programme of study with Computer Science
discipline as one of the two Core Disciplines
(For e.g. courses for B.A. Programmes with_______ (discipline’s name) as non-Major or
Minor discipline)

DISCIPLINE SPECIFIC CORE COURSE (DSC-1): Introduction to Programming using C++

CREDIT DISTRIBUTION, ELIGIBILITY AND PRE-REQUISITES OF THE


COURSE

Credit distribution of the course


Course title Credit Lecture Tutoria Practical/ Eligibility Pre-requisite
& Code s l Practice criteria of the course
(if any)
DSC01: 4 3 0 1 Pass in Pass in Class
Introductio Class XII XII
n to
Programmi
ng using
C++

Learning Objectives
This course is designed to introduce programming concepts using C++ to students. The
course aims to develop structured as well as object-oriented programming skills using C++
programming language. The course also aims to achieve competence amongst its students to
develop correct and efficient C++ programs to solve problems spanning multiple disciplines.

Learning outcomes

On successful completion of the course, students will be able to:

● Write simple programs using built-in data types of C++.


● Implement arrays and user defined functions in C++.
● Solve problems spanning multiple disciplines using suitable programming constructs
in C++.
● Solve problems spanning multiple disciplines using the concepts of object oriented
programming in C++.

SYLLABUS OF DSC-1

UNIT – I (1 Week)
Introduction to C++: Need and characteristics of Object-Oriented Programming, Structure of
a C++ Program (main () function, header files, output, input, comments), compile and execute
a simple program

UNIT – II (3 Weeks)
Data types and Expressions: Keywords, built in data types, variables and constants, naming
convention, Input-Output statements, operators and their precedence, expressions, typecasting,
library functions

UNIT – III (4 Weeks)


Control Constructs in C++: Decision making using selection constructs, iteration using looping
constructs.

UNIT – IV (2 Weeks)
Arrays, Pointers and User defined functions: Defining and initializing single and multi-
dimensional arrays, user defined functions, passing arguments to functions, returning values
from functions, inline functions, default arguments, introduction to pointers
UNIT – V (5 Weeks)
Classes and Objects: Need and implementation of abstraction, encapsulation, inheritance and
polymorphism, creating classes, objects as function arguments, modifiers and access control,
constructors and destructors

Practical component (if any) -


1. Write a program to find the largest of n natural numbers.
2. Write a program to find whether a given number is prime or not.
3. Write a program that takes a positive integer n and the produce n lines of output as
shown:
*
**
***
****
(for n = 4)
4. Write a menu driven program for following:
a. to check whether a given number is odd or even.
b. display a fibonacci series
c. compute factorial of a number
5. Write a program to accept a number, reverse it and print the sum of its digits.
6. Write a program using functions to print the series and its sum:
1 + 1/2! + 1/3! + … + 1/n!
7. Write a program to perform the following operations on an input string
a. Print length of the string
b. Find frequency of a character in the string
c. Print whether characters are in uppercase or lowercase
d. to check whether a given string is palindrome or not.

8. Write a program that will prompt the user for a list of 5 prices. Compute the average
of the prices and find out all the prices that are higher than the calculated average.
9. Design a class named Vehicle, having registration number and year as its private
members. Define a suitable constructor and a method to print the details of a vehicle.
Write a C++ program to test the above class.
10. Inherit a class Car from the Vehicle class defined above. Add model to the Car class.
Define a suitable constructor and a method to print the details of a car. Write a C++
program to test inheritance of this class.
Essential/recommended readings

1. E. Balaguruswamy, Object Oriented Programming with C++,7th edition, McGraw-Hill


Education, 2017.

2. Robert Lafore, Object Oriented Programming in C++, 4th edition, SAMS Publishing,
2008.

Suggestive readings

(i) D.S. Malik, C++ Programming: From Problem Analysis to Program Design, 6th
edition,
Cengage Learning, 2013.

(ii) Herbert Schildt, C++: The Complete Reference, 4th Edition, McGraw Hill, 2003.

Note: Examination scheme and mode shall be as prescribed by the Examination Branch,
University of Delhi, from time to time.

DISCIPLINE SPECIFIC CORE COURSE (A1): Programming Fundamentals Using Python

CREDIT DISTRIBUTION, ELIGIBILITY AND PRE-REQUISITES OF THE


COURSE

Course Credits Credit distribution of the course Eligibility Pre-requisite


title & Lecture Tutorial Practical/ criteria of the course
Code Practice (if any)
A1: 4 3 0 1 Pass in Pass in Class
Programm Class XII XII
ing
Fundamen
tals Using
Python

Learning Objectives
This course is designed to introduce programming concepts using Python to students. The
course aims to develop structured as well as object-oriented programming skills using
Python. The course also aims to achieve competence amongst its students to develop correct
and efficient Python programs to solve problems spanning multiple disciplines.

Learning outcomes

On successful completion of this course, a student will be able to:

● Write simple programs using built-in data types of Python.


● Implement arrays and user defined functions in Python.
● Solve problems spanning multiple disciplines using suitable programming constructs
in Python.
● Solve problems spanning multiple disciplines using the concepts of object oriented
programming in Python.

SYLLABUS OF DSC-1

UNIT – I (2 Weeks)
Introduction to Python Programming: Problem solving strategies; Structure of a Python
program; Syntax and semantics; Python interpreter/shell, indentation; Executing simple
programs in Python.

UNIT – II (4 Weeks)
Creating Python Programs: Identifiers and keywords; literals, numbers, and strings;
Operators and expressions; Input and output statements; control structures (conditional
statements, loop control statements, break, continue and pass), Errors and exception handling.

UNIT – III (3 Weeks)


User Defined Functions: Defining functions, passing arguments and returning values, default
arguments

UNIT – IV (6 Weeks)
Built-in data structures: Strings, Lists, Tuples, Sets, Dictionaries; their built-in functions,
operators and operations.

Practical component (if any)

1. WAP to calculate total marks, percentage and grade of a student. Marks obtained in each
of three subjects are to be input by the user. Assign grades according to the following
criteria:

Grade A : if Percentage >=80


Grade B : if Percentage >=60 and Percentage <80
Grade C : if Percentage >=40 and Percentage <60
Grade D : if Percentage <=40

2. WAP to print factors of a given number.

3. WAP to add N natural numbers and display their sum.

4. WAP to print the following conversion table (use looping constructs):

Height(in Feet) Height(in inches)

5.0ft 60 inches

5.1ft 61.2inches
.

5.8ft 69.6inches

5.9ft 70.8inches

6.0ft 72inches

5. WAP that takes a positive integer n and the produce n lines of output as shown:

**

***

****

(for n =4)

6. Write a menu driven program using user defined functions to print the area of rectangle,
square, circle and triangle by accepting suitable input from user.

7. Write a function that calculates factorial of a number n.

8. WAP to print the series and its sum: (use functions)

1/1! + 1/2! + 1/3! …….1/n!

9. WAP to perform the following operations on an input string

a. Print length of the string

b. Find frequency of a character in the string

c. Print whether characters are in uppercase or lowercase

10. WAP to create two lists: one of even numbers and another of odd numbers. The program
should demonstrate the various operations and methods on lists.

11. WAP to create a dictionary where keys are numbers between 1 and 5 and the values are
the cubes of the keys.

12. WAP to create a tuple t1 = (1,2,5,7,2,4). The program should perform the following:

a. Print tuple in two lines, line 1 containing the first half of tuple and second line
having the second half.
b. Concatenate tuple t2 = (10,11) with t1.

Essential/recommended readings

Kamthane, A. N., & Kamthane, A.A. Programming and Problem Solving with Python,
McGraw Hill Education, 2017.

2. Balaguruswamy E. “Introduction to Computing and Problem Solving using Python”,2nd


edition, McGraw Hill Education, 2018.

3. Taneja, S., Kumar, N. Python Programming- A modular Approach, Pearson Education


India, 2018.

Suggestive readings

(i) Guttag, J. V. Introduction to computation and programming using Python, MIT Press,
2018.

(ii) Downey, A. B. Think Python–How to think like a Computer Scientist 2nd edition.
O’Reilly 2015.

Note: Examination scheme and mode shall be as prescribed by the Examination


Branch, University of Delhi, from time to time.

COMMON POOL OF GENERIC ELECTIVES (GE) COURSES

(For all the Generic Elective courses offered by your Department, please put it in the
format provided below)

GENERIC ELECTIVES (GE-1a): Programming using C++


Credit distribution, Eligibility and Pre-requisites of the Course

Course Credits Credit distribution of the course Eligibilit Pre- Department


title & Lecture Tutoria Practical/ y criteria requisite of offering the
Code l Practice the course course
GE1a 4 3 0 1 Pass in Pass in
Progra Class XII Class XII
mming
using
C++

Learning Objectives
This course is designed to introduce programming concepts using C++ to students. The
course aims to develop structured as well as object-oriented programming skills using C++
programming language. The course also aims to achieve competence amongst its students to
develop correct and efficient C++ programs to solve problems in their respective domains.
[State the purpose for creating and teaching the course. Describe what the course aims to
do from the teacher’s perspective.]

Learning outcomes

On successful completion of the course, students will be able to:

● Write simple programs using built-in data types of C++.


● Implement arrays and user defined functions in C++.
● Solve problems in the respective domain using suitable programming constructs in
C++.
● Solve problems in the respective domain using the concepts of object oriented
programming in C++.

[The Learning Objectives specify a behaviour, skill, or action that a student can demonstrate
after completion of the course. The objectives have to be specific, measurable by some sort
of assessment and written from the learner's perspective.

The method for writing Learning Outcome is – “By studying this course, students will be
able to (put a measurable verb) + (learning statement)]

SYLLABUS OF GE-1

UNIT – I (3 Weeks)
Introduction to C++: Overview of Procedural and Object-Oriented Programming, Using
main() function, Header Files, Compiling and Executing Simple Programs in C++.

UNIT – II (5 Weeks)
Programming Fundamentals: Data types, Variables, Operators, Expressions, Arrays,
Keywords, Decision making constructs, Iteration, Type Casting, Input-output statements,
Functions

UNIT – III (7 Weeks)


Object Oriented Programming: Concepts of Abstraction, Encapsulation. Creating Classes and
objects, Modifiers and Access Control, Constructors, Destructors, Implementation of
Inheritance and Polymorphism, Template functions and classes

Practical component (if any) -

1. Write a program to compute the sum of the first n terms of the following series:
S=1-2+3-4+…n

The number of terms n is to be taken from the user through the command line. If the
command line argument is not found then prompt the user to enter the value of n.
2. Write a program to display the following pattern:

22

333

4444

55555

The number of rows n, is to be taken from the user.

3. Write a program to compute the factors of a given number.


4. Write a menu driven program to perform the following operations on an array:
a. Find the minimum, maximum and average of the array elements
b. Search an element in the array using linear and binary search
5. Write a menu driven program to perform the following operations on a string:
a. Calculate length of the string
b. Check whether the first character of every word in the string is in uppercase or
not
c. Reverse the string
6. Create a class Triangle. Include overloaded functions for calculating the area of a
triangle.
7. Create a template class TwoDim which contains x and y coordinates. Define default
constructor, parameterized constructor and void print() function to print the co-
ordinates. Now reuse this class in ThreeDim adding a new dimension as z. Define the
constructors and void print() in the subclass. Implement main() to show runtime
polymorphism.

Essential/recommended readings
1. Stephen Prata, C++ Primer Plus, 6th Edition, Pearson India, 2015.
2. E Balaguruswamy, Object Oriented Programming with C++, 8th edition, McGraw-Hill
Education, 2020.
3. D.S. Malik, C++ Programming: From Problem Analysis to Program Design, 6th
edition, Cengage Learning, 2013.

Suggestive readings
(i) Herbert Schildt, C++: The Complete Reference, 4th edition, McGraw Hill, 2003.
(ii) A. B. Forouzan, Richard F. Gilberg, Computer Science: A Structured Approach using
C++, 2nd edition, Cengage Learning, 2010.
GENERIC ELECTIVES (GE-1b: Programming with Python)
Credit distribution, Eligibility and Pre-requisites of the Course

Course Credit Credit distribution of the course Eligibility Pre-requisite


title & s Lecture Tutoria Practical/ criteria of the course
Code l Practice
GE1b 4 3 0 1 Pass in
Programm Class XII
ing with
Python

Learning Objectives

The course is designed to introduce programming concepts using Python to students. The
course aims to develop structured as well as object-oriented programming skills using
Python. The course also aims to achieve competence amongst its students to develop correct
and efficient Python programs to solve problems in their respective domains.

Learning outcomes

On successful completion of the course, students will be able to:

● Write simple programs using built-in data structures in Python.

● Implement arrays and user defined functions in Python.

● Solve problems in the respective domain using suitable programming constructs in


Python.

● Solve problems in the respective domain using the concepts of object oriented
programming in Python.

SYLLABUS OF GE-2

UNIT – I (2 Weeks)
Introduction to Programming: Problem solving strategies; Structure of a Python program;
Syntax and semantics; Executing simple programs in Python.

UNIT – II (5 Weeks)
Creating Python Programs: Identifiers and keywords; Literals, numbers, and strings;
Operators; Expressions; Input/output statements; Defining functions; Control structures
(conditional statements, loop control statements, break, continue and pass, exit function),
default arguments.

UNIT – III (5 Weeks)


Built-in data structures: Mutable and immutable objects; Strings, built-in functions for string,
string traversal, string operators and operations; Lists creation, traversal, slicing and splitting
operations, passing list to a function; Tuples, sets, dictionaries and their operations.

UNIT – IV (3 Weeks)
File and exception handling: File handling through libraries; Errors and exception handling.

Practical component (if any)


1. WAP to find the roots of a quadratic equation.
2. WAP to accept a number ‘n’ and
a. Check if ’n’ is prime
b. Generate all prime numbers till ‘n’
c. Generate first ‘n’ prime numbers
d. This program may be done using functions.
3. WAP to create a pyramid of the character ‘*’ and a reverse pyramid

*
***
*****
*******
*********

*********
*******
******
***
*

4. WAP that accepts a character and performs the following:


a. print whether the character is a letter or numeric digit or a special character
b. if the character is a letter, print whether the letter is uppercase or lowercase
c. if the character is a numeric digit, prints its name in text (e.g., if input is 9,
output is NINE)
5. WAP to perform the following operations on a string
a. Find the frequency of a character in a string.
b. Replace a character by another character in a string.
c. Remove the first occurrence of a character from a string.
d. Remove all occurrences of a character from a string.
6. WAP to swap the first n characters of two strings.
7. Write a function that accepts two strings and returns the indices of all the occurrences
of the second string in the first string as a list. If the second string is not present in the
first string then it should return -1.
8. WAP to create a list of the cubes of only the even integers appearing in the input list
(may have elements of other types also) using the following:
a. 'for' loop
b. list comprehension
9. WAP to read a file and
a. Print the total number of characters, words and lines in the file.
b. Calculate the frequency of each character in the file. Use a variable of
dictionary type to maintain the count.
c. Print the words in reverse order.
d. Copy even lines of the file to a file named ‘File1’ and odd lines to another file
named ‘File2’.
10. Write a function that prints a dictionary where the keys are numbers between 1 and 5
and the values are cubes of the keys.
11. Consider a tuple t1=(1, 2, 5, 7, 9, 2, 4, 6, 8, 10). WAP to perform following
operations:
a. Print half the values of the tuple in one line and the other half in the next line.
b. Print another tuple whose values are even numbers in the given tuple.
c. Concatenate a tuple t2=(11,13,15) with t1.
d. Return maximum and minimum value from this tuple
12. WAP to accept a name from a user. Raise and handle appropriate exception(s) if the
text entered by the user contains digits and/or special characters.

Essential/recommended readings
1. Taneja, S., Kumar, N., Python Programming- A modular Approach, Pearson Education
India, 2018.
2. Balaguruswamy E., Introduction to Computing and Problem Solving using Python, 2nd
edition, McGraw Hill Education, 2018.

Suggestive readings -

(i) Brown, Martin C., Python: The Complete Reference, 2nd edition, McGraw Hill

Education, 2018.

(ii) Guttag, J.V. Introduction to computation and programming using Python, 2nd

edition, MIT Press, 2016.

You might also like