Seventh Semester Computer Science and Engineering

This course is meant for S7 BTECH CSE students.

In computer science, the analysis of algorithms is the determination of the amount of time, storage and/or other resources necessary to execute them. Usually, this involves determining a function that relates the length of an algorithm's input to the number of steps it takes (its time complexity) or the number of storage locations it uses (its space complexity). An algorithm is said to be efficient when this function's values are small. Since different inputs of the same length may cause the algorithm to have different behaviour, the function describing its performance is usually an upper bound on the actual performance, determined from the worst case inputs to the algorithm.

The term "analysis of algorithms" was coined by Donald Knuth. Algorithm analysis is an important part of a broader computational complexity theory, which provides theoretical estimates for the resources needed by any algorithm which solves a given computational problem. These estimates provide an insight into reasonable directions of search for efficient algorithms.

In theoretical analysis of algorithms it is common to estimate their complexity in the asymptotic sense, i.e., to estimate the complexity function for arbitrarily large input. Big O notationBig-omega notation and Big-theta notation are used to this end. For instance, binary search is said to run in a number of steps proportional to the logarithm of the length of the sorted list being searched, or in O(log(n)), colloquially "in logarithmic time". Usually asymptotic estimates are used because different implementations of the same algorithm may differ in efficiency. However the efficiency of any two "reasonable" implementations of a given algorithm are related by a constant multiplicative factor called a hidden constant.

Exact (not asymptotic) measures of efficiency can sometimes be computed but they usually require certain assumptions concerning the particular implementation of the algorithm, called model of computation. A model of computation may be defined in terms of an abstract computer, e.g., Turing machine, and/or by postulating that certain operations are executed in unit time. For example, if the sorted list to which we apply binary search has n elements, and we can guarantee that each lookup of an element in the list can be done in unit time, then at most log2 n + 1 time units are needed to return an answer.

Students of S7 are expected to do a project by using latest technologies in the field of computer science.

COURSE OUTCOME

At the end of the course students will be able to:

CO 1) Understand the use of GUI (Graphical user interface) components available with Java AWT and Swing packages and design application interfaces using that components

CO 2) Learn how to connect Java programs with Databases using Database connectivity for developing applications

CO 3) Understand  the use of Java’s Servlet technology and its implementation

CO 4) To implement client- server application using TCP/IP

CO 5) Design web based user interfaces (Dynamic) using HTML, DHTML and JavaScript

CO 6) Develop simple dynamic web applications with database connectivity using JSP and PHP

CO-PO Mapping (S: Strong, M: Medium, L: Low)

 

COs \ POs

PO1

PO2

PO3

PO4

PO5

PO6

PO7

PO8

PO9

PO10

PO11

PO12

PSO1

PSO 2

CO1

 

 

S

 

L

 

 

 

M

M

 

 

M

L

CO2

L

 

M

 

M

 

 

 

 

 

 

 

L

L

CO3

M

L

M

 

M

 

 

 

 

 

L

 

M

L

CO4

M

L

M

L

L

 

 

 

 

L

 

 

L

L

CO5

L

L

L

 

M

 

 

 

 

 

 

 

L

L

CO6

M

L

L

L

M

 

 

 

M

L

 

M

M

L


Design & Analysis of Algorithms for Undergraduate students in CSE.

A compulsory course for 2016 Batch S7 CSE Students

Design of Algorithms and its Analysis