CSE BTech Third Year
CSE BTech Third Year
(CS501)
References:
1. "Introduction to Algorithms" by Cormen, Leiserson, Rivest, Stein, MIT Press, 2002.
2. "The Design and Analysis of Computer Algorithms" by Aho, Hopcroft, Ullman,
Pearson, 2007.
3. "Algorithm Design" by Kleinberg and Tardos, Pearson, 2005.
1
JAVA PROGRAMMING
(CS502)
Objective: The goal of subject is to provide the students a broad exposure to the
advance object oriented programming field in order to be prepared for follow-on study.
Unit Topic
I Java Basics History of Java, Java buzzwords, datatypes, variables, scope and
life time of variables, arrays, operators, expressions, control statements, type
conversion and costing, simple java program, classes and objects – concepts of
classes, objects, constructors, methods, access control, this keyword, garbage
collection, overloading methods and constructors, parameter passing,
recursion, string handling.
II Packages and Interfaces : Defining, Creating and Accessing a Package,
Understanding CLASSPATH, importing packages, differences between classes
and interfaces, defining an interface, implementing interface, applying
interfaces, variables in interface and extending interfaces. Exploring packages –
Java.io, java.util. Exception handling and multithreading – Concepts of
exception handling, benefits of exception handling, Termination or resumptive
models, exception hierarchy, usage of try, catch, throw, throws and finally, built
in exceptions, creating own exception sub classes. Differences between multi
threading and multitasking, thread life cycle, creating threads, synchronizing
threads, daemon threads, thread groups.
III Event Handling : Events, Event sources, Event classes, Event Listeners,
Delegation event model, handling mouse and keyboard events, Adapter
classes, inner classes.The AWT class hierarchy, user interface components-
labels, button, canvas, scrollbars, text components, check box, check box
groups, choices, lists panels – scrollpane, dialogs, menubar, graphics, layout
manager – layout manager types – boarder, grid, flow, card and grib bag.
IV Applets – Concepts of Applets, differences between applets and applications,
life cycle of an applet, types of applets, creating applets, passing parameters to
applets.
Swing – Introduction, limitations of AWT, MVC architecture, components,
containers, exploring swing- JApplet, JFrame and JComponent, Icons and
Labels, text fields, buttons – The JButton class, Check boxes, Radio buttons,
Combo boxes, Tabbed Panes, Scroll Panes, Trees, and Tables.
V Networking – Basics of network programming, addresses, ports, sockets, simple
client server program, multiple clients, Java .net package, Web Servers and
Servlets: Tomcat web server, Introduction to Servelets: Lifecycle of a Serverlet,
Web Server operations, general server characteristics, Security Issues, Structure
of Web Application, Deploying Web Application, Introduction to Model View
Controller (MVC) Architecture, its structure, components.
.
References:
1. Java; the complete reference, Herbert schildt, TMH, 2011
2. Understanding OOP with Java, updated edition, T. Budd, pearson education, 2000.
3. An Introduction to programming and OO design using Java, J.Nino and F.A. Hosch, John
wiley & sons, 2001.
2
THEORY OF AUTOMATA & FORMAL LANGUAGE
(CS503)
Objective: The objective of this course is to provide basic definitions that are
associated with theory of computation and to give an overview, applications,
environment of computation.
Unit Topic
I Introduction: Alphabets, Strings and Languages; Automata and Grammars,
Chomsky’s classification. Finite Automata: Deterministic finite Automata
(DFA)-Formal Definition, Simplified notation: State transition graph, Transition
table, Language of DFA, Nondeterministic finite Automata (NFA), NFA with
epsilon transition, Language of NFA, Equivalence of NFA and DFA,
Minimization of Finite Automata, Distinguishing one string from other, Myhill-
Nerode Theorem.
II Regular Expression: Regular expression (RE), Definition, Operators of regular
expression and their precedence, Algebraic laws for Regular expressions,
Kleen’s Theorem, Regular expression to FA, DFA to Regular expression, Arden
Theorem,
Regular Languages and Its Properties: Non Regular Languages, Pumping
Lemma for regular Languages. Application of Pumping Lemma, Closure
properties of Regular Languages, Decision properties of Regular Languages,
FA with output: Moore and Mealy machine, Equivalence of Moore and Mealy
Machine, Applications and Limitation of FA.
III Context free grammar (CFG) and Context Free Languages (CFL):
Definition, Examples, Derivation, Derivation trees, Ambiguity in Grammer,
Inherent ambiguity, Ambiguous to Unambiguous CFG, Useless symbols,
Simplification of CFGs, Normal forms for CFGs: CNF and GNF, Closure
properties of CFLs, Decision Properties of CFLs: Emptiness, Finiteness and
Memership, Pumping lemma for CFLs.
IV Push Down Automata (PDA): Description and definition, Instantaneous
Description, Language of PDA, Acceptance by Final state, Acceptance by empty
stack, Deterministic PDA, Equivalence of PDA and CFG, CFG to PDA and
PDA to CFG, Two stack PDA.
V Turing machines (TM): Basic model, definition and representation,
Instantaneous Description, Language acceptance by TM, Variants of Turing
Machine, TM as Computer of Integer functions, Universal TM, Church’s Thesis.
Recursive and Recursively Enumerable languages.
Undecidability: Halting problem, Introduction to Undecidability, Undecidable
problems about TMs. Post correspondence problem (PCP), Modified PCP,
Introduction to recursive function theory.
References:
1. J Hopcroft, JD Ullman, R Motwani, Introduction to Automata Theory, Languages and
Computation, Pearson, 2006.
2. M Sipser, Introduction to the Theory of Computation, Thomson, 2006.
3
SOFTWARE ENGINEERING
(CS504)
Objective: The course is aimed at enhancing skills that will enable the student to
develop business software’s that are simple reliable and capable of modification as per
requirement.
Unit Topic
I Introduction to Software Engineering, Software Components, Software
Characteristics, Software Crisis, Software Engineering Processes.
Software Development Life Cycle (SDLC) Models: Water Fall Model,
Prototype Model, Spiral Model, Evolutionary Development Models, Iterative
Enhancement Models.
II Software Requirement Specifications (SRS). Requirement Engineering Process:
Elicitation, Analysis, Documentation, Review and Management of User Needs,
Feasibility Study, Information Modeling, Data Flow Diagrams, Entity
Relationship Diagrams, Decision Tables, SRS Document, IEEE Standards for
SRS. Software Quality Attributes, Software Quality Assurance (SQA):
Verification and Validation, SQA Plans, Software Quality Frameworks, ISO
9000 Models, SEI-CMM Model.
III Software Design: Basic Concept of Software Design, Architectural Design, Low
Level Design: Modularization, Design Structure Charts, Pseudo Codes, Flow
Charts, Coupling and Cohesion Measures, Design Strategies: Function Oriented
Design, Object Oriented Design, Top-Down and Bottom-Up Design. Software
Measurement and Metrics: Various Size Oriented Measures: Halestead’s
Software Science, Function Point (FP) Based Measures, Cyclomatic Complexity
Measures: Control Flow Graphs.
IV Software Testing: Testing Objectives, Unit Testing, Integration Testing,
Acceptance Testing, Regression Testing, Testing for Functionality and Testing
for Performance, Top-Down and Bottom-Up Testing Strategies: Test Drivers
and Test Stubs, Structural Testing (White Box Testing), Functional Testing
(Black Box Testing), Test Data Suit Preparation, Alpha and Beta Testing of
Products. Static Testing Strategies: Formal Technical Reviews (Peer Reviews),
Walk Through, Code Inspection, Compliance with Design and Coding
Standards.
V Software Maintenance and Software Project Management, Software as an
Evolutionary Entity, Need for Maintenance, Categories of Maintenance:
Preventive, Corrective and Perfective Maintenance, Cost of Maintenance,
Software Re-Engineering, Reverse Engineering. Software Configuration
Management Activities, Change Control Process, Software Version Control, An
Overview of CASE Tools. Estimation of Various Parameters such as Cost,
Efforts, Schedule/Duration, Constructive Cost Models (COCOMO), Resource
Allocation Models, Software Risk Analysis and Management.
References:
1. Software Engineering: A Practitioner’s Approach, Pressman Roger, TMH, 2009.
2. An Integrated Approach to Software Engineering, Pankaj Jalote. Narosa Pub, 2014.
3. Software Engineering Concepts: Richard Fairly, Tata McGraw Hill, 2015.
4
DESIGN & ANALYSIS OF ALGORITHM LAB
(CS551)
LIST OF EXPERIMENTS
5
JAVA PROGRAMMING LAB
(CS552)
LIST OF EXPERIMENTS
1. Write a program to display the default value of all primitive data types in Java.
2. Write a Java program to sort given list of numbers.
3. Write a Java program to implement linear search.
4. Write a Java program to implement binary search.
5. Write a java program to add two given matrices.
6. Write a java program to multiply two given matrices.
7. Write a java program for sorting a given list of names.
8. Write a java program that checks whether a given string is a palindrome or not.
9. Write a java program that performs call by value and call by reference.
10. Write a java program that illustrates the simple inheritance.
11. Write a java program that illustrates the multilevel inheritance.
12. Write a java program that demonstrates the difference between method overloading and
overriding.
13. Write a java program that demonstrates the difference between method overloading and
constructor overloading.
14. Write a java program that describes the exception handling mechanism.
15. Write a java program that uses try & catch blocks and check whether the given array size
is negative or not.
16. Write a java program that describes the user defined exception.
17. Write a java program that illustrates the creation of threads by using runnable class.
18. Write a java program that illustrates the multiple inheritances by using interfaces.
19. Write a java program to create a package named p1, and implement this package in ex1
class.
20. Write a java program to create a package named my pack, and import it in circle class.
21. Write a java program that illustrates the example for abstract class.
22. Write a java program that describes the life cycle of an applet. - A java program to
Create a dialog box and menu. - A java program to create a grid layout control.
23. A java program to create a border layout control.
24. Write an Applet that creates a simple calculator.
6
SOFTWARE ENGINEERING LAB
(CS553)
LIST OF EXPERIMENTS
7
COMPUTER NETWORKS
(CS601)
References:
1. AS Tanenbaum, DJ Wetherall, Computer Networks, Prentice-Hall, 2010. .
2. LL Peterson, BS Davie, Computer Networks: A Systems Approach, Morgan-Kauffman,
2011.
3. W Stallings, Cryptography and Network Security, Principles and Practice, Prentice-Hall,
2005.
COMILER DESIGN
(CS602)
Objective: To learn the concepts of Artificial Intelligence and the methods of solving
problems using Artificial Intelligence.
Unit Topic
I Introduction: Introduction to Artificial Intelligence, Foundations and History of
Artificial Intelligence , Application of Artificial Intelligence
Communication - Communication among agents, natural language processing,
formal grammar, parsing, grammar
II Introduction to Search: Searching for solutions, Uniformed search strategies,
Informed search Strategies, Local search algorithms and optimistic problems,
Adversarial Search, Search for games, Alpha - Beta pruning.
III Knowledge Representation & Reasoning: Propositional logic, Theory of first
order logic, Inference in First order logic, Forward & Backward chaining,
Resolution, Probabilistic reasoning, Utility theory, Hidden Markov Models
(HMM), Bayesian Networks.
IV Decision making- Utility theory, utility functions, and Decision theoretic Expert
systems. Default reasoning, Fuzzy sets and fuzzy logic; AI languages and tools
- Lisp, Prolog,
V Pattern Recognition : Introduction, Design principles of pattern recognition
system, Statistical Pattern recognition, Parameter estimation methods - Principle
Component Analysis (PCA) and Linear Discriminant Analysis (LDA),
References:
1. Kevin Night and Elaine Rich, Nair B., “Artificial Intelligence (SIE)”, McGraw Hill,
2008.
2. Dan W. Patterson, “Introduction to AI and ES”, Pearson Education, 2007.
3. Peter Jackson, “Introduction to Expert Systems”, Pearson Education, 2011.
Python Programming
(CS604)
References:
Chun, J Wesley, Core Python Programming, Second Edition, Pearson, 2007 Reprint
2010
Essential Reading / Recommended Reading
[1] Barry, Paul, Head First Python, 2nd Edition, O Rielly, 2010
LIST OF EXPERIMENTS
LIST OF EXPERIMENTS
LIST OF EXPERIMENTS