B.sc. in Computer Science
B.sc. in Computer Science
1. Learning Outcome:
At the end of the course, students will be able to:
Understand the basics of Computer and programming
Adopt algorithmic approach to solve problems using pseudocode and flowcharts
Understand and write programs in C to implement conditions, loops, functions and other
programming constructs
Work on arrays, strings and basic file operations in C
2. Prerequisite: NIL
3. Semester: 1
4. Course Type: Compulsory
5. Course Level: 100-199
6. Theory Credit: 3
7. Practical Credit: 1
8. Number of required hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
8. Detailed Syllabus:
Unit 1: Computer Fundamentals (9 Lectures)
Introduction to computer hardware, software– application and system software. Operating
systems. Major components of a Digital Computer – ALU and CU, Memory – primary and
secondary memory. Storage devices – magnetic storage devices, optical storage devices, Input
devices– mouse, keyboard, touch-screen, scanner etc., output devices – CRT/LCD/LED monitors,
printers etc. Number systems – binary, octal, hexadecimal, BCD. Conversion between two number
systems. Signed magnitude, 1’s complement and 2’s complement representation. Character
encodings – ASCII, EBCDIC, Unicode. Basic overview of networks and the Internet, WWW.
(This is a suggestive list only. Questions need not be restricted to this list. The practical are
advised to be performed in Linux environment. )
*
***
*****
*******
*********
6. Write a program to reverse a number.
7. Write a program to compute the sum of the first n terms of the following series
S = 1+1/2+1/3+1/4+……
8. Write a program to compute the sum of the first n terms of the following series
S =1-2+3-4+5……
9. Write a function that checks whether a given string is Palindrome or not. Use this function to find
whether the string entered by user is Palindrome or not.
10. Write a function to find whether a given no. is prime or not. Use the same to generate the prime
numbers less than 100.
11. Write a program to compute the factors of a given number.
12. Write a program to display Fibonacci series (i) using recursion, (ii) using iteration
13. Write a program to calculate Factorial of a number (i) using recursion, (ii) using iteration
14. Write a program in which a function is passed address of two variables and then alter its contents.
15. Write a program which takes the radius of a circle as input from the user, passes it to another
function that computes the area and the circumference of the circle and displays the value of area
and circumference from the main() function.
16. Write a program to create an array with inputs from the user and print the same.
17. Write a program to perform following actions on an array entered by the user:
a) Print the even-valued elements
b) Print the odd-valued elements
c) Calculate and print the sum and average of the elements of array
d) Print the maximum and minimum element of array
e) Remove the duplicates from the array
f) Print the array in reverse order
The program should present a menu to the user and ask for one of the options. The menu should
also include options to re-enter array and to quit the program.
18. Write a program to take a matrix from the user and print the transpose of the same.
19. Write a program to take two matrices from the user and find the sum and product of both.
20. Write a program to perform following operations on strings:
a) Convert all lowercase characters to uppercase
b) Convert all uppercase characters to lowercase
c) Calculate number of vowels in the string
d) Reverse the string
e) Concatenate two strings without using strcat() function.
f) Concatenate two strings using strcat() function.
g) Compare two strings using strcmp()
h) Copy one string to another using strcpy()
21. Write a program that swaps two numbers using pointers.
22. Write a program to find sum of n elements entered by the user. To write this program, allocate
memory dynamically using malloc() / calloc() functions or new operator.
23. Write a function to accept two arrays as argument and returns their sum as an array.
24. Write a program to use a macro to swap two numbers.
25. Write a program to implement struct in C. Create a structure of Student with RNo, Name and other
credentials with proper datatype and print the same.
26. Write a program to implement union in C. Create a structure of Person with Pid, Name and other
credentials with proper datatype and print the same.
27. Write a C program that opens a file for reading and displays the contents of the file in binary mode
and text mode.
28. Write a C program that opens a file for reading and displays the contents of the file character by
character and line by line on the screen.
29. Write a C program to open a file and count the number of characters and lines in the file.
30. Write a C program that opens a file in append mode and allows the user to add text to the end of
the file.
1. Learning Outcome:
Student will able to learn about the structure, function and characteristics of computer systems.
Student will understand the design of the various functional units and components of
computers.
Student will identify the elements of modern instructions sets and their impact on processor
design.
Student will able to learn about the function of each element of a memory hierarchy.
Student will able to learn about identify and compare different methods for computer I/O.
Student will able to learn about basics of assembly language.
2. Prerequisite: NIL
3. Semester: 2
4. Course Type: Compulsory
5. Course Level: 100-199
6. Theory Credit: 4
7. Practical Credit: 0
8. Number of required hours:
a) Theory: 60 hrs
b) Practical: 0 hrs
c) Non Contact: 5 hrs
8. Detailed Syllabus:
UNIT 1: Introduction (4
Lectures)
Definitions of Computer Organization and Architecture, History of computer architecture, Basic
functional blocks of a computer: CPU, memory, Input-output subsystems, Control unit, Types of
register- general purpose registers, special purpose registers, index registers.
1. Learning Outcomes: After successful completion of this course, students will be able to:
Differentiate between Structured programming and Object-Oriented Programming.
Learn the concept of objects and develop the ability of imagining real life concepts as
objects and derive their properties and functions to operate these objects.
Develop programs using different object- oriented programming features such as data
bstraction, polymorphism, inheritance, exception handling etc.
2. Prerequisites: NIL
3. Semester: 3
4. Course Type: Compulsory
5. Course Level: 200-299
6. Theory Credit: 3
7. Practical Credit: 1
8. No of required hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
List of Reference Books:
a) M. T. Somashekara, D. S. Guru et-al; Object-Oriented Programming with C++, 2nd
Edition, PHI,2012.
b) Bjarne Stroustrup, The C++ Programming Language, Special Edition, Pearson Education,
2004.
c) Deitel&Deitel, C++ How to program, Pearson Education Asia, 6th Edition, 2008
d) Schildt Herbert, The Complete Reference C++, Tata McGraw Hill, 4th Edition, 2003.
9. Contents of Syllabus:
A. Theory
B. Practicals
Following Practical / Lab works to be performed preferably in Linux Environment
1. Define a class named “triangle” to represent a triangle using the lengths of the three sides. Write
a constructor to initialize objects of this class, given the lengths of the sides. Also write member
functions to check
(a) if a triangle is isosceles
(b) if a triangle is equilateral
Write a main function to test your functions.
2. Define a structure “employee” with the following specifications.
empno : integer
ename : 20 characters
basic, hra, da : float
calculate() : a function to compute net pay as basic+hra+da with float return type.
getdata() : a function to read values for empno, ename, basic, hra, da.
dispdata() : a function to display all the data on the screen
Write a main program to test the program.
3. Define a class “circle” to represent circles. Add a data member radius to store the radius of
acircle. Write member functions area() and perimeter() to compute the area and perimeter of
acircle.
4. Define a class “complex” with two data members “real” and “imag” to represent real and
imaginaryparts of a complex number. Write member functions
rpart() : to return the real part of a complex number
ipart() : to return the imaginary part of a complex number
add() : to add two complex numbers.
mul() : to multiply two complex numbers.
Write constructors with zero, one and two arguments to initialize objects.
5. Define a class “point” with two data members “xordinate” and “yordinate” to represent all points
in the two-dimensional plane by storing their x co-ordinate and y co-ordinate values. Write
member functions
dist() : to return the distance of the point from the origin.
slope(): to return the slope of the line obtained by joining this point with the origin.
Write constructors with zero, one and two arguments to initialize objects. Also write a
friend function to compute the distance between two points.
6. Define a class “string” with the following data members char *p; int size; and write member
functions to do the following (without using library function) and using dynamic memory
allocation.
• Length of the string
• Compare two strings
• Copy one string to another
• Reverse the string
Write suitable constructors and destructors. Also write a copy constructor for the class.
7. For the class “complex” defined in 4 above, overload the <<, >>, + and * operators in the usual
sense. Also overload the unary – operator.
8. Define a class “time” to store time as hour, minute and second, all being integer values. Write
member functions to display time in standard formats. Also overload the ++ and – operators to
increase and decrease a given time by one second where the minute and hour values will have to
be updated whenever necessary.
9. Define a class to store matrices. Write suitable friend functions to add and multiply two
matrices.
1. Learning Outcomes: At the end of the course, students will be able to:
Understand and apply the fundamental data structures and algorithms – such as arrays,
linked lists, stacks, queues, trees, sorting and searching algorithms using C
programming language.
Analyze the time and space complexity of different algorithms and choose the
appropriate algorithm for a given problem.
Develop efficient algorithms to solve various computational problems by utilizing data
structures and algorithms covered in the course.
2. Prerequisites: NIL
3. Semester: 4
4. Course Type: Elective
5. Course Level: 200-299
6. Theory Credit: 3
7. Practical Credit: 1
8. No of required hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Reference Books:
e) Weiss, Mark Allen. “Data Structures and Algorithm Analysis in C”. 3rd ed., Pearson, 2012
f) Sedgewick, Robert. “Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting,
Searching, and Graph Algorithms”. 3rd ed., Addison-Wesley Professional, 2002.
g) Goodrich, Michael T., and Roberto Tamassia. “Data Structures and Algorithms in C”. 2nd ed.,
Wiley, 2011.
h) Gilberg, Richard F., and Behrouz A. Forouzan. “Data Structures: A Pseudocode Approach with
C”. Narosa Publishing House, 2009.
Time and Space complexity of algorithms, average case and worst case analysis, asymptotic
notation as a measure of algorithm complexity, Ө and O notation. Analysis of sorting algorithms-
Selection sort, Bubble sort, Insertion sort, Heap sort, Quick sort and analysis of searching
algorithms – linear search and binary search.
List of Practical
(This is a suggestive list only. Questions need not be restricted to this list. The practical are
advised to be performed in Linux environment using C programming language.)
31. Write a program to declare an array and initialize the values according to the user. Now
ask the user for a number n and return the nth element from the array.
32. Write a program to implement array initialized with the numbers divisible by three up to
30. Write a function which accepts the array and return the positions of the even numbers
in the array.
33. Implement linked list in a program by writing functions for the following:
a. Create a singly linked list of n nodes
b. Count the number of nodes in the list
c. Print the values of all the nodes
d. Add a node at first, last and kth position in the linked list
e. Delete a node from first, last and kth position
f. Search for an element in the list. If found, return the position of the node. If not
found, return a negative value.
34. Write a program to implement doubly linked list.
35. Write a function to concatenate two linked lists.
36. Write a program to take a number k and split the linked list after kth position.
37. Write a program to merge two sorted linked lists.
38. Write a program to implement list of lists.
39. Write a program to implement stack using array. Use push and pop operations on the array
representation of the stack. Check whether the stack is full or empty.
40. Write a program to implement stack using linked list. Use push and pop operations on the
stack by inserting nodes and deleting nodes from the linked list. Also check if the stack is
full or empty.
41. Write a program to evaluate a simple postfix expression using stack.
42. Write a program to convert a decimal number into binary number using stack.
43. Write a program to implement queue using array. Add new elements to the queue and
remove elements from the queue represented by array. Check whether the queue is full or
empty.
44. Write a program to implement queue using linked list. Add new elements to the queue and
remove elements from the queue represented by linked list. Also check whether the queue
is full or empty.
45. Implement binary search and linear search algorithms on arrays.
46. Implement binary search tree using array by writing a program to:
a. Create a binary search tree using array
b. Print the prefix notation of the BST
c. Print the infix notation of the BST
d. Print the postfix notation of the BST
e. Search for an element in the BST
47. Implement binary search tree using linked list by writing a program to:
a. Create a binary search tree using linked list
b. Print the prefix notation of the BST
c. Print the infix notation of the BST
d. Print the postfix notation of the BST
e. Search for an element in the BST
48. Implement following sorting algorithms:
Bubble sort, Insertion sort , Selection sort, Counting sort
1. Learning Outcome:
On successful completion of this course, the student should be able to:
Learn database concepts and its architectural components.
Describe different data models used for designing a database.
To create a database using relational models and entity relationships concepts
Normalize a database into various normal forms
Design SQL queries to handle a relational database.
2. Prerequisite: NIL
3. Semester: 4
4. Course Type: Compulsory
5. Course Level: 200-299
6. Theory Credit: 3
7. Practical Credit: 1
8. Number of required hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
8. Detailed Syllabus:
UNIT-1: Introduction to Database Management Systems (5 Lectures)
Basic Definition and Concepts: Data, Information, Meta Data, Data Dictionary, Database,
Fields, Records and Files. Definition of Database Management System (DBMS), Primary
Functions of DBMS, Traditional File approach, Traditional file approach versus database
management system approach, Disadvantages of Traditional File System, Need of a DBMS,
Components of a DBMS, Advantages of DBMS, Disadvantages of Database Systems,
Various uses of database System Applications, Database Users: End users or naive users,
Online users, Application Programmers, Database Administrator(DBA), Responsibilities
of DBA.
Lab Contents:
1. Learning Outcome: After successful completion of this course, students will be able to:
Learn the concepts of set, relation, and function from Computer Science point of view.
Understand the basic idea of counting and use it in counting under various constraints.
Understand graphs and its different representations in Computers. How to model real life
problems using graphs. Learn a few basic graph traversal algorithms.
Understand Mathematical Logic from algorithmic point of view.
2. Prerequisities: Nil
3. Semester: 4
4. Course Type: Elective
5. Course Level: 200-299
6. Theory Credit: 4
7. Practical Credit: 0
8. No of Hours:
a) Theory: 60 hrs
b) Practical: 0 hrs
c) Non Contact: 5 hrs
9. List of Books:
a) Elements of Discrete mathematics, C.L. Liu , D.P. Mahopatra; 2nd Edition , Tata
McGraw Hill, 1985,
b) Discrete Mathematics and Its Applications, Kenneth Rosen, Sixth Edition ,McGraw
Hill 2006.
c) Introduction to Algorithms, T.H. Coremen, C.E. Leiserson, R. L. Rivest; 3rd edition
Prentice Hall of India, 2009.
d) Discrete Mathematics and Graph Theory; Grimaldi, 5th Edition; 2019, Pearson.
1. Learning Outcomes: After successful completion of this course, students will be able to:
Learning Outcomes: After completing this course, students will have understanding of the
internal structure and usage of various components related to an operating system.
2. Prerequisites: NIL
3. Semester: 4
4. Course Type: Elective
5. Course Level: 200-299
6. Theory Credit: 3
7. Practical Credit: 1
8. No of required hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Reference Books:
i) Operating System Concepts, Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Wiley
j) Modern Operating Systems, Andrew S. Tanenbaum, Prentice-Hall Of India Pvt. Limited
Practicals:
Basic linux commands: pwd, ls, cd, mkdir, rmdir, rm, touch, man, cp, mv, locate, head,
tail Advanced commands: echo, cat, sudo, df, tar, apt-get, chmod, hostname, useradd,
passwd, groupadd, grep, sed, uniq, wc, od, gzip, gunzip, find, date, cal, clear, top, ps, kill
Shell scripting in linux: shell, types of shell, shell script, echo command, shell variables,
special variables ($$, $0, $n, $#, $?, $!), array, assignment operator (=), equality operator
(==), not equality operator (!=), arithmetic operators (+,-, *, /, %), comparison operators
(-eq, -neq, -gt, -lt, - ge, -le), logical operators (!,-o, -a), if...else statement, case...esac
statement, while loop, for loop, break statement, continue statement, shell functions 7
classes
Using system calls in C program in linux: fork(), exec(), exit(), getpid(), mkdir(), rmdir()
etc.
Particulars of course designer:
Name: Dr. Hasin Afzal Ahmed
Contact No.: 8011810533
E-mail id: [email protected]
Paper Name: Computer Networks
1. Learning Outcome: After completing this course, students
Student will able to learn about the general principles of data communication.
Student will able to learn about how computer networks are organized with the concept of
layered approach.
Student will able to learn about how signals are used to transfer data between nodes.
Student will able to learn about how packets in the Internet are delivered.
Student will able to learn about how routing protocols work.
Student will able to learn about functions of transport layer
Student will able to learn about functions of application layer
2. Prerequisites: NIL
3. Semester: 5
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 3
7. Practical Credit: 1
8. No of Hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Books:
a) B. A. Forouzan: Data Communications and Networking, Fourth edition, THM, 2007.
b) A. S. Tanenbaum: Computer Networks, Fourth edition, PHI , 2002.
Basics of ALOHA protocols, Basics of CSMA/CD protocols, Ethernet LANS, Connecting LAN
and back-bone networks- Repeaters, Hubs, Switches, Bridges, Router and Gateways
Unit II: Data types, operators and control statements (12 hrs)
Java as strongly typed language, primitive data types, integer data types: byte, short, int and long,
floating point data types: float and double, character data type, boolean data type, literals: integer
literals, floating-point literals, boolean literals, character literals and string literals, declaring a
variable, dynamic Initialization, the scope and lifetime of variables, type-casting in java, one
dimensional array, multi dimensional array, arithmetic operators: the basic arithmetic operators,
the modulus operator, arithmetic compound assignment operators, increment operator and
decrement operator, bitwise operators, relational operators, short circuit logical operator, the
assignment operator, branching statements: if-else and switch-case statements, looping statements:
while, do-while, for and for-each statements, jump statements: break and continue
(b) Practical
Java programs to demonstrate the use of data types and operators
Java input through Scanner class and JOptionPane class
Java programs to demonstrate the use of control statements.
Java programs to demonstrate the use of classes, objects, visibility modes, constructors
and destructor.
Java programs to demonstrate the use of inheritance and polymorphism.
Java programs to demonstrate the use of polymorphism.
Java programs to handle strings,Java programs implementing exception handling.
Demonstrating the use and creation of packages in java.
Java program with JFrame, JTextfield and JButton with event handling
Using JLabel, JTextArea and JPasswordField in java with event handling
Working with layout managers in JFrame
Using JCheckBox, JRadioButton and JComboBox in a JFrame
Connecting JFrame components to a DBMS
2. Prerequisites: NIL
3. Semester: 5
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 3
7. Practical Credit: 1
8. No of Hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Books:
c) Core Python Programming, R. Nageswara Rao, Dreamtech Press.
d) Python: The Complete Reference, Martin C. Brown, McGraw Hill Education.
e) http://docs.python.org/3/tutorial/index.html
(b) Practical
Introduction to Python console, operators, input and output statements.
Python control statements and functions
Data Structures in python
Exception Handling
File Handling
Object Oriented Python programming
Introduction to libraries (NumPy, Matplotlib, OpenCV)
Python SQL Database Connection and database operations
1. Learning Outcome: On successful completion of this course, the student should be able to:
Determine the primary problems that impact all software development processes.
Choose relevant software development processes models, methodologies, and
strategies for managing a specific software development process, and justify the
choices
Implement different software estimation metrics such as cost, effort size, staffing etc.
Describe various software design approaches and various coding and testing strategies
used in software engineering principles
Know about software reliability and how to calculate software maintenance cost.
2. Prerequisites: NIL
3. Semester: 5
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 4
7. Practical Credit: 0
8. No of Hours:
a) Theory: 60 hrs
b) Practical: 0 hrs
c) Non Contact: 5 hrs
9. List of Books:
c) Rajib Mall: Fundamentals of Software Engineering; PHI Learning Pvt. Ltd.
d) Roger S. Pressman: Software Engineering: A practitioner’s Approach; McGraw Hill.
1. Learning Outcome: At the end of the course, students will be able to:
Understand the basic concept of web applications and web services.
Design basic well-structured web page using HTML and CSS
Develop the ability to implement interactive elements and dynamic content using basic
JavaScript
Develop a foundational understanding of server-side scripting using PHP
2. Prerequisities: NIL
3. Semester: 5
4. Course Type: Compulsory
5. Course Level: 300-399
6. Theory Credit: 3
7. Practical Credit: 1
8. No of Hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Books:
e) Jackson J.C. (2007). Web Technologies: A Computer Science Perspective. Pearson.
f) Duckett, J. (2011). HTML and CSS: Design and Build Websites. John Wiley & Sons.
g) Robbins, J. N. (2018). A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics.
O'Reilly Media.
h) Robbins, J. N. (2018). Learning Web Design: A Beginner's Guide. O'Reilly Media.
i) Haverbeke, M. (2018). Eloquent JavaScript. No Starch Press.
j) Welling, L., & Thomson, L. (2016). PHP and MySQL Web Development (5th ed.). Addison-
Wesley Professional.
B. List of Practical
(This is a suggestive list only. Questions need not be restricted to this list.)
1. Create a basic HTML webpage structure with a heading, paragraph, and an image.
2. Build a navigation menu using an unordered list (<ul>) with clickable links.
3. Implement a form with input fields for name, email, and a submit button.
4. Create a table with multiple rows and columns to display tabular data.
5. Design an image gallery using HTML and CSS with proper padding and border.
6. Embed a YouTube video on a webpage using the <iframe> tag.
7. Implement an ordered list (<ol>) to display a step-by-step tutorial or instructions.
8. Create a dropdown select menu (<select>) with multiple options.
9. Use HTML5 semantic tags (such as <header>, <nav>, <section>, <article>, <footer>) to
structure and organize content on a webpage.
10. Build a registration form with fields for name, email, password, date of birth, address and
other such fields with a submit button. Include appropriate input types, labels and
placeholders.
11. Style a heading element with a custom font, colour and background.
12. Apply different background colors to alternate rows in a table.
13. Implement a hover effect on a button that changes its background colour or adds a solid
border.
14. Style a form input field with custom border, padding, and background color.
15. Implement a CSS tooltip that displays additional information when hovering over an
element.
16. Build a simple JavaScript calculator that can perform basic arithmetic operations.
17. Create a button that, when clicked, appends a new paragraph element with a specific text
content to an existing div element.
18. Implement a function that changes the innerText of a paragraph element to display a
random number between 1 and 10 every time a button is clicked.
19. Build a form with input fields for name and email. When the form is submitted, use
innerHTML to display a confirmation message with the entered name and email on the
webpage.
20. Build a form with input fields for email, password and confirm password. When the form
is submitted, use an alert to display a success message if the password and confirm
password values matches, otherwise show an error alert. Use JavaScript for the validation.
21. Create a list of items. Add a click event listener to each item so that when clicked, the
background color of the clicked item changes.
22. Write a PHP script to display the current date and time on a webpage.
23. Write a PHP script to connect to a MySQL database and fetch data from a table.
24. Create a registration form with fields for username, email, and password. Implement
server-side validation to check for duplicate usernames or invalid email formats. Store the
user registration data in a MySQL database. Provide feedback to the user upon successful
registration or display appropriate error messages.
25. Design a webpage that displays a list of notices retrieved from a MySQL database.
Implement functionality to add new notices to the database using a form. Allow users to
view and delete individual notices. Apply appropriate styling to the notices and ensure
proper validation and sanitization of user input.
2. Prerequisites: NIL
3. Semester: 6
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 3
7. Practical Credit: 1
8. No of Hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Books:
a) Rich & Knight, Artificial Intelligence – Tata McGraw Hill, 2nd edition, 1991.
b) Russell & Norvig, Artificial Intelligence-A Modern Approach, LPE, Pearson Prentice
Hall, 2nd edition, 2005.
c) W.F. Clocksin and Mellish, Programming in PROLOG, Narosa Publishing House, 3rd
edition, 2001.
d) DAN.W. Patterson, Introduction to A.I and Expert Systems – PHI, 2007.
e) Ivan Bratko, Prolog Programming for Artificial Intelligence, Addison-Wesley,
Pearson Education, 3rd edition, 2000.
10. Contents of Syllabus:
A. Theory
Detailed Syllabus:
UNIT 1: Introduction (4 Hours)
Introduction to Artificial Intelligence, Background and Applications, Turing Test and Rational
Agent approaches to AI, Introduction to Intelligent Agents, their structure, behavior and
environment.
Practical:
Write a prolog program to calculate the sum of two numbers.
Write a prolog program to find the maximum of two numbers.
Write a prolog program to calculate the factorial of a given number.
Write a prolog program to calculate the nth Fibonacci number.
Write a prolog program, insert_nth(item, n, into_list, result) that asserts that result is the
list into_list with item inserted as the nth element into every list at all levels.
Write a Prolog program to remove the nth item from a list.
Write a Prolog program, remove nth (Before, After) that asserts the After list is the Before
list with the removal of every nth item from every list at all levels.
Write a Prolog program to implement append for two lists.
Write a Prolog program to implement palindrome (List).
Write a Prolog program to implement max(X,Y,Max) so that Max is the greater of two
numbers X and Y.
Write a Prolog program to implement maxlist(List,Max) so that Max is the greatest number
in the list of numbers List.
Write a Prolog program to implement sumlist(List,Sum) so that Sum is the sum of a given
list of numbers List.
Write a Prolog program to implement two predicates evenlength(List) and oddlength (List)
so that they are true if their argument is a list of even or odd length respectively.
Write a Prolog program to implement reverse (List, Reversed List) that reverses lists.
Write a Prolog program to implement maxlist (List, Max) so that Max is the greatest
number in the list of numbers List using cut predicate.
Write a Prolog program to implement GCD of two numbers.
Write a prolog program that implements Semantic Networks/Frame Structures.
1. Learning Outcome:
After completing this course, students will know about cloud computing environment, it need and
applications.
2. Prerequisites: NIL
3. Semester: 6
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 4
7. Practical Credit: 0
8. No of Hours:
a) Theory: 60 hrs
b) Practical: 0 hrs
c) Non Contact: 5 hrs
9. List of Books:
a) Cloud Computing: Principles and Paradigms, Editors: Rajkumar Buyya, James Broberg,
Andrzej M. Goscinski, Wiley,2011
b) Enterprise Cloud Computing - Technology, Architecture, Applications, Gautam Shroff,
Cambridge University Press, 2010
c) Cloud Computing Bible, Barrie Sosinsky, Wiley-India, 2010
d) Cloud Security: A Comprehensive Guide to Secure Cloud Computing, Ronald L. Krutz,
Russell Dean Vines, Wiley- India,2010
e) Cloud computing, Ashish Bhatnagar, KATSON Books.
f) NPTEL :Cloud computing, By Prof. Soumya Kanti Ghosh, IIT Kharagpur
9. Contents of Syllabus:
A. Theory
Detailed Syllabus:
Unit 1: Introduction to Cloud Computing (10 Lectures)
Introduction, Definition, basic concepts and terminology, characteristics, goals and benefits, risks
and challenges, historical developments, clouds types, Role of networks in cloud computing,
Virtualization Technology, Enterprise knowledge clouds, Cloud Computing(NIST Model), Client
server Architecture, Client server model vs. Cloud model.
Unit 6: Case Study on Open Source and Commercial clouds (10 Lectures)
OpenStack, OpenStack Capability, OpenStack History, OpenStack Architecture, OpenStack
components, Meghamala(IITKGP), Google Cloud Platform, Microsoft Azure
1. Learning Outcome:
a) Use compiler construction tools and describes the Functionality of each stage of
compilation process
b) Construct Grammars for Natural Languages and find the Syntactical Errors/Semantic
errors during the compilations using parsing techniques
c) Analyze different representations of intermediate code.
d) Construct new compiler for new languages.
e) Participate in GATE, PGECET and other competitive examinations
2. Prerequisites: NIL
3. Semester: 6
4. Course Type: Elective
5. Course Level: 300-399
5. Theory Credit: 4
6. Practical Credit: 0
7. No of Hours:
a) Theory: 60 hrs
b) Practical: 0 hrs
c) Non Contact: 5 hrs
8. List of Books:
a) Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman (2007), Compilers:Principles, Techniques and
Tools, 2nd edition, Pearson Education, New Delhi, India.
b) Alfred V. Aho, Jeffrey D. Ullman (2001), Principles of compiler design, Indian student
edition, Pearson Education, New Delhi, India.
c) Kenneth C. Louden (1997), Compiler Construction– Principles and Practice, 1st edition,
PWS Publishing.
d) K. L. P Mishra, N. Chandrashekaran (2003), Theory of computer science- Automata
Languages and computation, 2nd edition, Prentice Hall of India, New Delhi, India.
e) Andrew W. Appel (2004), Modern Compiler Implementation C, Cambridge University Press,
UK.
f) John R. Levine, Tony Mason, Doug Brown, Lex & Yacc, O’reilly
9. Contents of Syllabus:
A. Theory
Detailed Syllabus:
UNIT 1: Introduction to Compiler (12 Lectures)
Definition of compiler, Phases of a compiler, Lexical analysis, Role of lexical analyzer, Tokens,
Patterns, Lexemes, Input buffering, Specification of tokens-strings and languages, operations on
languages, regular expressions, regular definitions, Recognition of tokens, Lexical analyzer
generator- Lex, Finite automata, From Regular expressions to automata.
Bottom Up Parsing- Reductions, Handle pruning, Shift-Reduce parsing, Conflicts during shift-
reduce parsing, LR Parser-Items, Kernel items, Non-kernel items, closure of Item Sets, The
function GOTO, LR (0) automaton, Construction of SLR parsing table, Basics of LALR parser,
Automatic parser generator-YACC.
1. Learning Outcome:
After completing this course, students will know about basic elements of Computer Graphics,
fundamental of Computer graphics algorithms along with basic mathematical foundations of
computer graphics.
2. Prerequisites: NIL
3. Semester: 6
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 3
7. Practical Credit: 1
8. No of Hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Books:
a) D. Hearn, M. Baker: Computer Graphics, Prentice Hall of India 2008.
b) J.D.Foley, A.Van Dan, Feiner, Hughes Computer Graphics Principles & Practice 2nd
edition Publication Addison Wesley 1990.
c) D.F.Rogers Procedural Elements for Computer Graphics, McGraw Hill 1997.
d) D.F.Rogers, Adams Mathematical Elements for Computer Graphics, McGraw Hill,
2nd edition 1989.
10. Contents of Syllabus:
A. Theory
Detailed Syllabus:
UNIT 1: Introduction (2 Hours)
Basic elements of Computer Graphics, Applications of Computer Graphics
Practical:
Write a program to implement DDA algorithm for line drawing.
Write a program to implement Bresenham’s line drawing algorithm.
Write a program to implement mid-point circle drawing algorithm.
Write a program to clip a line using Cohen-Sutherland line clipping algorithm.
Write a program to clip a polygon using Sutherland Hodgeman algorithm.
Write a program to apply 2D translation on a 2D object (use homogenous coordinates).
Write a program to apply 2D rotation on a 2D object (use homogenous coordinates).
Write a program to apply 2D scaling on a 2D object (use homogenous coordinates).
Write a program to apply 2D reflection of a 2D object (use homogenous coordinates).
Write a program to apply 2D shear operation on a 2D object (use homogenous coordinates).
Write a program to apply 3D translation on a 3D object (use homogenous coordinates).
Write a program to apply 3D rotation on a 3D object (use homogenous coordinates).
Write a program to apply 3D scaling on a 3D object (use homogenous coordinates).
Write a program to apply 3D reflection of a 3D object (use homogenous coordinates).
Write a program to apply 3D shear operation on a 3D object (use homogenous coordinates).
Write a program to draw Hermite/Bezier curve.
1. Learning Outcome:
f) Understanding the process of Knowledge Discovery in Databases.
g) Understand the functionality of the various data warehousing component.
h) Characterize the kinds of patterns that can be discovered by association rule mining.
i) Analysis of different types of data by clustering and classification.
2. Prerequisites: NIL
3. Semester: 6
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 3
7. Practical Credit: 1
8. No of Hours:
a) Theory: 45 hrs
b) Practical: 30 hrs
c) Non Contact: 5 hrs
9. List of Books:
a) A.K. Puzari, Data Mining Techniques, University Press.
b) J. Han, J. Pie and M. Kamber, Data Mining: Concepts and Techniques, Morgan Kaufmann.
c) P. Tan, M. Steinbach and V. Kumar, Introduction to Data Mining, Pearson Education (LPE).
d) G. K. Gupta, Introduction to Data Mining with Case Studies, PHI.
10. Contents of Syllabus:
A. Theory
Detailed Syllabus:
UNIT 1: Overview (4 Lectures)
What is Data Mining?, Knowledge Discovery in Databases (KDD) vs. Data Mining, Types of
Data, Basic Data Mining Tasks, Predictive and Descriptive data mining techniques, Supervised
and Unsupervised learning techniques, Basics of Pre-processing methods- Data Cleaning, Data
Integration and Transformation, Data Reduction, Data Visualization.
What is Data Warehouse? Multidimensional Data Model, Data Cube, Basic Components of
Multidimensional Data Model, OLAP Operations- Slicing, Dicing, Drilling, Drill-Up, Drill-Down,
Drill-Within, Drill-Across, Pivot(Rotate), Schema of Warehouse, Data Warehouse Architecture,
Metadata.
Basic Concepts of- Web Mining, Spatial Data Mining, Temporal Data Mining, Big Data Mining,
Concept of Neural Network, Genetic Algorithm.
1. Learning Outcome:
After completing this course, students will have understanding of graph theoretic concepts,
problems and associated algorithmic solutions.
2. Prerequisites: NIL
3. Semester: 6
4. Course Type: Elective
5. Course Level: 300-399
6. Theory Credit: 4
7. Practical Credit: 0
8. No of Hours:
a) Theory: 60 hrs
b) Practical: 0 hrs
c) Non Contact: 5 hrs
9. List of Books:
e) Introduction to Graph Theory, Douglas B. West, Pearson
f) Introduction to Graph Theory, Robin J. Wilson, Pearson Education Limited
g) Graph Theory with Applications to Engineering and Computer Science, Narasingh
Deo, PHI