• No results found

OBJECT ORIENTED ANALYSIS AND DESIGN CS/IT

Lectures : 4 Periods/Week, Tutorial: 1 Continuous Assessment : 40

Final Exam : 3 hours Final Exam Marks : 60

Prerequisite: IT 214: C++ Programming, IT 324: Software Engineering Course Objective:

To impart the in depth knowledge of

1. OO analysis and design skills through an elaborate case study. 2. UML design diagrams

3. appropriate design patterns

4. the importance of Object Oriented Analysis and Design concepts and apply them to solve problems

5. the process of Object Oriented Analysis and Design documents for a given problem using Unified Modeling Language

6. the importance and function of each UML model throughout the process of object-oriented analysis and design.

Course Outcomes:

Upon the successful completion of this course the student will be able to 1. Use object-oriented technologies

2. Use Unified Modeling Language

3. Perform object-oriented analysis and design

4. Explain how the Unified Modeling Language (UML) represents an object-oriented system using a number of modeling views.

5. Construct various UML models (including use case diagrams, class diagrams, interaction diagrams, State chart diagrams, activity diagrams, and implementation diagrams) using the appropriate notation.

Page 173 of 173 Department of Information Technology Topics: • What is Object-Orientation • Modeling Concepts • Requirements Capture • Requirements Analysis

• Refining the Requirements Model

• Object Interaction

• Specifying Operations

• Specifying Control

• Moving Into Design

• System Design

• Object Design

• Human-Computer Interaction

• Designing Boundary Classes

• Implementation

• Reusable Components

• Managing Object-Oriented Projects Reference Books:

1. James Rumbaugh, Jacobson, Booch, “Unified Modeling Language Reference Manual”, PHI. 2. Jacobson et al., “The Unified Software Development Process”, AW, 1999.

RELATIONSHIP OF COURSE OUTCOMES TO PROGRAM OUTCOMES FOR DEPARTMENT OF INFORMATION TECHNOLOGY

S.No Program Out Comes None Low High

a.

Demonstrate an ability to apply the knowledge of Mathematics, Computer Science and Engineering appropriate to the development of software systems to solve real world problems.

b.

Demonstrate an ability to analyze a problem and design a computing system or a component or a process confirming to standards using various methodologies and architectures.

c.

Be able to analyze and understand an existing software & hardware system and extend the system to meet evolving requirements.

d.

Demonstrate an ability to implement and test a computing system or a component or a process, to evaluate and compare efficiencies of alternative solutions.

e.

Demonstrate an understanding of the emerging technologies and a working knowledge of software and hardware tools.

f.

Be able to interact professionally with peers and clients with diverse cultures and medium of communication located in geographically dispersed locations in the context of computing and software engineering.

g.

Have the knowledge of professional and ethical

responsibilities in the corporate sector and be aware of contemporary issues.

h. Demonstrate the ability to communicate effectively in both

verbal and written form. i.

Have an ability to analyze the social and human context of computing and be aware of contemporary issues.

j.

Recognize the need for continuing education, research and professional development.

k.

Possess the knowledge and skills for employability and to succeed in national and international level competitive examinations.

Page 175 of 175 Department of Information Technology DESIGN AND ANALYSIS OF ALGORITHMS

CS/IT 414

Lectures : 4 Periods/Week, Tutorial: 1 Continuous Assessment : 40

Final Exam : 3 hours Final Exam Marks : 60

Prerequisites:IT216-Data Structures Course Objectives:

1. To analyze the asymptotic performance of algorithms.

2. To demonstrate a familiarity with major algorithms and data structures. 3. To apply important algorithmic design paradigms and methods of analysis. 4. To synthesize efficient algorithms in common engineering design situations.

5. To understand the difference between tractable and intractable problems, and be familiar with strategies to deal with intractability.

Course Outcomes:

Students who complete the course will have the ability to

1. Argue the correctness of algorithms using inductive proofs and loop invariants.

2. Analyze worst-case running times of algorithms using asymptotic analysis. Compare theAsymptotic behaviors of functions obtained by elementary composition of polynomials, exponentials, and logarithmic functions. Describe the relative merits of worst-, average-, and best-case analysis.

3. Analyze average-case running times of algorithms whose running time is probabilistic. Employ indicator random variables and linearity of expectation to perform the analyses. Recite analyses of algorithms that employ this method of analysis.

4. Explain the basic properties of randomized algorithms and methods for analyzing them. 5. Recite algorithms that employ randomization. Explain the difference between a

6. Randomized algorithm and an algorithm with probabilistic inputs.

7. Describe the divide-and-conquer paradigm and explain when an algorithmic design situation calls for it. Recite algorithms that employ this paradigm. Synthesize divide-and- conquer algorithms. Derive and solve recurrences describing the performance of divide- and-conquer algorithms.

8. Describe the dynamic-programming paradigm and explain when an algorithmic design situation calls for it. Recite algorithms that employ this paradigm. Synthesize dynamicprogramming algorithms, and analyze them.

9. Describe the greedy paradigm and explain when an algorithmic design situation calls for it.Recite algorithms that employ this paradigm. Synthesize greedy algorithms, and analyze them.

10. Explain the major graph algorithms and their analyses. Employ graphs to model engineering problems, when appropriate. Synthesize new graph algorithms and algorithms that employ graph computations as key components, and analyze them.

11. Describe a linear program and cite problems that can be solved using linear programming.Reduce problems to linear programming formulations. Understand the complexity of various linear programming approaches.

12. Explain basic complexity classes such as P, NP, and NP-complete, and be able to use analysis and reduction techniques to show membership or non-membership of a problem in these classes.

13. Understand and explain approaches to dealing with problems that are NP-complete such as the design of heuristic, approximation, or fixed-parameter algorithms.

Topics:

• Divide and Conquer

• Greedy Programming

• Dynamic Programming

• Graph Searching and Traversal

• Back tracking

• Branch and Bound

• Computational Complexity Reference Books:

1. T. H. Cormen, Leiserson, Rivest and Stein, “Introduction of Computer Algorithm”, PHI. 2. Sara Basse, A.V. Gelder, “Computer Algorithms”, Addison Wesley.

Page 177 of 177 Department of Information Technology RELATIONSHIP OF COURSE OUTCOMES TO PROGRAM OUTCOMES FOR

DEPARTMENT OF INFORMATION TECHNOLOGY

S.No Program Out Comes None Low High

a.

Demonstrate an ability to apply the knowledge of Mathematics, Computer Science and Engineering appropriate to the development of software systems to solve real world problems.

b.

Demonstrate an ability to analyze a problem and design a computing system or a component or a process confirming to standards using various methodologies and architectures.

c.

Be able to analyze and understand an existing software & hardware system and extend the system to meet evolving requirements.

d.

Demonstrate an ability to implement and test a computing system or a component or a process, to evaluate and compare efficiencies of alternative solutions.

e.

Demonstrate an understanding of the emerging technologies and a working knowledge of software and hardware tools.

f.

Be able to interact professionally with peers and clients with diverse cultures and medium of communication located in geographically dispersed locations in the context of computing and software engineering.

g.

Have the knowledge of professional and ethical

responsibilities in the corporate sector and be aware of contemporary issues.

h. Demonstrate the ability to communicate effectively in both

verbal and written form. i.

Have an ability to analyze the social and human context of computing and be aware of contemporary issues.

j.

Recognize the need for continuing education, research and professional development.

k.

Possess the knowledge and skills for employability and to succeed in national and international level competitive examinations.

OPERATIONS RESEARCH