Comp SC DSC Sem-2
Comp SC DSC Sem-2
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:
1
SYLLABUS OF DSC-4
UNIT – I (1 Week)
Introduction to C++: Overview of Procedural and Object-Oriented Programming, Using
main() function, Header Files, Compiling and Executing Simple Programs in C++
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 – IV (3 Weeks)
Pointers and References: Static and dynamic memory allocation, Pointer and Reference
Variables, Implementing Runtime polymorphism using pointers and references
UNIT – V (2 Weeks)
Exception and File Handling: Using try, catch, throw, throws and finally; Nested try,
creating user defined exceptions, File I/O Basics, File Operations
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) Schildt, H. C++: The Complete Reference, 4th edition, McGraw Hill, 2003
3
(ii) Forouzan, A. B., Gilberg, R. F. Computer Science: A Structured Approach using
C++, 2nd edition, Cengage Learning, 2010
Learning Objectives
This course is designed as a foundational course to make students learn about the
mathematical constructs that are used in Computer Science such as Boolean algebra, sets,
relations, functions, principles of counting, and recurrences. In this course, the knowledge
of mathematical notation, ideas and concepts learnt at the pre-college levels is extended to
orient the students towards mathematical thinking required in Computer Science.
Learning outcomes
On successful completion of the course, students will be able to:
SYLLABUS OF DSC- 5
UNIT – I (2 Weeks)
Sets, Functions, Sequences and Summations, Relations: Sets: Set Operations, Computer
Representation of Sets, Countable and Uncountable Set, Principle of Inclusion and Exclusion,
Multisets; Functions: One-to-one and Onto Functions, Inverse Functions and Compositions of
Functions, Graphs of Functions Sequences and Summations: Sequences, Special Integer
4
Sequences, Summations; Relations: Properties of Binary Relations, Equivalence relations and
Partitions, Partial Ordering Relations and Lattices.
UNIT – II (3 Weeks)
Logic and Proofs: Propositional Logic, Propositional Equivalences, Use of first-order logic
to express natural language predicates, Quantifiers, Nested Quantifiers, Rules of Inference,
Introduction to Proofs, Proof Methods and Strategies, Mathematical Induction.
UNIT – IV (2 Weeks)
Combinatorics/Counting: The Pigeonhole Principle, Permutations and Combinations,
Binomial Coefficients, Generalized Permutations and Combinations, Generating
Permutations and Combinations.
UNIT – V (3 Weeks)
Graphs and Trees: Graphs: Basic Terminology, Multigraphs and Weighted Graphs, Paths
and Circuits, Eulerian Paths and Circuits, Hamiltonian paths and Circuits, Shortest Paths,
Spanning Trees, Graph Isomorphism, Planar Graphs; Trees: Trees, Rooted Trees, Path
Lengths in Rooted Trees.
UNIT – VI (2 Weeks)
Recurrence: Recurrence Relations, Generating Functions, Linear Recurrence Relations with
Constant Coefficients and their solution.
5
without repetition.
4. For any number n, write a program to list all the solutions of the equation x1 + x2 +
x3 + ...+ xn = C, where C is a constant (C<=10) and x1, x2,x3,...,xn are nonnegative
integers, using brute force strategy.
5. Write a Program to evaluate a polynomial function. (For example store f(x) = 4n2 +
2n + 9 in an array and for a given value of n, say n = 5, compute the value of f(n)).
6. Write a Program to check if a given graph is a complete graph. Represent the graph
using the Adjacency Matrix representation.
7. Write a Program to check if a given graph is a complete graph. Represent the graph
using the Adjacency List representation.
8. Write a Program to accept a directed graph G and compute the in-degree and out-
degree of each vertex.
Essential/recommended readings
Suggestive readings
(i) Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein C. Introduction to Algorithms,
4th edition, Prentice Hall of India. 2022.
(ii) Trembley, J. P., Manohar, R. Discrete Mathematical Structures with Application to
Computer Science, Tata McGraw Hill, 1997.
(iii) Albertson, M. O. and Hutchinson, J. P. Discrete Mathematics with Algorithms, John
Wiley and Sons, 1988.
Learning Objectives
6
This course introduces the students to the fundamental concepts and topics of probability
and statistics, 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-6
UNIT-I (3 Weeks)
UNIT-II (4 Weeks)
UNIT-III (3 Weeks)
UNIT-IV (5 Weeks)
7
Markov Chain and Information Theory: Introduction to Stochastic Processes, Chapman–
Kolmogorov equations, Classification of states, Limiting and Stationary Probabilities.
Random Number Generation, Pseudo Random Numbers, Inverse Transformation Method,
Rejection Method, Uncertainty, Information and Entropy, Mutual Information, KL
Divergence.
The goal of this lab is to develop data interpretation skills. Following exercises are designed
to enable students to understand data characteristics either by visualization or by interpreting
computed measures. All the exercises are to be completed using MS Excel functions and
graphs. At the end of each exercise, the student should be able to draw a conclusion and state
in a concise manner. Teachers are expected to guide students to obtain real data available
through the internet for the following exercises.
Suggestive readings
(i) Johnson James L., Probability and Statistics for Computer Science, 6th edition,
Wiley, 2004.
(ii) Forsyth David, Probability and Statistics for Computer Science, 1st edition,
Springer, 2019.
(iii) Freund J.E., Mathematical Statistics with Applications, 8th edition,
Pearson Education, 2013.
(iv) Devore Jay L., Probability and Statistics for Engineering and the Sciences, 9th
edition, Cengage Learning, 2020.