B.sccs Copsopo Syllabus
B.sccs Copsopo Syllabus
Undergraduate Programme
in
Computer Science
Syllabus for
B.Sc Computer Science
(With effect from the Academic Year 2023 -24)
Learning Outcome Based Curriculum Framework
1
Syllabus for B.Sc. Computer Science
(With effect from the Academic Year 2023-24)
I Preamble
Bachelor of Computer Science is a 3 – Year under Graduate Programme spread over six
semesters. The course is designed to achieve high degree of technical skills in Problem solving and
application development. The course develops requisite professional skills and problem solving abilities
for pursuing a successful career in software industry and forms the required basics for pursuing higher
studies in Computer Science.
II Eligibility
A pass in the Higher secondary Examination (Academic Stream) conducted by the Government of
Tamil Nadu with Mathematics as one of the subjects.
PO2 Students will acquire basic Practical skills & Technical knowledge along with domain knowledge of
different subjects in the Computer Science & humanities stream.
PO3 Students will become employable; Students will be eligible for career opportunities in education
field, Industry, or will be able to opt for entrepreneurship.
PO4 Students will possess basic subject knowledge required for higher studies, professional and applied
courses.
PO5 Students will be aware of and able to develop solution-oriented approach towards various Social
and Environmental issues.
PO6 Ability to acquire in-depth knowledge of several branches of Computer Science and aligned areas.
This Programme helps learners in building a solid foundation for higher studies in Computer
Science and applications.
PO7 The skills and knowledge gained leads to proficiency in analytical reasoning, which can be utilized
in modelling and solving real life problems.
PO8 Utilize computer programming skills to solve theoretical and applied problems by critical
understanding, analysis and synthesis.
PO9 Ability to share ideas and insights while seeking and benefitting from knowledge and insight of
others.
PO10 Mould the students into responsible citizens in a rapidly changing interdependent society.
IV Programme Specific Objectives
PSO3 Know when there is a need for information, to be able to identify, locate, evaluate, and effectively
usethat information for the issue or problem at hand.
PSO4 Understand, formulate, develop programming model with logical approaches to Address issues
arisingin social science, business and other contexts.
PSO5 Acquire good knowledge and understanding to solve specific theoretical and applied problems in
advanced areas of Computer science and Industrial statistics.
PSO6 Provide students/learners sufficient knowledge and skills enabling them to undertake further
studies inComputer Science or Applications or Information Technology and its allied areas on
multiple disciplines linked with Computer Science.
PSO7 Equip with Computer science technical ability, problem solving skills, creative talent and power of
communication necessary for various forms of employment.
PSO8 Develop a range of generic skills helpful in employment, internships& societal activities.
PSO9 Get adequate exposure to global and local concerns that provides platform for further exploration
into multi-dimensional aspects of computing sciences.
PSO10 The state of art technologies in conducting a Explain in a scientific and systematic way and arriving
at a precise solution is ensured
B.Sc. Computer Science - COURSE STRUCTURE
YEAR – I SEMESTER – I
Part Sub. Code List of Courses Credit Hrs Int. Ext. Total
Part-I ---- Language Paper-I 3 6 25 75 100
Part-II 100L1Z English Paper-I 3 6 25 75 100
Part-III 125C1A CC- I: Python Programming @#$%& 5 4 25 75 100
125C11 CC- II: Python Programming Practical @#$%& 5 5 40 60 100
EC - I Generic / Discipline Specific (Any one):
125E1A Mathematics I @#$%& / 3 5 25 75 100
125E1B Statistics I @#$%& /
125E1C Physics I #$% 2 3 25 75 100
--- Physics-I Practical #$% --- 2 --- --- ---
Part-IV 125S1A SEC - I: Office Automation @#$%& * 2 2 25 75 100
100S1A Basic Tamil-I (Other Language Students) *
100S1B Advanced Tamil-I (Other Language
Students) *
125B1A FC: Fundamentals of Computers @#$%& 2 2 25 75 100
22/23 30
* PART-IV: SEC-1 / Basic Tamil / Advanced Tamil (Any one)
1. Students who have studied Tamil upto XII STD and also have taken Tamil in Part I shall take SEC-I.
2. Students who have not studied Tamil upto XII STD and have taken any Language other than Tamil in
Part-I shall take Basic Tamil comprising of Two Courses (level will be at 6th Std.).
3. Students who have studied Tamil upto XII STD and have taken any Language other than Tamil in
Part-I shall take Advanced Tamil comprising of Two Courses.
YEAR – I SEMESTER – II
Sub.
Part List of Courses Credit Hrs Int. Ext. Total
Code
Part-I ---- Language Paper-II 3 6 25 75 100
Part-II 100L2Z English Paper-II 3 6 25 75 100
Part-III 125C2A CC-III: Introduction to Computer 5 4 25 75 100
Architecture and Microprocessor $
125C21 CC - IV: Introduction to Computer 5 5 40 60 100
Architecture and Microprocessor Practical $
EC-II Generic / Discipline Specific:
125E2A Mathematics II @#$%&/ 3 5 25 75 100
125E2B Statistics II @#$%&/
125E2C Physics II #$% 2 3 25 75 100
125E21 Physics I & II (Practicals) #$% 2 2 40 60 100
125S2A SEC- II: Quantitative Aptitude @#$%& *
100S2A Basic Tamil-II (Other Language Students) *
Part-IV 2 2 25 75 100
100S2B Advanced Tamil-II (Other Language
Students) *
125S2B SEC- III: Problem Solving Techniques $ 2 2 25 75 100
23/24 30
YEAR – II SEMESTER – III
Sub.
Part List of Courses Credit Hrs Int. Ext. Total
Code
Part-I ---- Language Paper-III 3 6 25 75 100
Part-II 200L3Z English Paper-III 3 6 25 75 100
Part-III 225C3A CC - V: Java Programming @#$%& 5 4 25 75 100
225C31 CC - VI: Java Programming Practical 5 5 40 60 100
@#$%&
EC-III Generic / Discipline Specific:
225E3A Mathematics I @#$%&/ 3 5 25 75 100
225E3B Statistics I @#$%&/
225E3C Physics I #$% 2 3 25 75 100
--- Physics-I Practical #$% --- 2 --- --- ---
Part-IV 225S31 SEC- IV: (Entrepreneurial Based): Web 1 1 40 60 100
Page Design Practical @#$%&
225S32 SEC- V: Desktop Publishing Practical 2 2 40 60 100
@#$%&
---- Environmental Science -- 1 -- -- --
21/22 30
YEAR – II SEMESTER – IV
Sub.
Part List of Courses Credit Hrs Int. Ext. Total
Code
Part-I ---- Language Paper-IV 3 6 25 75 100
Part-II 200L4Z English Paper-IV 3 6 25 75 100
Part-III 225C4A CC - VII: Data Structures and Algorithms $ 5 4 25 75 100
225C41 CC -VIII: Data Structures and Algorithms 5 4 40 60 100
Practical $
EC-IV Generic / Discipline Specific :
225E4A Mathematics II @#$%&/ 3 5 25 75 100
225E4B Statistics II @#$%&/
225E4C Physics II #$% 2 3 25 75 100
225E41 Physics I & II (Practicals) #$% 2 2 40 60 100
Part-IV 225S4A SEC -VI: Emotional Intelligence @#$%& 2 2 25 75 100
225S4B SEC -VII: Technical Writing @#$%& 2 2 25 75 100
--- Environmental Science 2 1 25 75 100
25/26 30
YEAR – III SEMESTER – V
Part Sub. Code List of Courses Credit Hrs Int. Ext. Total
Part- III 325C5A CC - IX: Operating System @$ 3 5 25 75 100
325C51 CC - X: Operating System Practical $ 5 5 40 60 100
325C5B CC - XI: Relational Database 4 5 25 75 100
Management System @#$
325C52 CC-XII: Relational Database Management 4 5 40 60 100
System Practical #$
EC-V:
325E5A Computer Networks #$%&/
3 4 25 75 100
325E5B Mobile Ad-hoc Network @#$%& /
325E5C Data Mining and Warehousing @#$%&
EC -VI:
325E5D Software Engineering @#$%& /
3 4 25 75 100
325E5E Software Testing $ /
325E5F Digital Image Processing $
Part-IV --- Value Education 2 2 25 75 100
--- Internship / Industrial Training (During 2 -- -- -- --
summer vacation at the end of IV
semester)
26 30
Year: I Semester:I
Core-I: Python Programming
125C1A
(Common to B.Sc.-CS with AI, CS with DS, Software Appl.& BCA)
Credits 5 Lecture Hours:4 per week
Learning Objectives: (for teachers: what they have to do in the class/lab/field)
Describe the core syntax and semantics of Python programming language.
Discover the need for working with the strings and functions.
Illustrate the process of structuring the data using lists, dictionaries, tuples and sets.
Understand the usage of packages and Dictionaries
Course Outcomes: (for students: To know what they are going to learn)
CO1: Develop and execute simple Python programs
CO2: Write simple Python programs using conditionals and looping for solving problems
CO3: Decompose a Python program into functions
CO4: Represent compound data using Python lists, tuples, dictionaries etc.
CO5: Read and write data from/to files in Python programs
UNITS CONTENTS
Learning Resources:
Recommended Texts
Reference Books
Web resources
1. https://onlinecourses.swayam2.ac.in/cec22_cs20/preview
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester: II
Introduction to Computer Architecture and Microprocessor 125C2A
Credits 5 Lecture Hours:4 per week
Units Contents
I Digital Computers - Microcomputer Organization-Computer languages Number
Systems: Decimal, Binary, Octal. Hexadecimal. Conversions: Conversion between all
four number systems of integer and floating-point values. Data representation: fixed
point and floating-point representation - Character codes
II Addition, subtraction (9’s Complement for decimal, 10’s complement for decimal, 1’s
complement, 2’s complement methods), multiplication and division of binary
numbers. - Differentiate Binary and BCD representations - BCD to Binary and Binary
to BCD conversions, BCD addition and Subtraction.
8085 Microprocessor: Architecture, Pinout and Signals – Functional block diagram -
III 8085 Instruction Set and addressing modes- 8085 sample programs using data
transfer, arithmetic and JMP instructions– function calls in 8085
TEXT BOOKS:
1. M.M. Mano, “Computer System architecture”. Pearson, Third Edition, 2007
2. R. S. Gaonkar- "Microprocessor Architecture- Programming and Applications with
8085"- 5th Edition- Penram- 2009.
3. Tripti Dodiya & Zakiya Malek, “Computer Organization and Advanced Microprocessors”,
CengageLearning, 2012.
REFERENCE BOOKS:
1. Mathur- “Introduction to Microprocessor”- 3rd Edition- Tata McGraw-Hill-1993.
2. P. K. Ghosh and P. R. Sridhar- “0000 to 8085: Introduction to Microprocessors for
Engineers andScientists”- 2nd Edition- PHI- 1995.
3. NagoorKani- “Microprocessor (8085) and its Applications”- 2nd Edition- RBA
Publications- 2006.
4. V. Vijayendran- “Fundamentals of Microprocessors – 8085”- S. Viswanathan Pvt. Ltd.-
2008.
WEB REFERENCES:
NPTEL & MOOC courses titled Computer organization
https://nptel.ac.in/courses/106105163/
https://nptel.ac.in/courses/106103068
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester:I
Core-II: Python Programming Practical
125C11
(Common to B.Sc.-CS with AI, CS with DS, Software Appl.& BCA)
Credits 5 Lecture Hours:5 per week
Learning Objectives: (for teachers: what they have to do in the class/lab/field)
Acquire programming skills in core Python.
Acquire Object-oriented programming skills in Python.
Develop the skill of designing graphical-user interfaces (GUI) in Python.
Develop the ability to write database applications in Python.
Acquire Python programming skills to move into specific branches
Course Outcomes: (for students: To know what they are going to learn)
CO1: To understand the problem solving approaches
CO2: To learn the basic programming constructs in Python
CO3: To practice various computing strategies for Python-based solutions to real world
problems
CO4: To use Python data structures - lists, tuples, dictionaries.
CO5: To do input/output with files in Python.
List of Programs
1. Program to convert the given temperature from Fahrenheit to Celsius and vice versa
depending upon user’s choice.
2. Write a Python program to construct the following pattern, using a nested loop
*
**
***
****
*****
****
***
**
*
3. Program to calculate total marks, percentage and grade of a student. Marks obtained in
each of the five subjects are to be input by user. Assign grades according to the
following criteria:
Grade A: Percentage >=80 Grade B: Percentage >=70 and 80
Grade C: Percentage >=60 and <70 Grade D: Percentage >=40 and <60
Grade E: Percentage < 40
4. Program, to find the area of rectangle, square, circle and triangle by accepting suitable
input parameters from user.
5. Write a Python script that prints prime numbers less than 20.
6. Program to find factorial of the given number using recursive function.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
7. Write a Python program to count the number of even and odd numbers from array of
N numbers.
8. Write a Python class to reverse a string word by word.
9. Given a tuple and a list as input, write a program to count the occurrences of all items
of the list in the tuple. (Input: tuple = ('a', 'a', 'c', 'b', 'd'), list = ['a', 'b'], Output: 3)
10. Create a Savings Account class that behaves just like a Bank Account, but also has an
interest rate and a method that increases the balance by the appropriate amount of
interest (Hint: use Inheritance).
11. Read a file content and copy only the contents at odd lines into a new file.
12. Create a Turtle graphics window with specific size.
13. Write a Python program for Towers of Hanoi using recursion
14. Create a menu driven Python program with a dictionary for words and their meanings.
15. Devise a Python program to implement the Hangman Game.
Learning Resources:
Recommended Texts
1. Charles Dierbach, “Introduction to Computer Science using Python - A
computational Problem-solving Focus”, Wiley India Edition, 2015.
2. Wesley J. Chun, “Core Python Applications Programming”, 3rd Edition , Pearson
Education, 2016
Reference Books
1. Mark Lutz, “Learning Python Powerful Object Oriented Programming”, O’reilly
Media 2018, 5th Edition.
2. Timothy A. Budd, “Exploring Python”, Tata MCGraw Hill Education Private
Limited 2011, 1 st Edition.
3. John Zelle, “Python Programming: An Introduction to Computer Science”,
Second edition, Course Technology Cengage Learning Publications, 2013,
ISBN 978- 1590282410
4. Michel Dawson, “Python Programming for Absolute Beginers”, Third Edition,
Course Technology Cengage Learning Publications, 2013, ISBN 978-
1435455009
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester: II
Introduction to Computer Architecture and Microprocessor Practical 125C21
Credits 5 Lecture Hours:5 per week
List of Programs
Code Conversion
1. BCD to Hex and Hex to BCD
2. Binary to ASCII and ASCII to binary
3. ASCII to BCD and BCD to ASCII
Applications
1. Square of a single byte Hex number
2. Square of a two-digit BCD number
3. Square root of a single byte Hex number
4. Square root of a two-digit BCD number
TEXT BOOKS:
1. M.M. Mano, “Computer System architecture”. Pearson, Third Edition, 2007
2. R. S. Gaonkar- "Microprocessor Architecture- Programming and Applications with
8085"- 5th Edition- Penram- 2009.
3. Tripti Dodiya & Zakiya Malek, “Computer Organization and Advanced Microprocessors”,
CengageLearning, 2012.
REFERENCE BOOKS:
1. Mathur- “Introduction to Microprocessor”- 3rd Edition- Tata McGraw-Hill-1993.
2. P. K. Ghosh and P. R. Sridhar- “0000 to 8085: Introduction to Microprocessors for
Engineers andScientists”- 2nd Edition- PHI- 1995.
3. NagoorKani- “Microprocessor (8085) and its Applications”- 2nd Edition- RBA
Publications- 2006.
4. V. Vijayendran- “Fundamentals of Microprocessors – 8085”- S. Viswanathan Pvt. Ltd.-
2008.
WEB REFERENCES:
NPTEL & MOOC courses titled Computer organization
https://nptel.ac.in/courses/106105163/
https://nptel.ac.in/courses/106103068
UNIVERSITYOFMADRAS
B.Sc.DEGREEPROGRAMMEINCOMPUTERSCIENCE
SYLLABUSWITHEFFECTFROM2023-2024
Year:I Semester: I
TitleoftheCourse MATHEMATICS–I
(Common to B.Sc Physics, Physics with CA, Chemistry, ECS, DataScience,
Artificial Intelligence, Software Applications & BCA)
PaperNumber ELECTIVECOURSEI
Category Elective Year I Credits 3 Course 125E1A
Semester I Code
Instructional Lecture Tutorial LabPractice Total
Hoursperweek 4 1 -- 5
th
Pre-requisite 12 StandardMathematics
Objectives ofthe Students gain knowledge about the basic concepts of Algebra,
Course Theory of Equations.
They also gain the basic knowledge in Matrices, Trigonometry and
Differential Calculus.
Chapter2: Sections:2.1.3,2.2,2.2.1,2.3,2.3.3.
UNIT II: Matrices: Symmetric– Skew-Symmetric–Hermitian– Skew-
Hermitian–OrthogonalandUnitarymatrices–Cayley-Hamiltontheorem
(without proof) – Verification- Computation of inverse of matrix using
Cayley - Hamilton theorem.
Chapter4:Sections:4.1.1–4.1.6,4.5.2and4.5.3. Hours:15
UnitIII:NumericalMethods:Newton’smethodtofindaroot approximately.
FiniteDifferences:Interpolation:Operators,∆,∇,E,E--1differencetables.
Interpolation formulae: Newton’s forward and backward interpolation
formulae for equal intervals, Lagrange’s interpolation
formula. Hours:15
Chapter3:Sections3.4.1.Chapter5:Sections:5.1 and5.2.
Unit IV: Trigonometry: Expansions of sinnθ, cosnθ in a series of powers of
sinθand cosθ -Expansions of sin(nθ) and cos(nθ) in aseriessinesandcosines
ofmultiplesof“θ”-Expansionsofsinθ,cosθandtanθin aseriesofpowers of “θ”–
Hyperbolicandinversehyperbolic functions .
Chapter6:Section6.1– 6.3 Hours:15
Unit V: Differential Calculus: Successive differentiation, n th derivatives,
Leibnitz theorem (without proof) and applications, Jacobians, maxima and
minima of functions of twovariables- Simple problems
Chapter1,Section1.1to1.3.1. Hours:15
TotalHours:75
UNIVERSITYOFMADRAS
B.Sc.DEGREEPROGRAMMEINCOMPUTERSCIENCE
SYLLABUSWITHEFFECTFROM2023-2024
CourseLearningOutcome(forMappingwith POsandPSOs)
Studentswillbeableto
CLO1:UnderstandtheconceptsofSummationofSeries.
CLO2:UnderstandtheconceptsofCayleyHamiltonTheoremandinversematrices.
CLO3:Understandtheconceptsoffinitedifferences.
CLO4:Understandtheknowledgeaboutexpansions,hyperbolicandinversehyperbolic functions.
CLO5:UnderstandtheconceptofLeibnitztheoremandfunctionsoftwovariables
POs PSOs
1 2 3 4 5 6 1 2 3
CLO 1 2 3 1 3 1 1 3 1 1
CLO 2 3 2 1 3 1 1 3 1 1
CLO 3 3 2 1 3 1 1 3 1 1
CLO 4 3 3 1 3 1 1 3 1 1
CLO 5 3 2 1 3 1 1 3 1 1
-x-x-x-x-
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester: I
Elective: Statistics-I 125E1B
(Common to B.Sc.-CS with AI, CS with DS, Software Appl. & BCA)
Lecture Hours: 5 per week Credits: 3
Learning Objectives: (for teachers: what they have to do in the class/lab/field)
Course Outcomes: (for students: To know what they are going to learn)
1. Know the uses of statistics in society
2. Organize, manage and present data
3. Analyze the statistical data graphically using frequency distribution and cumulative
frequency distribution.
4. Analyze statistical data using measures of central tendency, dispersion and location.
5. To understand correlation between continuous variables and association between
categorical variables.
Units Contents
Methods of collection: Complete enumeration – Sample Survey - Primary data -
Secondary data sources - Types of variables. Norminal, ordinal and scale data.
I
Presentation of Data: Presentation of data by tables - construction of tables
(Univariate and Bivariate) – frequency table and contingency table
Diagrammatic presentation: Line diagram, Bar diagrams: Simple, multiple,
subdivided and Percentage-Pie chart, comparative pie chart - Graphical
II
representation of a frequency distribution by histogram and frequency polygon and
Ogives
Analysis of Data (Univariate): Measures of central tendency: Arithmetic mean-
III
Median and Mode choice of an average-characteristic of a good average
Measures of dispersion: Range-Quartile deviation-mean deviation - standard
IV
deviation - relative measures of dispersion - Coefficient of Variance
Analysis of Data (Bivariate): Correlation- Scatter plot-coefficient of correlation-
Pearson’s Correlation Coefficient, Spearmen’s rank correlation coefficient-
V
correlation coefficient for bivariate frequency table- Association of attributes: Chi-
square test of independence of attributes
Suggested Readings:
Books for study:
1. Gupta, S.C and Kapoor, V. K (2002), Fundamentals of Mathematical Statistics,
Sultan Chand and Sons, New Delhi.
2. Goon A.M., Gupta M.K. and Dasgupta B. (2002): Fundamentals of Statistics, Vol. I
& II, 8th Edn. The World Press, Kolkata.
3. Irwin Miller, Marylees Miller (2006): John E. Freund’s Mathematical Statistics with
Applications, (7th Edn.), Prentice Hall International INC.
4. Mood, A.M. Graybill, F.A. and Boes, D.C. (2007): Introduction to the Theory of
Statistics, 3rd Edn., (Reprint), Tata McGraw-Hill Pub. Co. Ltd
Books for reference:
1. Saxena H.C.: Elementary Statistics. S. Chand & Co., 2009.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
MATHEMATICS – II
Title of the Course (Common to B.Sc-Physics, Physics with CA, Chemistry, Computer Science, ECS,
Data Science, Artificial Intelligence, Software Applications & BCA)
Paper Number ELECTIVE COURSE II
Year I Course
Category Elective Credits 3 125E2A
Semester II Code
Instructional Lecture Tutorial Lab Practice Total
Hours per week 4 1 -- 5
th
Pre-requisite 12 Standard Mathematics
Objectives of the Students gain some knowledge in Integral Calculus, Differential
Course Equations.
They also learn the basic concepts in Laplace Transforms and
Vector Calculus.
Unit I: Integral calculus: Bernouli’s Formula, Reduction Formula
Year: I Semester: II
Elective: Statistics-II
125E2B
(Common to B.Sc.-CS, CS with AI, CS with DS, Software Appl. & BCA)
Course Objectives:
1. Understand Probability and its properties
2. Learn characteristics of different discrete and continuous distributions.
3. Know situation to which different distributions can be applied.
4. Comprehend the Sampling distributions.
5. Learn how to apply statistical tests to get information from data
Units Contents
Testing of Hypothesis, Single mean test and double means test based on normal
V distribution and students t-distribution. Proportion test, Chi-square test, ANOVA
test.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Course Outcomes: Upon finishing point of this course, students will be able to
1. understand the basic concept of Probability
2. identify the characteristics of different discrete and continuous distributions.
3. identify the type of statistical situation to which different distributions can be
applied comprehend the Sampling distributions.
4. understand how to apply statistical tests to get information from data.
Suggested Readings:
Books for study:
1. Gupta,S.CandKapoor,V.K(2002),FundamentalsofMathematicalStatistics,SultanChan
dandSons,NewDelhi.
2. GoonA.M.,GuptaM.K.andDasguptaB.(2002):FundamentalsofStatistics,Vol.I&II,8thE
dn.TheWorldPress,Kolkata.
3. IrwinMiller,MaryleesMiller(2006):JohnE.Freund’sMathematicalStatisticswithApplic
ations,(7thEdn.),PrenticeHallInternationalINC.
4. Mood,A.M.Graybill,F.A.andBoes,D.C.(2007):IntroductiontotheTheoryofStatistics,3r
dEdn.,(Reprint),TataMcGraw-HillPub.Co.Ltd
Books for reference:
1.SaxenaH.C.:ElementaryStatistics.S.Chand&Co.,2009.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Units Contents
I Introduction: Review of Object-Oriented concepts - Java buzzwords (Platform
independence, Portability, Threads)- JVM architecture –Java Program structure - –
Java main method - Java Console output(System.out) - simple java program - Data
types - Variables - type conversion and casting- Java Console input: Buffered input -
operators - control statements - Static Data - Static Method - String and String Buffer
Classes
II Java user defined Classes and Objects – Arrays – constructors - Inheritance: Basic
concepts - Types of inheritance - Member access rules - Usage of this and Super key
word - Method Overloading - Method overriding - Abstract classes - Dynamic method
dispatch - Usage of final keyword -Packages: Definition - Access Protection -
Importing Packages - Interfaces: Definition – Implementation – Extending Interfaces
III Exception Handling: try – catch - throw - throws –- finally – Built-in exceptions -
Creating own Exception classes - garbage collection, finalise -Multithreaded
Programming: Thread Class - Runnable interface – Synchronization – Using
synchronized methods – Using synchronized statement - Interthread Communication –
Deadlock.
Learning Resources:
Recommended Texts
Herbert Schildt, The Complete Reference, Tata McGraw Hill, New Delhi, 7th Edition, 2010.
Gary Cornell, Core Java 2 Volume I – Fundamentals, Addison Wesley, 1999.
Reference Books
Head First Java, O’Rielly Publications, Y. Daniel Liang, Introduction to Java Programming,
7th Edition, Pearson Education India, 2010.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: II Semester: IV
Data Structures and Algorithms 225C4A
Credits 5 Lecture Hours:4 per week
Units Contents
I INTRODUCTION TO DATA STRUCTURES:
Data Structures: Definition- Time & Space Complexity - Arrays: Representation of
arrays, Applications of arrays, sparse matrix and its representation - Linear list:
Singly linked list implementation, insertion, deletion and searching operations on
linear list - Circular linked list: implementation, Double linked list implementation,
insertion, deletion and searching operations.
II STACKS and QUEUES:
Operations, array and linked representations of stack, stack applications, infix to
postfix conversion, postfix expression evaluation - Queues: operations on queues,
array and linked representations - Circular Queue: operations, applications of queues.
III TREES & GRAPHS:
Trees: Definitions and Concepts- Representation of binary tree, Binary tree traversals
(Inorder, Postorder, preorder), Binary search trees in arrays– Heaps - AVL Trees – B
Trees
Graphs: Representation of Graphs- Types of graphs
IV INTRODUCTION TO ALGORITHMS:
Definition of Algorithms- Overview and importance of algorithms- pseudocode
conventions, Asymptotic notations, practical complexities.
Graph Applications: Breadth first traversal – Depth first traversal- -Single source
shortest path – Minimal spanning trees – prim’s and kruskal’s algorithms
V DIVIDE AND CONQUER ALGORITHMS:
General Method – Binary Search- Quick Sort- Merge Sort.
BACKTRACKING:
General method, 8 Queens, Graph coloring, Hamiltonian cycle.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Learning Resources:
Recommended Texts
1. Ellis Horowitz , Sartaj Sahni, Susan Anderson Freed, Second Edition ,
“Fundamentals of Data in C”, Universities Press
2. E. Horowitz, S. Sahni and S. Rajasekaran, Second Edition ,“Fundamentals of
Computer Algorithms “ Universities Press
Reference Books
1. Seymour Lipschutz ,”Data Structures with C”, First Edition, Schaum’s outline series
in computers, Tata McGraw Hill.
2. R.Krishnamoorthy and G.Indirani Kumaravel, Data Structures using C, Tata
McGrawHill – 2008.
3. A.K.Sharma, Data Structures using C , Pearson Education India,2011.
4. G. Brassard and P. Bratley, “Fundamentals of Algorithms”, PHI, New Delhi, 1997.
5. A.V. Aho, J.E. Hopcroft, J.D. Ullmann,, “The design and analysis of
ComputerAlgorithms”, Addison Wesley, Boston, 1974
6. Thomas H. Cormen, C.E. Leiserson, R L.Rivest and C. Stein, Introduction to
Algorithms, Third edition, MIT Press, 2009
7. Sanjoy Dasgupta, C.Papadimitriou and U.Vazirani , Algorithms , Tata McGraw-Hill,
2008.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: II Semester:III
Java Programming Practical 225C31
Common for B.C.A. , B.Sc.-SA , B.Sc.-CSc , B.Sc.-CSc-wAI , B.Sc.-CSc-wDS
Credits 5 Lecture Hours:5 per week
List of Programs
1. Write a Java program that prompts the user for an integer and then prints out all the
prime numbers up to that Integer?
2. Write a Java program to multiply two given matrices.
3. Write a Java program that displays the number of characters, lines and words in a text?
4. Generate random numbers between two given limits using Random class and print
messages according to the range of the value generated.
5. Write a program to do String Manipulation using Character Array and perform the
following string operations:
a) String length
b) Finding a character at a particular position
c) Concatenating two strings
6. Write a program to perform the following string operations using String class:
a) String Concatenation
b) Search a substring
c) To extract substring from given string
7. Write a program to perform string operations using StringBuffer class:
a) Length of a string
b) Reverse a string
c) Delete a substring from the given string
8. Write a java program that implements a multi-thread application that has three
threads. First thread generates random integer every 1 second and if the value is even,
second thread computes the square of the number and prints. If the value is odd, the third
thread will print the value of cube of the number.
9. Write a threading program which uses the same method asynchronously to print the
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Learning Resources:
Recommended Texts
Herbert Schildt, The Complete Reference, Tata McGraw Hill, New Delhi, 7th Edition, 2010.
Gary Cornell, Core Java 2 Volume I – Fundamentals, Addison Wesley, 1999.
Reference Books
Head First Java, O’Rielly Publications, Y. Daniel Liang, Introduction to Java Programming,
7th Edition, Pearson Education India, 2010.
Web resources: Web resources from NDL Library, E-content from open-source libraries
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: II Semester: IV
Data Structures and Algorithms Practical 225C41
Credits 5 Lecture Hours:4 per week
Course Outcomes: (for students: To know what they are going to learn)
CO1: Implement data structures using Java
CO2: Implement various types of linked lists and their applications
CO3: Implement Tree Traversals
CO4: Implement various algorithms in Java
CO5: Implement different sorting and searching algorithms
List of Programs
Implement the following exercises using Java Programming language:
1. Array implementation of stacks
2. Array implementation of Queues
3. Linked list implementation of stacks
4. Linked list implementation of Queues
5. Covert infix expression to postfix.
6. Binary Tree Traversals (Inorder, Preorder, Postorder)
7. Implementation of Linear search and binary search
8. Implementation Insertion sort, Quick sort and Merge Sort
9. Implementation of Depth-First Search & Breadth-First Search of Graphs.
10. Finding single source shortest path of a Graph.
Learning Resources:
Learning Resources:
Recommended Texts
1. Ellis Horowitz , Sartaj Sahni, Susan Anderson Freed, Second Edition ,
“Fundamentals of Data in C”, Universities Press
2. E. Horowitz, S. Sahni and S. Rajasekaran, Second Edition ,“Fundamentals of
Computer Algorithms “ Universities Press
Reference Books
1. Seymour Lipschutz ,”Data Structures with C”, First Edition, Schaum’s outline series
in computers, Tata McGraw Hill.
2. R.Krishnamoorthy and G.Indirani Kumaravel, Data Structures using C, Tata
McGrawHill – 2008.
3. A.K.Sharma, Data Structures using C , Pearson Education India,2011.
4. G. Brassard and P. Bratley, “Fundamentals of Algorithms”, PHI, New Delhi, 1997.
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC09
CORE: COMPUTER NETWORK
(Common paper to B.Sc.Software Applications-VI Sem., B.Sc.Computer Science with
Data Science, Computer Science with AI & B.C.A.)
III YEAR / V SEM
OBJECTIVES:
To understand the concept of Computer network
To impart knowledge about networking and inter networking devices
OUTCOMES:
Analyze different network models
Describe, analyze and compare a number of data link, network and transport layer
Analysing key networking protocols and their hierarchical relationship in the conceptual model
like TCP/IP and OSI
UNIT - I
Introduction – Network Hardware - Software - Reference Models - OSI and TCP/IP Models - Example
Networks: Internet, ATM, Ethernet and Wireless LANs - Physical Layer - Theoretical Basis for Data
Communication - Guided Transmission Media.
UNIT - II
Wireless Transmission - Communication Satellites - Telephone System: Structure, Local Loop, Trunks
and Multiplexing and Switching. Data Link Layer: Design Issues - Error Detection and Correction.
UNIT - III
Elementary Data Link Protocols - Sliding Window Protocols - Data Link Layer in the Internet - Medium
Access Layer - Channel Allocation Problem - Multiple Access Protocols - Bluetooth.
UNIT - IV
Network Layer - Design Issues - Routing Algorithms - Congestion Control Algorithms - IP Protocol - IP
Addresses - Internet Control Protocols.
UNIT - V
Transport Layer - Services - Connection Management - Addressing, Establishing and Releasing a
Connection - Simple Transport Protocol - Internet Transport Protocols (ITP) - Network Security:
Cryptography.
TEXT BOOK :
1. A. S. Tanenbaum, “Computer Networks”, Prentice-Hall of India 2008, 4th Edition.
REFERENCE BOOKS:
1. Stallings, “Data and Computer Communications”, Pearson Education 2012, 7th Edition.
2. B. A. Forouzan, “Data Communications and Networking”, Tata McGraw Hill 2007, 4th Edition.
3. F. Halsall, “Data Communications, Computer Networks and Open Systems”, Pearson Education
2008.
4. D. Bertsekas and R. Gallagher, “Data Networks”, PHI 2008, 2nd Edition.
5. Lamarca, “Communication Networks”, Tata McGraw Hill 2002.
WEB REFERENCES:
NPTEL & MOOC courses titled Computer Networks
https://nptel.ac.in/courses/106106091/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC10
CORE: OPERATING SYSTEM
(Common paper to B.Sc.Software Applications, B.Sc.Computer Science with
Data Science, Computer Science with AI & B.C.A.)
III YEAR / V SEM
OBJECTIVES:
To understand the fundamental concepts and role of Operating System.
To learn the Process Management and Scheduling Algorithms
To understand the Memory Management policies
To gain insight on I/O and File management techniques
OUTCOMES:
Understand the structure and functions of Operating System
Compare the performance of Scheduling Algorithms
Analyze resource management techniques
UNIT - I
Introduction: Views - Types of System - OS Structure – Operations - Services – Interface- System Calls-
System Structure - System Design and Implementation. Process Management: Process - Process
Scheduling - Inter-process Communication. CPU Scheduling: CPU Schedulers - Scheduling Criteria -
Scheduling Algorithms.
UNIT - II
Process Synchronization: Critical- Section Problem - Synchronization Hardware Semaphores - Classical
Problems of Synchronization - Monitors. Deadlocks: Characterization - Methods for Handling Deadlocks
- Deadlock Prevention - Avoidance - Detection - Recovery.
UNIT - III
Memory Management: Hardware - Address Binding – Address Space - Dynamic Loading and Linking –
Swapping – Contiguous Allocation - Segmentation - Paging – Structure of the Page Table.
UNIT - IV
Virtual Memory Management: Demand Paging - Page Replacement Algorithms - Thrashing. File System:
File Concept -. Access Methods - Directory and Disk Structure - Protection - File System Structures -
Allocation Methods - Free Space Management.
UNIT - V
I/O Systems: Overview - I/O Hardware - Application I/O Interface - Kernel I/O Subsystem -
Transforming 1/0 Requests to Hardware Operations - Performance. System Protection: Goals - Domain -
Access matrix. System Security: The Security Problem - Threats – Encryption- User Authentication.
TEXT BOOK:
1. Abraham Silberschatz, Peter B Galvin, Greg Gagne, “Operating System Concepts”, Wiley India
Pvt. Ltd 2018, 9th Edition,.
REFERENCES:
1. William Stallings, “Operating Systems Internals and Design Principles”, Pearson, 2018, 9th
Edition.
2. Andrew S. Tanenbaum, Herbert Bos, “Modern Operating Systems”, Pearson 2014, 4th Edition.
WEB REFERENCES:
NPTEL & MOOC courses titled Operating Systems
https://nptel.ac.in/courses/106106144/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC11
CORE: RELATIONAL DATABASE MANAGEMENT SYSTEM
(Common paper to B.Sc.Software Applications, B.Sc.Computer Science with
Data Science, Computer Science with AI & B.C.A.)
II / III YEAR
III / V SEM
OBJECTIVES:
Gain a good understanding of the architecture and functioning of Database Management Systems
Understand the use of Structured Query Language (SQL) and its syntax.
Apply Normalization techniques to normalize a database.
Understand the need of transaction processing and learn techniques for controlling the
consequences of concurrent data access.
OUTCOMES:
Describe basic concepts of database system
Design a Data model and Schemas in RDBMS
Competent in use of SQL
Analyze functional dependencies for designing robust Database
UNIT - I
Introduction to DBMS– Data and Information - Database – Database Management System – Objectives
- Advantages – Components - Architecture. ER Model: Building blocks of ER Diagram –
Relationship Degree – Classification – ER diagram to Tables – ISA relationship – Constraints –
Aggregation and Composition – Advantages
UNIT - II
Relational Model: CODD’s Rule- Relational Data Model - Key - Integrity – Relational Algebra
Operations – Advantages and limitations – Relational Calculus – Domain Relational Calculus -
QBE.
UNIT - III
Structure of Relational Database. Introduction to Relational Database Design - Objectives – Tools –
Redundancy and Data Anomaly – Functional Dependency - Normalization – 1NF – 2NF – 3NF –
BCNF. Transaction Processing – Database Security.
UNIT - IV
SQL: Commands – Data types – DDL - Selection, Projection, Join and Set Operations – Aggregate
Functions – DML – Modification - Truncation - Constraints – Subquery.
UNIT - V
PL/SQL: Structure - Elements – Operators Precedence – Control Structure – Iterative Control -
Cursors - Procedure - Function - Packages – Exceptional Handling - Triggers.
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
TEXT BOOK:
1. S. Sumathi, S. Esakkirajan, “Fundamentals of Relational Database Management System”,
Springer International Edition 2007.
REFERENCE BOOKS:
1. Abraham Silberchatz, Henry F. Korth, S. Sudarshan, “Database System Concepts”, McGrawHill
2019, 7th Edition.
2. Alexis Leon & Mathews Leon, “Fundamentals of DBMS”, Vijay Nicole Publications 2014, 2nd
Edition.
WEB REFERENCES:
NPTEL & MOOC courses titled Relational Database Management Systems
https://nptel.ac.in/courses/106106093/
https://nptel.ac.in/courses/106106095/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC12
OBJECTIVES:
To learn Process management and scheduling.
To understand the concepts and implementation of memory management policies.
To understand the various issues in Inter Process Communication.
OUTCOMES:
Understand the process management policies and scheduling process by CPU.
Analyze the memory management and its allocation policies.
To evaluate the requirement for process synchronization.
PROGRAM LIST:
1. Basic I/O programming.
To implement CPU Scheduling Algorithms:
2. Shortest Job First Algorithm.
3. First Come First Served Algorithm.
4. Round Robin and Priority Scheduling Algorithms.
5. To implement reader/writer problem using semaphore.
6. To implement Banker’s algorithm for Deadlock avoidance.
Program for page replacement algorithms:
7. First In First Out Algorithm.
8. Least Recently Used Algorithm.
9. To implement first fit, best fit and worst fit algorithm for memory management.
10. Program for Inter-process Communication.
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC13
PRACTICAL:– PL / SQL LAB
(Common paper to B.Sc.Software Applications, B.Sc.Computer Science with
Data Science, Computer Science with AI & B.C.A.)
II / III YEAR
III / V SEM
OBJECTIVES:
Learn the various DDL and DML commands
Understand queries in SQL to retrieve information from data base
Understand PL/SQL statements: Exception Handling, Cursors, and Triggers.
Develop database applications using front-end and back-end tools.
OUTCOMES:
Implement the DDL , DML Commands and Constraints
Create, Update and query on the database.
Design and Implement simple project with Front End and Back End.
LIST OF EXERCISES
BCE-CSC14
CORE-XIV: SOFTWARE ENGINEERING
(Common paper to B.Sc.Software Applications-V Sem. & B.C.A.-V Sem.)
OUTCOMES:
The students should be able to specify software requirements, design the software using tools
To write test cases using different testing techniques.
UNIT- I
Introduction – Evolution – Software Development projects – Emergence of Software Engineering.
Software Life cycle models – Waterfall model – Rapid Application Development – Agile Model – Spiral
Model
UNIT- II
Requirement Analysis and Specification – Gathering and Analysis – SRS – Formal System Specification
UNIT- III
Software Design – Overview – Characteristics – Cohesion & Coupling – Layered design – Approaches
Function Oriented Design – Structured Analysis – DFD – Structured Design – Detailed design
UNIT- IV
Object Modeling using UML – OO concepts – UML – Diagrams – Use case, Class, Interaction, Activity,
State Chart – Postscript
UNIT- V
Coding & Testing – coding – Review – Documentation – Testing – Black-box, White-box, Integration,
OO Testing, Smoke testing.
TEXT BOOK:
1. Rajib Mall, “Fundamentals of Software Engineering”, PHI 2018, 5th Edition.
REFERENCE BOOKS:
1. Roger S. Pressman, “Software Engineering - A Practitioner’s Approach”, McGraw Hill 2010, 7th
Edition.
2. Pankaj Jalote, “An Integrated Approach to Software Engineering”, Narosa Publishing House 2011,
3rd Edition.
WEB REFERENCES:
NPTEL online course – Software Engineering - https://nptel.ac.in/courses/106105182/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC15
CORE-XV: INTRODUCTION TO DATA SCIENCE
(Common paper to B.Sc.Software Applications as Elective)
III YEAR / VI SEM
OBJECTIVES:
To introduce the concepts, techniques and tools with respect to the various facets of data science
practice, including data collection and integration, exploratory data analysis, predictive modeling,
descriptive modeling and effective communication.
OUTCOMES:
To describe what Data Science is, what Statistical Inference means, identify probability
distributions, fit a model to data and use tools for basic analysis and communication
UNIT-I
Introduction to Data Science – Benefits and uses – Facets of data – Data science process – Big data
ecosystem and data science
UNIT-II
The Data science process – Overview – research goals - retrieving data - transformation – Exploratory
Data Analysis – Model building
UNIT-III
Algorithms - Machine learning algorithms – Modeling process – Types – Supervised – Unsupervised -
Semi-supervised
UNIT-IV
Introduction to Hadoop – framework – Spark – replacing MapReduce– NoSQL – ACID – CAP – BASE –
types
UNIT-V
Case Study – Prediction of Disease - Setting research goals - Data retrieval – preparation - exploration -
Disease profiling - presentation and automation
TEXT BOOK
1. Davy Cielen, Arno D. B. Meysman, Mohamed Ali, “Introducing Data Science”, manning
publications 2016.
REFERENCE BOOKS
1. Roger Peng, “The Art of Data Science”, lulu.com 2016.
2. MurtazaHaider, “Getting Started with Data Science – Making Sense of Data with Analytics”, IBM
press, E-book.
3. Davy Cielen, Arno D.B. Meysman, Mohamed Ali,“Introducing Data Science: Big Data, Machine
Learning, and More, Using Python Tools”, Dreamtech Press 2016.
4. Annalyn Ng, Kenneth Soo, “Numsense! Data Science for the Layman: No Math Added”, 2017,1st
Edition.
5. Cathy O'Neil, Rachel Schutt, “Doing Data Science Straight Talk from the Frontline”, O'Reilly
Media 2013.
6. Lillian Pierson, “Data Science for Dummies”, 2017, 2nd Edition.
WEB REFERENCES
NPTEL online course– Data Science for Engineers - https://nptel.ac.in/courses/106106179/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC16
CORE: INTRODUCTION TO CLOUD COMPUTING
(Common paper to B.Sc.Computer Science with Data Science and Computer Science with AI)
III YEAR / VI SEM
OBJECTIVES:
To understand the concepts in Cloud Computing and its Security
To understand the evolving computer model caned cloud computing.
To introduce the various levels of services that can be achieved by cloud.
OUTCOMES:
To explain and apply levels of services of Cloud
To describe the security aspects in cloud.
UNIT - I
Cloud Computing Foundation: Introduction to Cloud Computing – Move to Cloud Computing –
Types of Cloud – Working of Cloud Computing
UNIT - II
Cloud Computing Architecture : Cloud Computing Technology – Cloud Architecture – Cloud
Modeling and Design - Virtualization : Foundation – Grid, Cloud and Virtualization –
Virtualization and Cloud Computing
UNIT - III
Data Storage and Cloud Computing : Data Storage – Cloud Storage – Cloud Storage from LANs
to WANs – Cloud Computing Services : Cloud Services – Cloud Computing at Work
UNIT - IV
Cloud Computing and Security : Risks in Cloud Computing – Data Security in Cloud – Cloud
Security Services – Cloud Computing Tools : Tools and Technologies for Cloud – Cloud
Mashaps – Apache Hadoop – Cloud Tools
UNIT - V
Cloud Applications – Moving Applications to the Cloud – Microsoft Cloud Services – Google
Cloud Applications – Amazon Cloud Services – Cloud Applications
TEXT BOOK:
1. A.Srinivasan and J.Suresh, “Cloud Computing – A Practical Approach for Learning and
Implementation”, Pearson India Publications 2014.
REFERENCE BOOK:
1. Rajkumar Buyya, James Broberg, Andrzej , “Cloud Computing: Principles and
Paradigms”, Wiley India Publications 2011.
2. Arshdeep Bahga and Vijay Madisetti ,“Cloud Computing – A Hands on Approach”,
Universities Press (India) Pvt Ltd. 2014.
WEB REFERENCES:
NPTEL & MOOC courses titled Cloud computing
https://nptel.ac.in/courses/106105167/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSC18
PRACTICAL: MINI PROJECT
(Common paper to B.Sc.Software Applications, B.Sc.Computer Science with
Data Science and Computer Science with AI & B.C.A.)
Project planning:
B.Sc (Computer Science / Software Application)/BCA Major Project is an involved exercise, which has
to be planned well in advance. The topic should be chosen in the beginning of final year itself. Related
reading training and discussions of first internal project viva voce should be completed in the first term of
final year.
II Selection of team
To meet the stated objectives, it is imperative that major project is done through a team effort. Though it
would be ideal to select the team members at random and this should be strongly recommended, due to
practical consideration students may also be given the choice of forming themselves into teams with three
members. A team leader shall be selected. Team shall maintain the minutes of meeting of the team
members and ensure that tasks have been assigned to every team member in writing. Team meeting
minutes shall form a part of the project report. Even if students are doing project as groups, each one must
independently take different modules of the work and must submit the report.
IV Project management
Head of the Department / Principal of the college should publish the list of student’s project topic, internal
guide and external organization and teams agreed before the end of July. Changes in this list may be
permitted for valid reasons and shall be considered favorably by the Head of the department / Principal of
the college any time before commencement of the project. Students should submit a fortnightly report of
the progress, which could be indication of percentage of completion of the project work. The students
should ideally keep a daily activity book. Team meeting should be documented and same should be
submitted at the end of the project work.
V Documentation
Three copies of the project report must be submitted by each student (one for department library, one for
the organization where the project is done and one for the student himself/herself). The final outer
dimensions of the project report shall be 21cm X 30 cm. The color of the flap cover shall be light blue.
Only hard binding should be done. The text of the report should be set in 12 pt, Times New Roman, 1.5
spaced.
Headings should be set as follows: CHAPTER HEADINGS 16 pt, Arial, Bold, All caps, Centered.
1. Section Headings 14 pt Bookman old style, Bold, Left adjusted.
1.1 Section Sub-heading 12 pt, Bookman old style.
Title of figures tables etc are done in 12 point, Times New Roman, Italics, centered.
Content of the Project should be relevant and specify particularly with reference to the work. The report
should contain the requirement specification of the work, Analysis, Design, Coding, testing and
Implementation strategies done.
• Organizational overview (of the client organization, where applicable)
• Description of the present system
• Limitations of the present system
• The Proposed system - Its advantages and features
• Context diagram of the proposed system
• Top level DFD of the proposed system with at least one additional level of expansion
• Program List (Sample code of major functions used)
• Files or tables (for DBMS projects) list. List of fields or attributes (for DBMS projects) in each file or
table.
• Program – File table that shows the files/tables used by each program and the files are read, written to,
updated, queried or reports were produced from them.
• Screen layouts for each data entry screen.
• Report formats for each report.
2. If the project is done in an external organization, another certificate on the letterhead of the
organization is required: “Certified that his/her report titled …………………………….is a bonafide
record of the project work done by Sri/Kum…………….under my supervision and guidance, at the
……………..department of……………………… (Organization) towards partial fulfillment of the
requirement for the award of the Degree of B.Sc (Computer Science/Software Applications) / BCA
of XXX College.
3. Page numbers shall be set at right hand bottom, paragraph indent shall be set as 3.
4. Only 1.5 space need be left above a section or subsection heading and no space may be left after them.
5. References shall be IEEE format (see any IEEE magazine for detail) While doing the project keep note
of all books you refer, in the correct format and include them in alphabetical order in your reference list.
VI Project Evaluation:
Internal Assessment
There shall be six components that will be considered in assessing a project work with weightage as
indicated.
1. Timely completion of assigned tasks as evidenced by team meeting minutes 20%
2. Individual involvement, team work and adoption of industry work culture 10%
3. Quality of project documentation (Precision, stylistics etc) 10%
4. Achievement of project deliverables 20%
5 Effective technical presentation of project work 10%
6. Viva 30%
Based on the above 6 components internal mark 40 can be awarded.
External Assessment
Dissertation/Project submitted at the end of third year shall be valued by two examiners appointed by the
Controller for the conduct of practical exam. The board of examiners shall award 60 marks based on the
following components.
1. Achievement of project deliverables - 20 Marks
2. Effective technical presentation of project work - 20 Marks
3. Project Viva - 20 Marks
There shall be a common written examination conducted for all the candidates in each group together for
a minimum of 10 minutes.
(i) Requirement Specification of Project
(ii) Design of Project
(iii) Testing and Implementation of Project
-----
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSE2B
ELECTIVE: IOT AND ITS APPLICATIONS
(Common paper to B.Sc.Computer Science with Data Science and
Computer Science with AI as Core, B.Sc.Software Applications & B.C.A. as Elective)
III YEAR / VI SEM
OBJECTIVES:
To understand the concepts of Internet of Things and the application of IoT.
To Determine the Market perspective of IoT.
To Understand the vision of IoT from a global context
OUTCOMES:
Use of Devices, Gateways and Data Management in IoT.
Design IoT applications in different domain and be able to analyze their performance
Implement basic IoT applications on embedded platform.
UNIT – I
IoT & Web Technology, The Internet of Things Today, Time for Convergence, Towards the IoT
Universe, Internet of Things Vision, IoT Strategic Research and Innovation Directions, IoT Applications,
Future Internet Technologies, Infrastructure, Networks and Communication, Processes, Data
Management, Security, Privacy & Trust, Device Level Energy Issues, IoT Related Standardization,
Recommendations on Research Topics.
UNIT - II
M2M to IoT – A Basic Perspective– Introduction, Some Definitions, M2M Value Chains, IoT Value
Chains, An emerging industrial structure for IoT, The international driven global value chain and global
information monopolies. M2M to IoT-An Architectural Overview– Building an architecture, Main design
principles and needed capabilities, An IoT architecture outline, standards considerations.
UNIT - III
IoT Architecture -State of the Art – Introduction, State of the art, Architecture. Reference Model-
Introduction, Reference Model and architecture, IoT reference Model, IoT Reference Architecture-
Introduction, Functional View, Information View, Deployment and Operational View, Other Relevant
architectural views.
UNIT - IV
IoT Applications for Value Creations Introduction, IoT applications for industry: Future Factory
Concepts, Brownfield IoT, Smart Objects, Smart Applications, Four Aspects in your Business to Master
IoT, Value Creation from Big Data and Serialization, IoT for Retailing Industry, IoT For Oil and
GasIndustry, Opinions on IoT Application and Value for Industry, Home Management, eHealth.
UNIT - V
Internet of Things Privacy, Security and Governance Introduction, Overview of Governance, Privacy and
Security Issues, Contribution from FP7 Projects, Security, Privacy and Trust in IoT-Data-Platforms for
Smart Cities, First Steps Towards a Secure Platform, Smartie Approach. Data Aggregation for the IoT in
Smart Cities, Security
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
TEXT BOOK:
1. Vijay Madisetti and ArshdeepBahga, “Internet of Things: (A Hands-on Approach)”, Universities
Press (INDIA) Private Limited 2014, 1st Edition.
REFERENCE BOOKS:
1. Michael Miller, “The Internet of Things: How Smart TVs, Smart Cars, Smart Homes, and Smart
Cities Are Changing the World”, Pearson Education 2015.
2. Francis da Costa, “Rethinking the Internet of Things: A Scalable Approach to Connecting
Everything”, Apress Publications 2013, 1st Edition.
3. Waltenegus Dargie, Christian Poellabauer, "Fundamentals of Wireless Sensor Networks: Theory and
Practice”, Wiley 2014.
4. CunoPfister, “Getting Started with the Internet of Things”, O‟Reilly Media 2011.
WEB REFERENCES:
https://github.com/connectIOT/iottoolkit
https://www.arduino.cc/
http://www.zettajs.org/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-CSE2C
ELECTIVE-II(C): BLOCK CHAIN TECHNOLOGY
(Common paper to B.Sc.Computer Science with Data Science
and Computer Science with AI)
III YEAR / VI SEM
OBJECTIVES:
To understand the concepts of block chain technology
To understand the consensus and hyper ledger fabric in block chain technology.
OUTCOMES:
State the basic concepts of block chain
Paraphrase the list of consensus and Demonstrate and Interpret working of Hyper ledger Fabric
Implement SDK composer tool and explain the Digital identity for government
UNIT - I
History: Digital Money to Distributed Ledgers -Design Primitives: Protocols, Security, Consensus,
Permissions, Privacy- : Block chain Architecture and Design-Basic crypto primitives: Hash, Signature-
Hash chain to Block chain-Basic consensus mechanisms.
UNIT - II
Requirements for the consensus protocols-Proof of Work (PoW)-Scalability aspects of Block chain
consensus protocols: Permissioned Block chains-Design goals-Consensus protocols for Permissioned
Block chains.
UNIT - III
Decomposing the consensus process-Hyper ledger fabric components-Chain code Design and
Implementation: Hyper ledger Fabric II:-Beyond Chain code: fabric SDK and Front End-Hyper ledger
composer tool.
UNIT - IV
Block chain in Financial Software and Systems (FSS): -Settlements, -KYC, -Capital markets-Insurance-
Block chain in trade/supply chain: Provenance of goods, visibility, trade/supply chain finance, invoice
management/discounting.
UNIT - V
Block chain for Government: Digital identity, land records and other kinds of record keeping between
government entities, public distribution system / social welfare systems: Block chain Cryptography:
Privacy and Security on Block chain.
TEXT BOOKS:
1. Mark Gates, “Block chain: Ultimate guide to understanding block chain, bit coin, crypto
currencies, smart contracts and the future of money”, Wise Fox Publishing and Mark Gates 2017.
2. Salman Baset, Luc Desrosiers, Nitin Gaur, Petr Novotny, Anthony O'Dowd, Venkatraman
Ramakrishna, “Hands-On Block chain with Hyper ledger: Building decentralized applications
with Hyperledger Fabric and Composer”, 2018.
3. Bahga, Vijay Madisetti, “Block chain Applications: A Hands-On Approach”, Arshdeep Bahga,
Vijay Madisetti publishers 2017.
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
REFERENCE BOOKS :
1. Andreas Antonopoulos, “Mastering Bitcoin: Unlocking Digital Crypto currencies”, O'Reilly
Media, Inc. 2014.
2. Melanie Swa, “Block chain ”,O'Reilly Media 2014.
WEB REFERENCES:
NPTEL & MOOC courses titled blockchain technology
blockgeeks.comguide/what-is-block-chain-technology
https://nptel.ac.in/courses/106105184/
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE SYLLABUS
WITH EFFECT FROM 2020-2021
BCE-DSC17
CORE-XVII: PRACTICAL - VII
CASE TOOLS AND TESTING TOOLS LAB
III YEAR / VI SEM
OBJECTIVES:
To get familiarized to the usage of UML tool kit.
To understand the requirements of the software and to map them appropriately to
subsequent phases of the software development
To develop the ability to verify and validate their designs
OUTCOMES:
Students must be able to analyze and design the problem at hand.
Students should be able to use UML tools for the designing the software and test the
correctness and soundness of their software through testing tools.
LIST OF EXERCISES:
2. Study of Open source testing tools (eg. Selenium, WATIS, Apache JMeter, TestNG )
*****
UNIVERSITY OF MADRAS
B.Sc. DEGREE COURSE IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2020-2021
BCE-DSE1A
ELECTIVE-I(A): ARTIFICIAL INTELLIGENCE AND EXPERT SYSTEM
III YEAR / V SEM
OBJECTIVES:
To Acquire Knowledge on various AI Techniques and Expert Systems
To have enriched knowledge regarding heuristic search, Knowledge representation and
Expert systems
OUTCOMES:
Gain a working knowledge of the foundations of and modern applications in, artificial
intelligence heuristic search, knowledge representation and logic.
UNIT - I
Introduction: AI Problems – AI techniques – Criteria for success. Problems, Problem Spaces, Search:
State space search – Production Systems – Problem Characteristics – Issues in design of Search.
UNIT - II
Heuristic Search techniques: Generate and Test – Hill Climbing – Best-Fist, Problem Reduction,
Constraint Satisfaction, Means-end analysis.
UNIT- III
Knowledge representation issues: Representations and mappings – Approaches to Knowledge
representations – Issues in Knowledge representations – Frame Problem.
UNIT - IV
Using Predicate Logic: Representing simple facts in logic – Representing Instance and Isa relationships –
Computable functions and predicates – Resolution – Natural deduction.
UNIT - V
Representing knowledge using rules: Procedural Vs Declarative knowledge – Logic programming –
Forward Vs Backward reasoning – Matching – Control knowledge Brief explanation of Expert Systems-
Definition- Characteristics-architecture- Knowledge Engineering- Expert System Life Cycle-Knowledge
Acquisition Strategies- Expert System Tools.
TEXT BOOK:
1. Elaine Rich and Kevin Knight, Shiva Shankar Nair, “Artificial Intelligence”, McGraw-Hill
Companies, 3rd edition.
REFERENCE BOOKS:
1. Stuart Russell & Peter Norvig , “Artificial Intelligence A Modern Approach”, Perason,
2nd Edition.
2. George F Luger , “Artificial Intelligence”, Pearson 2002, 4th Edition.
3. V S Janaki Raman, K Sarukesi, P Gopalakrishnan, “Foundations of Artificial Intelligent
and Expert Systems”, MacMillan India limited.
WEB REFERENCES:
NPTEL & MOOC courses titled Artificial Intelligence and Expert Systems
https://nptel.ac.in/courses/106106140/
https://nptel.ac.in/courses/106106126/
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester:I
Skill Enhancement Course: Office Automation
125S1A
(Common to B.Sc.-CS with AI, CS with DS, Software Appl.& BCA)
Learning Resources:
Recommended Texts
1. Peter Norton, “Introduction to Computers” –Tata McGraw-Hill.
Reference Books
1. Jennifer Ackerman Kettel, Guy Hat-Davis, Curt Simmons, “Microsoft 2003”, Tata
McGraw- Hill.
Web resources : Web content from NDL / SWAYAM or open source web resources
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester: II
Quantitative Aptitude 125S2A
Common for B.C.A. , B.Sc.-SA , B.Sc.-CSc , B.Sc.-CSc-wAI , B.Sc.-CSc-wDS
Credits 2 Lecture Hours:
2 per week
Learning Objectives: (for teachers: what they have to do in the class/lab/field)
To improve the quantitative skills of the students
To prepare the students for various competitive exams
Course Outcomes: (for students: To know what they are going to learn)
CO1: To gain knowledge on LCM and HCF and its related problems
CO2: To get an idea of age, profit and loss related problem solving.
CO3: Able to understand time series simple and compound interests
CO4: Understanding the problem related to probability, and series
CO5: Able to understand graphs, charts
Units Contents
Numbers - HCF and LCM of numbers - Decimal fractions - Simplification - Square
I roots and cube roots - Average - problems on Numbers
Problems on Ages - Surds and Indices - percentage - profits and loss - ratio and
II proportion - partnership - Chain rule.
Time and work - pipes and cisterns - Time and Distance - problems on trains - Boats
III and streams - simple interest - compound interest - Logarithms - Area - Volume and
surface area - races and Games of skill.
Permutation and combination - probability - True Discount - Bankers Discount -
IV Height and Distances - Odd man out & Series.
Calendar - Clocks - stocks and shares - Data representation - Tabulation - Bar Graphs -
V Pie charts - Line graphs
Learning Resources:
Recommended Texts
1. “Quantitative Aptitude”, R.S. AGGARWAL., S. Chand & Company Ltd.,
Web resources: Authentic Web resources related to Competitive examinations
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: I Semester: II
Problem Solving Techniques 125S2B
Course Outcomes: (for students: To know what they are going to learn)
CO1: Understand the systematic approach to problem solving.
CO2: Know the approach and algorithms to solve specific fundamental problems.
CO3: Understand the efficient approach to solve specific factoring-related problems.
CO4: Understand the efficient array-related techniques to solve specific problems.
CO5: Understand the efficient methods to solve specific problems related to text processing.
Understand how recursion works.
Units Contents
Introduction: Notion of algorithms and programs – Requirements for solving problems
by computer – The problem-solving aspect: Problem definition phase, Getting started
I on a problem, The use of specific examples, Similarities among problems, Working
backwards from the solution – General problem-solving strategies - Problem solving
using top-down design – Implementation of algorithms – The concept of Recursion.
Factoring Methods: Finding the square root of a number – The smallest divisor of an
integer – Greatest common divisor of two integers - Generating prime numbers –
III Computing the prime factors of an integer – Generation of pseudo-random numbers -
Raising a number to a large power – Computing the nth Fibonacci number.
Text Processing and Pattern Searching: Text line length adjustment – Left and right
V justification of text – Keyword searching in text – Text line editing – Linear pattern
search.Recursive algorithms: Towers of Hanoi – Permutation generation.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Learning Resources:
Recommended Texts
1. R. G. Dromey, How to Solve it by Computer, Pearson India, 2007.
Reference Books
1. George Polya, Jeremy Kilpatrick, The Stanford Mathematics Problem Book: With
Hints and Solutions, Dover Publications, 2009 (Kindle Edition 2013).
2. Greg W. Scragg, Problem Solving with Computers, Jones & Bartlett 1st edition, 1996.
Web resources
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: II Semester: IV
Emotional Intelligence 225S4A
Common for B.C.A. , B.Sc.-SA , B.Sc.-CSc , B.Sc.-CSc-wAI , B.Sc.-CSc-wDS
Credits 2 Lecture Hours: 2 per
week
Learning Objectives: (for teachers: what they have to do in the class/lab/field)
To enable the students to understand the concepts of emotional intelligence
To teach the students on aspects relating to personality Analysis Self-analysis,
Positive and Negative traits
Course Outcomes: (for students: To know what they are going to learn)
1. After completion of subjects students understand and application of Emotional
Intelligence.
Units Contents
Introduction – Emotional Intelligence – Meaning, Benefits, *Importance of emotions –
I Self –awareness and competencies Psychological Needs, Emotional quotient Vs.
IntelligenceQuotient.
Personality Analysis – Distinct Personality Type – Handwriting Analysis, color
II preference,listening, profile, self-esteem, *Will Power, Confidence.
Reference Books:
1. Dr. Aparna Chattopadhyaym What’s Your Emotional IQ, Pustak Mahal, May 2004.
2. Jill Dann, Hodder & Stoughton, Emotional Intelligence In a Week, 10 Edition, 2007.
3. Daniel Goleman, Emotional Intelligence: Why It can matter More than IQ.
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Year: II Semester: IV
Technical Writing 225S4B
Common for B.C.A. , B.Sc.-SA , B.Sc.-CSc , B.Sc.-CSc-wAI , B.Sc.-CSc-wDS
Credits 2 Lecture Hours: 2 per
week
Learning Objectives: (for teachers: what they have to do in the class/lab/field)
This course is designed to guide students towards rhetorical, professional, and
compositional competencies necessary to ethically and effectively create and analyse
technical documents and communication.
Technical communication competency will be accomplished through a structured
exploration of professional/technical contexts and through the production of several
documents and projects typical to many forms of technical writing
Course Outcomes: (for students: To know what they are going to learn)
1. Students will learn to analyse communication-related problems and develop solutions
through the composition of technical documents from a number of genres and within
several settings (i.e., print, web, interactive software) and contexts (e.g., academic,
corporate, non-profit, governmental).
2. Students will explore rhetorical and professional strategies in order to discover howto
clearly identify and address audiences and stakeholders, organizational contexts, and
ethical concerns in the act of communication
Units Contents
What is technical writing?Difference between technical writing and other forms of
I writing. Qualities and qualifications of technical writers.
Principlesoftechnicalwriting;stylesintechnicalwriting;clarity,precision,coherenceand
IV logical sequence in writing.
Learning Resources:
Text Books
1. Kogent Learning, Solutions Inc., HTML 5 in simple steps Dreamtech Press
2. A beginner’s guide to HTML NCSA,14th May,2003
3. Murray,Tom/Lynchburg Creating a Web Page and Web Site College,2002
Reference Books
1. Web Designing & Architecture-Educational Technology Centre, University of
Buffalo
2. Steven M. Schafer HTML, XHTML, and CSS Bible, 5ed Wiley India
3. John Duckett Beginning HTML, XHTML, CSS, andJavaScript, Wiley India
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Course Outcomes: (for students: To know what they are going to learn)
CO1:Understand basics of computer and its related terminology.
CO2:Write, Edit & Print documents using MS-WORD & EXCEL
CO3:Understand various software used for Desktop Publishing andwould be able to create
and design documents with text and graphics like newspaper ad, wedding cards, visiting
cards, greeting cards etc.
CO4:Using PageMaker, CorelDraw & Photoshop. Understand Colourconcept in Printing
Units Contents
I Computer Fundamentals - Generations of Computer, Advantage and disadvantage of
Computer, Block Diagram of a Computer, Description of Different parts of a
computer. System Software and Application Software MS Office Introduction to MS
Office, Word Processing Software, Electronic Spreadsheet, MS Paint
List of Programs
1. Using windows explorer and other windows elements
2. Creating and opening a document in page maker
3. Formatting and editing a document
4. Saving and printing a given document
5. Insertion of text and graphics in a given document from external source
6. Using columns utility, to give the document column look
UNIVERSITY OF MADRAS
B.Sc. DEGREE PROGRAMME IN COMPUTER SCIENCE
SYLLABUS WITH EFFECT FROM 2023-2024
Learning Resources:
1. Desk Top Publishing From A to Z by Bill Grout and Osborne; McGraw Hill
2. DTP (Desk Top Publishing) for PC user by Houghton; Galgotia Publishing House
Pvt. Ltd., Daryaganj, New Delhi.
3. ADOBE PAGEMAKER 6.5 - Shashank Jain & Satish Jain - First Edition 2001, BPB
Publications
4. DESKTOP PUBLISHING ON PC-M.C. Sharma, BPB Publications
5. Corel draw the Official Guide By Gray David Bouton, Corel Press.
6. The complete Reference Getting Started with Page Maker, McGraw-Hills
7. Adobe Photoshop CS2 Classroom In A Book (2020), Adobe Press.
8. Computers Today S.K.Basandra, Galgotia Publications.
9. Microsoft Office: Will Train, Gini Courter, Annette Marquis BPB Publication.
Suggested equivalent online courses:
http://www.nptelvideos.com/adobe/adobe photoshop tutorials.php
https://onlinecourses.swayam2.ac.in/cec20 cs05/preview
https://eskillindia.org/Course/course detail/117206920200221051647
https://www.udemy.com/course/desktop-publishing-for-you/
https://www.youtube.com/watch?v=FJYgNUYUvZe