3rd_sem_UG_CS_NEP_2023_24
3rd_sem_UG_CS_NEP_2023_24
Page 1 of 9
COURSE STRUCTURE Computer Science (NEP-2020)
SEMESTER I
Course Code Course title Nature of Course Credit Class Evaluation Total
of hour/week
Course Internal SemesterEnd
CS-SEC-P-1 Office Automation Lab Skill Enhancement Course 3 3 Problem: 35, Viva: 5, Lab 45
Notebook: 5
Value Added Course 4 4 10 40 50
Total 20 22 340
SEMESTER II
Nature of Course Credit Class Evaluation Total
Course Code Course title of hour/week
Course Internal Semester End
CS-MJ-T-2 Digital System Design Major 4 4 15 60 75
CS-MJ-P-2 Digital System Design Major 2 3 Problem: 60, Viva: 10, Lab 75
Lab
Notebook: 5
CS-MI-T-2 Database Management Minor 3 3 10 25 35
Systems
CS-MI-P-2 Database Management Minor 1 2 Problem + Viva =15 15
Systems Lab
CS-MU-P-2 Office Automation Multidisciplinary Course 3 3 10 35 45
CS-SEC-P- 2 Web Development Skill Enhancement Course 3 3 Problem: 35, Viva: 5, Lab 45
and Applications Lab
Notebook: 5
Total 20 340
Page 2 of 9
SEMESTER III
Course Code Course title Nature of Credit Class Evaluation Total
Course of hour/week
Course Internal Semester End
Ability Enhancement
Course
CS-SEC-P-3 Data Analysis through Skill Enhancement 3 3 Problem: 35, Viva: 5, Lab 45
Python/R(Lab) Course
Notebook: 5
Value Added Course 4 4 10 40 50
20 19 265
1. Introduction 9L
Logic gates, Boolean algebra, combinational circuits, circuit simplification, flip-flops and sequential
circuits, decoders, multiplexers, registers, counters and memory units.
Course Objective:
The primary objective of this course is to introduce students to the fundamental concepts of data
structures, algorithm design, and analysis. Students will explore different data structures, including
arrays, stacks, queues, linked lists, trees, and graphs, and understand their applications. The course also
focuses on fundamental searching and sorting algorithms, along with techniques like recursion, divide
and conquer, dynamic programming, and greedy algorithms. By the end of the course, students will
have a strong foundation in data structure implementation and the analytical tools needed to evaluate
algorithm efficiency.
Course Outcome:
1. Understand and classify linear and non-linear data structures.
2. Implement and apply single and multi-dimensional arrays.
3. Use array-based stacks and understand their applications and limitations.
4. Implement queues using arrays in practical scenarios.
5. Develop and apply recursive solutions, understanding their benefits and drawbacks.
6. Perform operations on singly, doubly, and circular linked lists using dynamic representation.
7. Implement binary search tree operations, both iteratively and recursively.
8. Apply and compare linear search, binary search, and basic sorting techniques.
9. Analyze algorithms using time and space complexity and asymptotic notations.
10. Implement divide-and-conquer, dynamic programming, and greedy algorithms.
11. Represent and manipulate graphs using static and dynamic methods.
Syllabus:
1. Basics 2L
Basic definitions; classifications; ADT; Linear Data Structures - Sequential representations; Non-
linear data structures – representations.
2. Arrays 2L
Single and Multi-dimensional Arrays; Row- major and column-major order; different applications.
3. Stacks 2L
Array Presentation of Stack and its applications; Limitations of Array representation of stack.
4. Queues 2L
Array representation of Queue and its applications.
Page 5 of 9
5. Recursion 2L
Developing Recursive Definition of Simple Problems and their implementation; Advantages and
Limitations of Recursion.
6. Linked Lists 8L
Basic Operations(Create, Display, Insert, Delete and Concatenation) on Singly, Doubly and Circular
Linked Lists (Dynamic representation only).
Recommended Books:
1. T.H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein Introduction to Algorithms,
PHI, 3rd Edition 2009
2. Sarabasse & A.V. Gelder Computer Algorithm – Introduction to Design and Analysis, Publisher–
Pearson 3rd Edition 1999
4. E.Horowitz and Shani ―Fundamentals of Computer algorithms‖
5. A.Aho, J.Hopcroft and J.Ullman ―The Design and Analysis of algorithms
6. Seymour Lipschutz , Data Structures Schaums Series 2/E
Course Objective:
The objective of this course is to provide students with a comprehensive understanding of data structures and
their implementations through hands-on programming assignments. Students will learn to work with various
data structures such as arrays, linked lists, stacks, queues, trees, and binary search trees. The course will
emphasize algorithmic thinking, including searching, sorting, and traversal techniques. By the end of the
course, students will be able to implement and manipulate these data structures to solve computational
problems efficiently.
Sample Programs:
1. Write a program to covert an infix expression into postfix one.
2. Write a program to create, display and concatenate two linear linked lists.
3. Write a program to create, display and concatenate two circular linked lists.
4. Write a program to create, display and concatenate two doubly linked lists.
5. Write a program to create a binary tree and then traverse it in preorder post order and in order.
6. Write a program to search an item from a binary search tree.
7. Write a program to delete a node from a binary search tree.
Page 6 of 9
8. Write a program to print lower and upper triangular matrix.
9. Write a program to represent the operations of stack using array.
10. Write a program to represent the operations of queue using array.
11. Write a program to sort an array using bubble sort.
12. Write a program to sort an array using selection sort.
13. Write a program to sort an array using insertion sort.
14. Write a program to implement insert operation in linear linked list.
15. Write a function to create & display binary search tree.
16. Write a program to implement insert operation in circular linked list.
17. Write a program to find the maximum and minimum values in a binary search tree.
18. Write a program to implement delete operation in linear linked list.
19. Write a program to implement insert operation in circular linked list.
20. Write a program to create a double linked list.
21. A set, say S, of integer data is given. Write a program to sort the set S using tree traversal technique.
22. Write a program to insert a node into a binary search tree.
23. Write a program to sort an array using quick sort.
24. Write a program to sort an array using merge sort.
25. Write a program to implement linear and binary search.
Course Objectives:
Introduction to Artificial Intelligence: Definition and scope of AI; historical overview and key milestones;
differentiating AI from human intelligence.
AI Subfields and Technologies: Introduction and basic concepts of machine learning, including supervised,
unsupervised, and reinforcement learning, deep learning and neural networks (without technical details); basic
concepts of natural language processing (NLP) and computer vision.
Applications of AI: AI in healthcare (diagnosis, treatment, medical imaging); AI in finance (fraud detection,
algorithmic trading, risk assessment); AI in transportation (autonomous vehicles, traffic optimization); AI in
education (personalized learning, intelligent tutoring systems).
Ethical and Social Implications of AI: Bias and fairness in AI systems; privacy and data protection concerns;
impact of AI on employment and the workforce; AI and social inequality.
Emerging Issues and Future Trends: Ethical guidelines and responsible AI practices; AI and innovation;
Page 7 of 9
emerging trends and future directions in AI; AI and creativity (generative models, artistic applications).
Books:
1. S. Goswami, A. K. Das, A. Chakrabarti, “AI for Everyone: A Beginner's Handbook for
Artificial Intelligence (AI)”, Pearson, 2024.
2. P. Verdegem, “AI for Everyone?: Critical Perspectives”, University of Westminster Press,
2021.
3. Shawn Schuster, “AI For All: How Everyday People Can Benefit from Artificial Intelligence”,
UMLAUT Publishing, 2021.
Objective:
The objective of the "Data Analysis through Python/R (Lab)" course is to equip students
with the skills and knowledge required to analyze, manipulate, and visualize data using
Python or R programming. The course focuses on fundamental data analysis techniques,
data preprocessing, exploratory data analysis (EDA), statistical modeling, and machine
learning. Students will learn how to work with real-world datasets, develop data-driven
insights, and apply various algorithms and models to extract meaningful information.
The course also emphasizes effective communication of findings through visualizations
and reports.
Course Outcomes:
Upon successful completion of this course, students will be able to:
1. Understand and apply fundamental data structures in Python/R for data manipulation.
2. Import, clean, and preprocess datasets from various sources such as CSV, Excel, and
databases.
3. Perform exploratory data analysis (EDA) using statistical measures and visualizations to
identify patterns and trends.
4. Implement and apply various data transformation techniques such as normalization,
standardization, and feature engineering.
5. Conduct statistical tests and understand concepts like correlation and hypothesis testing.
6. Build and evaluate regression and classification models using Python/R for predictive
analytics.
7. Apply clustering techniques for unsupervised learning and pattern discovery.
8. Analyze and forecast time series data using appropriate methods such as ARIMA or
exponential smoothing.
9. Perform dimensionality reduction using techniques like Principal Component Analysis
(PCA).
10. Communicate findings and insights effectively through visualizations and comprehensive
reports. Develop and evaluate end-to-end data analysis projects, including data acquisition,
analysis, model building, and result presentation.
Sample Programs:
1. Write a Python/R script to create, manipulate, and perform basic operations on lists (Python) or
vectors (R). Perform operations such as slicing, indexing, and appending elements.
Page 8 of 9
2. Write a Python/R program to load and manipulate data using dictionaries (Python) or data frames
(R).
3. Write a Python/R script to load a CSV file into a Pandas DataFrame (Python) or a data frame (R).
Perform basic operations like viewing the first few rows, summary statistics, and exporting the
modified dataset to a new CSV file. Import data from an Excel file and perform similar operations.
4. Write a Python/R script to identify and handle missing data (drop or impute missing values) in a
dataset. Detect and treat outliers using statistical techniques. Perform data normalization or
standardization on numerical columns.
5. Perform univariate and multivariate analysis using Python (Pandas, Matplotlib, Seaborn) or R
(ggplot2, dplyr).
Generate summary statistics (mean, median, mode, standard deviation, etc.) for numerical columns.
Create visualizations such as histograms, boxplots, scatter plots, and pair plots to explore
relationships between variables.
6. (a) Write a Python/R script to apply log transformations, binning, or scaling to numerical data.
(b) Create new features using existing ones (e.g., adding a column for a calculated field).
(c) Perform one-hot encoding for categorical variables and label encoding for target variables.
7. Write a Python/R script to compute and visualize the correlation matrix for a dataset. Perform
hypothesis testing using t-tests or ANOVA to compare means between groups. Apply chi-square
tests for independence on categorical data.
8. Create line plots, bar plots, pie charts, and heatmaps using Python (Matplotlib/Seaborn) or R
(ggplot2).
Create advanced visualizations like violin plots, KDE plots, and facet grids to represent multi-
dimensional data.
Customize plots by adding titles, labels, legends, and changing color schemes.
10. Implement a logistic regression model in Python/R to classify binary data. Evaluate model
performance using confusion matrix, accuracy, precision, recall, and F1-score. Explore other
classification algorithms like Decision Trees and K-Nearest Neighbors (KNN) for comparison.
11. Implement the K-means clustering algorithm in Python/R to group data based on similarity.
Visualize clusters and calculate the silhouette score to evaluate cluster quality. Apply hierarchical
clustering and compare the results with K-means.
12. Load and visualize time series data using Python (Pandas) or R. Perform decomposition of time
series into trend, seasonality, and residuals. Implement ARIMA or exponential smoothing to
forecast future data points.
13. Write a Python/R script to perform PCA on a dataset and reduce its dimensions. Visualize the
explained variance and transformed data. Use the reduced dataset to perform further analysis or
machine learning.
14. Implement cross-validation techniques to evaluate model performance. Use techniques like
GridSearchCV (Python) or tune. grid (R) to find the best hyperparameters for models. Compare
multiple models and choose the best one based on performance metrics.
Page 9 of 9