UGCF2022 Semester I CS
UGCF2022 Semester I CS
UNIVERSITY OF DELHI
Disclaimer: The syllabi are uploaded are as approved by the Academic Council on …… and Executive Council
on ….
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]
[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
● 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 – 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.
*********
*******
******
***
*
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
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.
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
● 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 – 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.
Instruction format
emory 4096 15 12 11 0
words
Symbol H Symbol H
ex ex
i. AND
ii. OR
iii. NOT
iv. XOR
v. NOR
vi. NAND
i. ADD
ii. LDA
iii. STA
iv. BUN
v. ISZ
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.
(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.
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:
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 – 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.
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.
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
Essential/recommended readings
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)
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
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
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.
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.
Suggestive readings
(i) 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.
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)
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
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 – 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
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
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.
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
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 – IV (6 Weeks)
Built-in data structures: Strings, Lists, Tuples, Sets, Dictionaries; their built-in functions,
operators and operations.
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:
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.
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.
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.
(For all the Generic Elective courses offered by your Department, please put it in the
format provided below)
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
[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
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
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
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
● 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 – IV (3 Weeks)
File and exception handling: File handling through libraries; Errors and exception handling.
*
***
*****
*******
*********
*********
*******
******
***
*
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