Sei sulla pagina 1di 125

CURRICULUM B.E Computer Software

CURRICULUM B.E Computer Software Applicable from Fall 2010 Department of Computer Software Engineering Military College of

Applicable from Fall 2010

Department of Computer Software Engineering

Military College of Signals National University of Sciences and Technology

Table of Contents

Table of Contents

i

1. Introduction

1

1.1 The Discipline of Software Engineering

1

1.2 Vision

1

1.3 Aim

1

1.4 Software Engineering Degree Programs

1

1.5 Objectives of BE Computer Software Degree Program

3

1.6 Guidelines and standards

3

1.7 Area-wise List of Courses

4

1.8 Definitions and Keywords used in this

9

2. Semester Wise Breakdown of Program

10

3. Course Contents

13

3.1 Computing Core Courses

13

CS110-Fundamentals of Computer Programming

13

CS212-Object Oriented Programming

16

CS250-Data Structures and Algorithms

18

EE221-Digital Logic Design

19

CS220-Database Systems

20

CS330-Operating System

20

SE200-Software Engineering

23

MATH161-Discrete Mathematics

24

CS320-Computer Networks

25

CS260-Human Computer Interaction

27

EE321-Computer Architecture & Organization

27

SE499-Senior Project

29

3.2 Software Engineering Core Courses

30

SE210-Software Design & Architecture

30

SE312-Software Construction

30

CS321-Software Quality Engineering

33

CS311-Software Requirement Engineering

31

SE430-Software Project Management

34

SE320-Formal Methods

35

3.3 Supporting Science Core Courses

36

MATH111-Calculus-I

36

MATH361-Probability and Statistics

37

MATH222-Linear Algebra

37

PHY101-Applied Physics

38

3.4 General Education Core Courses

40

HU109-Communication & Interpersonal Skills

40

HU218-Technical Business Writing

42

HU107-Pakistan Studies

43

HU101-Islamic Studies

44

HU222-Professional Ethics

44

CS100-Fundamentals of ICT

46

GMT471-Entrepreneurship

46

3.5 Software Engineering / Computing Electives

48

CS352-Theory of Automata and Formal Languages

48

CS381-Networks Security

50

CS370-Artificial Intelligence

51

CS473-Theory of Intelligent Systems

51

CS426-Digital Image Processing

53

CS361-Computer Graphics

55

CS332-Distributed Computing

55

CS344-Web Engineering

58

MATH352-Numerical Methods

58

CS380-Introduction to Computer Security

60

CS481-Computer Forensics

61

CS334-Open Source Systems

63

CS482-System Incident Handling

65

CS483-Information Security Management

67

CS423-Data Warehousing and Data Mining

68

CS340-Web Technologies-I

70

CS441-Web Technologies-II

70

SE423-Software Metrics

72

SE422-Software Testing

74

SE431-Software Engineering Economics

74

CS453-Programming Languages

76

CS471-Machine Learning

77

CS472-Natural Language Processing

77

CS322-RDBMS Using Oracle

79

CS414-Advanced Java with emphasis on Internet Applications

80

CS331-System Programming

80

CS362-Multimedia System and Design

81

SE301-Object Oriented Software Engineering

83

SE490-Advanced Topics in Software Engineering

83

CS222-Data Communication

85

CS321-Advanced Database Systems

87

CS425-Management Information Systems

88

CS443-e-Commerce and Solutions

90

CS342-Mobile Computing

91

CS251-Design and Analysis of Algorithms

91

CS424-Information Retrieval

93

CS433-Applied Parallel Computing

93

CS213-Advanced Programming

95

EE321-Signals and Systems

96

SE440-Business Process Automation

96

SE313-Design Patterns

97

EE430-Telecommunication Systems

98

CS427-Wireless Networks

100

3.6 Supporting Sciences Electives

101

MATH133-Engineering Mathematics

101

MATH234-Multivariable Calculus

101

MATH221-Number Theory

102

CS353-Fundamentals of Cryptography

103

OTM455-Planning Engineering Project Management

105

EE102-Basic Electrical Engineering

107

EE210-Basic Electronics

108

EE477-Analog and Digital Communications

109

MATH351-Numerical Methods

110

EE331-Digital Signal Processing

111

EE215-Electronic Circuits & Devices

112

EE414-Digital Electronics

114

3.7 General Education Electives

115

ECO130-Engineering Economics

115

HU443-Psychology

117

GMT164-Introduction to Management

118

GMT175-Intellectual Property Rights

119

1. Introduction

1.1 The Discipline of Software Engineering

Software Engineering is the discipline of creating high-quality software environment in a systematic, controlled and efficient manner, while maintaining it affordably. It involves the application of engineering concepts, techniques, and methods to develop the software systems. A software engineering program develops professionals who have a mastery of software development principles, theory, practice, and process. Software Engineering aims to use the science and technology already available to create products and tools for use. Software Engineering derives its essence from computer science as other engineering disciplines do from natural or life sciences, with an emphasis on issues of process, design, measurement, analysis and verification providing a strong foundation in engineering principles and practices as applied to software development.

1.2 Vision

The Software Engineering education at MCS NUST is focused on imparting the knowledge and training to students which enable them to harmonize theory with practice, concept with application, and problem with solution. It prepares them to ably apply engineering principles, processes and practices to software components and systems, and their maintenance. The program also, in addition to students’ professional growth, attends to development of their personal and interpersonal skills. It helps students to enhance their ability in oral and written communication, and their adaptability to group-work environments. The program strives to develop a capacity in the professionals for innovation and a passion for life long learning. SE curricula thus developed reflect the aim to satisfy professional demands of the industry and academia. The graduates thus produced are adequately equipped to exploit the opportunities and answer the challenges offered by the modern world.

1.3 Aim

The aim of Department of Computer Software Engineering is to “Conduct Bachelor of Engineering in Software Engineering, Master of Science in Computer Sciences and Ph.D Programs Under (National University of Science and Technology), with the objective to produce competent Software Engineers and researchers to face the technological challenges of 21 st century”.

1.4 Software Engineering Degree Programs

Department of Computer Software Engineering at MCS NUST presently running three programs of Software Engineering, these are:-

Bachelor of Engineering in Computer Software - BE Computer Software Engineering - BE (CSE)

Master of Science in Computer Software Engineering - MS Computer Software Engineering - MS (CSE)

Doctor of Philosophy in Software Engineering - Ph.D. Software Engineering - Ph.D. The Department of Computer Software Engineering focuses on conducting the Bachelor of Engineering Degree course in Software Engineering consisting of 136 credits to be completed in 4 years.

1.5 Objectives of BE Computer Software Degree Program

The main objective of Computer Software Engineering programme is to produce Software Engineers who have a strong knowledge and skills related to principles, theory, practices and processes necessary to produce quality software systems.

1.6 Guidelines and standards

The curriculum is based on HEC’s guidelines for Bachelor’s program in Software Engineering. The course breakdown as suggested by HEC is shown in Table 1.1.

Table 1.1 HEC Guidelines

 

Core/

   

Major Areas

Required

Electives

CHs

Computing

43

21

 

Software Engineering

18

88

Software Engineering (Application Domain)

-

6

64.70%

Supporting Studies (Math/Science )

   

21

12

9

15.45%

     

27

General Education

15

12

19.85%

 

88

48

 

Total

64.70%

35.30%

136

The MCS-NUST revised curriculum revised in March, 2010 is shown in the table 1.2.

Table 1.2 MCS-NUST Revised Curriculum (March, 2010)

 

Core/

   

Major Areas

Required

Electives

CHs

Computing

47

   

Software Engineering

20

20

87

Software Engineering (Application Domain)

-

63.97%

     

23

Supporting Studies (Math/Science )

13

10

16.91%

     

26

General Education

16

10

19.12%

 

96

40

 

Total

70.58%

29.42%

136

1.7 Area-wise List of Courses

List of courses in each category are listed below.

A. Computing Core Courses

S.No

Course Code

Course Name

Lec/Lab

CHs

 

CS110

Fundamentals of Computer

3-1

4

1

Programming

2

CS212

Object Oriented Programming

3-1

4

3

CS250

Data Structures & Algorithms

3-1

4

4

EE221

Digital Logic Design

3-1

4

5

CS220

Database Systems

3-1

4

6

CS330

Operating Systems

3-1

4

7

SE200

Software Engineering

3-0

3

8

MATH101

Discrete Mathematics

3-0

3

9

CS320

Computer Networks

3-1

4

10

CS260

Human Computer Interaction

3-0

3

 

EE321

Computer Architecture and

3-1

4

11

Organization

     

0-3

 

12

SE499

Senior Project

0-3

6

 

Total

47

B. Software Engineering Core Courses

S.No

Course Code

Course Name

Lec/Lab

CHs

1

SE312

Software Construction

3-1

4

2

SE210

Software Design and Architecture

3-1

4

3

SE321

Software Quality Engineering

3-0

3

4

SE430

Software Project Management

3-0

3

5

SE320

Formal Methods

3-0

3

6

SE311

Software Requirements Engineering

3-0

3

 

Total

20

C. Supporting Science Core Courses

S.No

Course Code

Course Name

Lec/Lab

CHs

l

MATH111

Calculus I

3-0

3

2

MATH361

Probability and Statistics

3-0

3

3

MATH222

Linear Algebra

3-0

3

4

PHY101

Applied Physics

3-1

4

 

Total

13

D.

General Education Core Courses

S.No

Course Code

Course Name

Lec/Lab

CHs

1

HU109

Communication and Interpersonal Skills

2-0

2

2

HU218

Technical & Business Writing

2-0

2

3

HU107

Pakistan Studies

2-0

2

4

HU101

Islamic Studies

2-0

2

5

HU222

Professional Ethics

2-0

2

6

CS100

Fundamentals of ICT

2-1

3

7

GMT471

Entrepreneurship

3-0

3

 

Total

16

E. Computing/SE Electives

S. No

Course Code

Course Name

Credit Hours

1 CS

332

Distributed Computing

3-1

2 CS

222

Data Communication

3-0

3 CS

423

Data Warehousing and Data Mining

3-1

4 CS

321

Advanced Database Systems

3-0

5 CS

340

Web Technologies-I

2-1

6 CS

381

Network Security

3-0

7 CS

443

E-Commerce and Solutions

3-0

8 CS

251

Design and Analysis of Algorithms

3-0

9 CS

370

Artificial Intelligence

3-1

10 CS

425

Management Information Systems

3-0

11 CS

490

Advanced Topics in Computing

3-0

12 CS

427

Wireless Networks

3-0

13 CS

361

Computer Graphics

3-1

14 EE

430

Telecommunication Systems

3-0

15 CS

342

Mobile Computing

3-0

16 CS

424

Information Retrieval

3-0

17 CS

426

Digital Image Processing

3-1

18 CS

433

Applied Parallel Computing

2-1

19 CS

213

Advanced Programming

3-1

20 EE

231

Signals and Systems

3-0

21 EE

331

Digital Signal Processing

3-1

22 SE

440

Business Process Automation

3-0

23 SE

313

Design Patterns

2-1

24 SE

423

Software Metrics

3-0

25 SE

422

Software Testing

3-0

26 SE

431

Software Engineering Economics

3-0

27 CS

453

Programming Languages

3-0

28 CS

471

Machine Learning

3-1

29 CS

472

Natural Language Processing

3-0

30 BIO

317

Computational Biology

3-0

31 BIO

215

Bioinformatics

3-0

Theory of Automata and Formal

32 CS

352

Languages

3-0

33 CS

322

RDBMS Using Oracle

2-1

Advanced Java with emphasis on

34 CS

414

Internet Applications

3-1

35 CS

441

Web Technologies-II

3-1

36 CS

331

System Programming

2-1

37 CS

362

Multimedia Systems and Design

2-1

38 CS

334

Open Source Systems

3-1

39 CS

380

Introduction to Computer Security

3-0

40 CS

481

Computer Forensics

3-1

41 CS

482

System Incident Handling

3-0

42 CS

344

Web Engineering

3-1

43 CS

473

Theory of Intelligent Systems

3-1

44 SE

301

Object Oriented Software Engineering 3-0

Advanced Topics in Software

45 SE

490

Engineering

3-0

CS

46 483

Information Security Management

3-0

MATH

47 352

Numerical Methods

2+1

 

F.

General Education Electives

 

S.

No

Course Code

Course Name

Credit Hours

 

1

HRM

441

Human Resource Management

2-0

2

GMT

175

Intellectual Property Rights

3-0

3

HU

103

Sociology

3-0

4

HU

102

Psychology

3-0

5

HU

104

English Literature

3-0

6

FIN

100

Principles of Accounting

3-0

7

CS

309

Computing and Society

3-0

8

GMT

164

Introduction to Management

2-0

9

HRM

240

Organizational Behavior

2-0

10

ECO

130

Engineering Economics

2-0

G.

Supporting Science Electives

S.

No

Course Code

Course Name

Credit Hours

 

1

MATH

112

Calculus II

3-0

2

EE

210

Basic Electronics

3-1

3

CS

261

Computational Logic

3-0

4

CH

101

Chemistry

2-1

5

PHY

401

Advanced Physics

2-1

6

MATH

232

Complex Variables and Transforms

3-0

7

EE

201

Engineering Mechanics

3-0

8

MATH

221

Number Theory

3-0

9

CS

353

Fundamentals of Cryptography

3-0

10

EE

102

Basic Electrical Engineering

3-1

11

EE

215

Electronic Circuits & Devices

3-1

 

Planning Engineering Project

 

12

OTM

455

Management

2-0

13

EE

414

Digital Electronics

3-1

14

MATH

133

Engineering Mathematics

3-0

15

MATH

234

Multivariable Calculus

3-0

16

EE

477

Analog and Digital Communication

3-1

17

MATH

351

Numerical Methods

3 - 0

1.8 Definitions and Keywords used in this Document.

Pre Requisites: It is the subject or course that is essential to complete before taking the required subject or course. Credits Hours: A lecture of one hour duration per week per semester for a subject countable towards a student’s Cumulative Grade Point Average, will be considered as one credit hour. However, in case of seminars, tutorials and laboratory work, one credit hour requires three contact hours depending upon the nature of subject. Contact Hours A lecture of one credit hour duration per week is equal to one contact hour per week and a lab of one credit hour per week is equal to 3 contact hour per week depending on the subject. Cumulative Sum of contact hours for a lectures and its essential lab work for particular subject or course. Subject or Course A “Subject” or “Course” means a topic or a subject related to an academic programme, which is to be studied by a student for a fixed number of hours during a semester. Each subject will carry a specific faculty code and number.

2. Semester Wise Breakdown of Program

 

Semester 1

S.No

Code

 

Subjects

Theory

Labs

1

CS

100

Fundamentals of ICT

2

1

2

HU

109

Communication and Interpersonal Skills

2

0

3

MATH

161

Discrete Mathematics

3

0

4

PHY

101

Applied Physics***

3

1

5

MATH

111

Calculus-I

3

0

6

CS

110

Fundamentals of Computer Programming

3

1

 

Total CHs

16

3

 

Semester CHs

19

 

Semester 2

S. No

Code

Subjects

Theory

Labs

1

HU

101

Islamic Studies***

2

0

2

CS

212

Object Oriented Programming

3

1

3

EE

221

Digital Logic Design

3

1

4

HU

107

Pakistan Studies***

2

0

5

 

Supporting Science Elective –I

3

0

6

 

General Education Elective-I

2

0

 

Total CHs

15

2

 

Semester CHs

17

NOTE:

*** These subjects can be interchanged and offered in different semesters subject to availability of faculty.

 

Semester 3

S.No

Code

 

Subjects

Theory

Labs

 

1 MATH

361

Probability and Statistics

3

0

2 CS

 

250

Data Structures & Algorithms

3

1

3 CS

 

220

Database Systems

3

1

 

4 MATH

222

Linear Algebra

3

0

5 SE

 

200

Software Engineering

3

0

 

Total CHs

15

2

 

Semester CHs

17

 

Semester 4

S.No

Code

 

Subjects

Theory

Labs

1

EE

321

Computer Architecture & Organization

3

1

2

CS

260

Human Computer Interaction

3

0

3

SE

210

Software Design and Architecture

3

1

4

 

Supporting Science Elective –II

3

1

5

 

SE Elective-I

2

1

 

Total CHs

14

4

 

Semester CHs

 

18

 

Semester 5

S.No

Code

Subjects

Theory

Labs

1

CS

330

Operating Systems

3

1

2

HU

218

Technical & Business Writing***

2

0

3

SE

311

Software Requirements Engineering

3

0

4

CS

320

Computer Networks

3

1

5

HU

222

Professional Ethics***

2

0

6

 

SE Elective-II

3

1

 

Total CHs

16

3

 

Total CHs

 

19

 

Semester 6

S.No

Code

Subject

Theory

Lab

1

SE

312

Software Construction

3

1

2

SE

320

Formal Methods

3

0

3

SE

321

Software Quality Engineering

3

0

4

 

SE Elective – III

3

0

5

 

General Education Elective – II

2

0

6

 

Supporting Science Elective –III

3

0

 

Total CHs

17

1

 

Semester CHs

 

18

NOTE:

*** These subjects can be interchanged and offered in different semesters subject to availability of faculty.

 

Semester 7

S.No

Code

Subject

Theory

Lab

1

SE

430

Software Project Management

3

0

2

GMT

471

Entrepreneurship

3

0

3

 

SE Elective – IV

3

0

4

 

SE Elective – V

3

0

5

 

General Education Elective -III

3

0

6

SE

499

Senior Project

0

3

 

Total CHs

15

3

 

Semester CHs

 

18

 

Semester 8

S.No

Code

Subject

Theory

Lab

1

 

General Education Elective – IV

3

0

2

 

SE Elective – VI

3

1

3

SE

499

Senior Project

0

3

 

Total CHs

6

4

 

Semester CHs

 

10

 

Overall CHs

115

21

 

Grand Total (Credit Hours)

 

136

3. Course Contents

3.1 Computing Core Courses

Course

CS110

Code:

Pre

Nil

Requisite:

Credits:3+1

Contact Hrs: 6

Course

The main objective of this course is to introduce students to

Objectives:

computer systems and the underlying basic concepts. Students will also learn in this course programming principles and techniques in an appropriate programming language according to current industrial needs. At the end of this course students will be able to useful and efficient software programs to solve basic computing problems.

Course Contents

1 Introduction to Programming Languages:Programming Languages, Low Level, High Level, Programming Philosophy, Procedural Programming Concept, Object Oriented Programming Concept, Creating computer Program. Definition of IDE, Editing a Program & Working of IDE for Program Compilation & Execution.

2 Introduction to C++: Development of basic algorithms/flowcharts. Analysis and testing of algorithms. Fundamental programming concepts, source file, object file, exe file.

3 C/C++ Programming Basics: C/C++ Program Structure, program statement, white spaces, string constant, Variables, Input/output with cout and cin, Arithmetic operators, assignment and increment operators

4 Loops and Decisions: Relational operators, loops for, do-while, while, decisions if , if-else, else-if, switch , logical operators and or not operators, control statement break, continue, go to statement

5 Structures: Declaration, defining strict variables, and accessing structure members, nested strict, enumerations

6 Pointers: Declaration, defining pointers, argument passing using pointers, other uses and applications of pointers.

7 Functions: Declaration, defining functions, comparison with library functions, passing arguments constants variables value, structures as arguments, returning values from function, returning structure variables, passing data by reference, overloaded functions, inline functions, default arguments, variables and storage classes, auto external and static variables, const function arguments.

8 Arrays and Strings: Definition, accessing elements, initialization, multidimensional arrays, passing array to function, array to structure, C- string variable constant, reading embedded blanks, multiple lines, copying strings

Text Book:

1. C Programming using Turbo C++ by Robert Lafore

CS212-Object Oriented Programming

Course

CS212

Code:

Pre

CS110 Fundamental of Computer Programming

Requisites:

Credits:3+1

Contact Hrs: 6

Course

The objectives of the course are to acquaint the students with the

Objectives:

Object Oriented concepts and terminology and to provide them

with a solid foundation for developing software using the object paradigm. By the course completion, students should be proficient in OO programming using C++ and have learnt the basics of Object Oriented analysis and design. Students should then be able to develop software solutions to a variety of problems given to them easily. Course Contents

1 Introduction Procedural versus OO programming languages. Evolution of OO. OO concepts and principles. Characteristics and Advantages of OO approach.

2 Objects and Classes Classes and objects, declaration, calling member function, constructors, destructors, overloaded constructors, objects as arguments, default copy constructors, classes objects and memory, static class data, const and classes

3 Arrays and Strings Definition, accessing elements, initialization, multidimensional arrays, passing array to function, array to structure, C- string variable constant, reading embedded blanks, multiple lines, copying strings, standard C++ string class, defining assigning string objects, input/ output with string object

4 Operator Overloading Unary operators, binary operators, op arguments, return value, nameless temp objects, post fix notation, overloading binary op, arithmetic op, concatenating strings, multiple overloading, comparison op, arithmetic and subscript op, data conversion between object and basics types, object and different classes.

5 Inheritance Derive and base classes, specifying, accessing base class members, protected access specifier, derived class constructors, overriding member functions, class hierarchies abstract base class, public and private inheritance, multiple inheritance, container-ship classes within classes

6 Pointers Addresses and Pointers, Address-of Operator, Pointers and Arrays, Pointers and Functions, Memory management – new and delete operators, A linked list example.

7 Streams and Files Stream classes, stream errors. File I/O with streams. Text Book: 1. Object Oriented Programming in C++ by Robert Lafore.3/e SAMS Reference: 1. Understanding Object Oriented Programming, Budd, Addison Wesley.

2. C++: How to Programme, Deitel and Deitel, 4/e, Pearson.

3. Thinking in C++, 2nd Edition, Bruce Eckel, Prentice Hall.

CS250-Data Structures and Algorithms

Course

CS250

Code:

Pre

CS110 Fundamental of Computer Programming

Requisites:

Credits:3+1

Contact Hrs: 6

Course

The objective of this course is to gain a solid understanding of the

Objectives:

fundamental design, analysis and implementation of basic data structures and algorithms. The course will help the students in developing the basic concepts in the specification and analysis of programs.

Course Contents

1

Data

structures.

Structures

Introduction

to

Data

structures

and

types

of

data

2 Algorithms Definition of algorithm, running time of algorithm, examples, role of efficient algorithms.

3 Recursion: Definition of Recursion, Direct and Indirect Recursion, Examples of Recursive Functions.

4 Queues & Lists Linear Queue & Its Features, Linear Queue Implementation, Circular Queue, Linked List & Its Features, Linked List Implementation, Doubly Linked List & its Implementation.

5 The Stack Stack & Its Implementation, Postfix Notation Concept, Implementation Of Postfix Notation.

6 Trees Binary Trees, Strictly Binary Tree, Complete Binary Tree, Almost Complete Binary Tree, Binary Tree Applications, Traversing Trees, Pre- Order Traversing In-Order Traversing, Post-Order Traversing.

7 Sorting Bubble Sort, Quick Sort, Binary Sort, Merge Sort, Insertion Sort, Heap, Heap Construction, Heap Sort, Heap Sort Implementation. Hashing & its Implementation

8 Searching Linear and Binary Search.

9 Graphs What Are Graphs, Representation Of Directed Graphs, Graph Vocabulary, Graph Operations (Add Vertex, Add Edge), C++ Implementation.

10 Hashing Hashing, dictionaries and hash tables, hashing function, hashing

implementation using array and linked list. Text Book: 1. Data Structures Using C++, Prentice Hall Inc., 1994, by Aaron M. Tenebaum, Yedidyah Langsam Moshe J. Augenstein Reference: 1. C++ How To Program, Prentice Hall Inc., 1994, by H.M. Deitel, P.J. Deital 2. Data Abstraction & Problem Solving with C++ by Frank M. Carrano. 3. Data Structures with C++ - Schaum Series

EE221-Digital Logic Design

Course

EE221

Code:

Pre

Nil

Requisites:

Credits:3+1

Contact Hrs: 6

Course

The objectives of this course are to introduce students to the

Objectives:

fundamentals of a computer system design such as the instruction

set architecture, data path, MSI, LSI and sequential circuits. So after the course, students can then actually design these functional units for a given instruction set architecture. Course Contents

1 Binary Systems: Number Systems, Bin, Octal and Hex numbers, Base conversions, Compliments, Binary codes, Bin Addition, subtraction, Multiplication, Division, Bin Logic.

2 Binary Algebra: Basic definitions, Basic theorems and properties, Functions, Venn Diagrams, Canonical and Standard forms, Conversion between canonical forms, Logic Operations, Digital Logic gates, Introduction to Logic families and their characteristics

3 Simplification of Boolean Functions Karanugh Map representation and simplification of Boolean Functions, Product of Sums simplification, NAND and NOR implementation, Two level implementations, Quine Mc Cluskey Method.

4 Combinational Logic: Design procedure, Adders, Subtractors, Code conversion, Analysis procedure, Multi level NAND and NOR circuits, Exclusive OR and Equivalence functions

5 Combinational Logic with MSI & LSI: Bin Parallel Adder, Decimal Adder, Magnitude comparator, Decoders, Multiplexers, ROM function implementation, PLAs.

6 Sequential Logic: Basic flip-flops, RS flip-flops, D flip-flops, JK flip-flop, T flip-flop, Master-Slave and Edge triggered flip-flop, Analysis of clocked sequential circuits, State reduction and assignment, Design of sequential circuits.

7 MSI-Sequential Circuits:Registers, Shift registers, Ripple counters, Synchronous counters, Timing sequences, Memory unit, Introduction to register transfer Logic.

Text Book:

1. M Morris Mano, “Digital Logic and Computer Design”

Reference:

1.

Fredrick Hill & Gerald R Peterson “Digital Logic and Microprocessors”

2.

B. Holdsworth “Digital Logic Design”

3.

Edward J McClukey “Logic Design Principles”

CS220-Database Systems

Course

CS220

Code:

Pre

Nil

Requisites:

Credits:3+1

Contact Hrs: 6

Course

This course will provide a thorough introduction to the theory

Objectives:

and practice of database systems. The emphasis will be on theoretical considerations involved in modeling data and in designing the efficient database systems. Students will also be able to implement the systems using database management systems i.e. queries.

Course Contents

1 Storage of and access Data stored in files.

2 Implementation of storage/accesses algorithms like indexing, hashing and range accesses on data stored in independent files. Drawing conclusions regarding advantages/ disadvantages of data stored in files

3 Concept of database, Database Management Systems. Advantages of database management systems over file systems.

4 Different database models Implementation, storage and data retrieval strategies of Network three data models- Network, Hierarchical and relational data model, OODB, comparison with each other

5 Query languages, SOL

6 Relational Algebra – their syntax and use in Client server and single user environments

7 Transaction processing Types and Different stages of transactions. Aborted/incomplete transactions, Roll Back and different techniques of recovery from the exceptional situation.

8 Parallel execution of transactions their inherent problems, limitations. Serialisation of transactions.

9 Distributed Database System & Advance Topics

Text

1. C. Ricardo, “Database Systems, Principles, Design & implementation” Macmillan, 1990.

Book:

2.

C.J. Date, “ Database Systems”, Mc Graw Hill, 1999.

Reference

1. Tech Sig Movie ser 29, “What is Electronic Data Processing

:

Concept” – 30 mins

2. Gen Trg Movies ser 8, “Data Communication” – 29 mins

3. Gen Trg Movies ser 8, “ Data Representation” – 29 mins

 

CS330-Operating System

Course

CS330

Code:

Pre

CE-420 Computer Architecture and Organization

Requisites:

Credits:3+1

Contact Hrs: 6

Course

Course aims to develop the fundamental concepts of operating

Objectives:

system. The course will also cover the basic resource management techniques, issues of performance, avoiding deadlocks etc to equip students with sufficient knowledge about the working mechanism of Operating System.

Course Contents

1 Operating System Objectives & Functions of Operating System, Operating System Characteristics, Desirable Features of an Operating System, Fetch & Execute Cycle, Typical operations performed by the processor, Processor – Memory, Processor – I/O, Data – Processing, Control.

2 I/O Management & Disk Scheduling Interrupts, Interrupts & the Execution Cycle, Short I/O Wait, Long I/O Wait, Kinds of Interrupts, Interrupt, Processing, Multiple Interrupts, Multi-Programming, I/O Organization, Generic Model of an I/O module, I/O Function, Requirement of an I/O Module, External Devices, Classification of the Devices, Difference Between These Devices, Model of an External Device, I/O Communication Techniques, Programmed I/O, Interrupt Driven I/O, DMA, Logical Structure of the I/O Function, Local Peripheral, Communication Port, File System, I/O Buffering, Disk Scheduling, Disk Performance Parameter, Disk Scheduling Policies.

3 Process Management Process Management, Process States, Basic Two State Process Model, Three State Process Model, Five State Process Model, Creation & Termination of Processes Suspended Processes, Suspended States Model, Characteristics of Suspended State Model, Process Description, Operating System Control Structure, Process Control Structure, Process Location, Process Attributes, Process Identification, Processor State Information, Scheduling of State Information, Process Control Modes of Execution, Creation Of Processes, Process & Context Switching, Processes & Threads.

4 Files Files, File Management System, Objectives of the File Management System, Minimum Requirements from user point of view for a File Management System, File System Architecture, Functions of File Management, File Directories, File Sharing, Record Blocking, Secondary Storage Management, File Allocation, Pre-allocation Vs Dynamic Allocation, Portion Size, File Allocation Methods, Free Space Management, Reliability, Disk Interleaving.

5 Concurrency Motivation for Concurrency, Program Structuring Alternatives, Process Interaction, Competition Among Processes for Resources, Mutual Exclusion, Dead Lock, Starvation, Requirements for Mutual Exclusion.

6 Memory Management Memory Management, Memory Management Requirements, Equal & Unequal Partitioning, Dynamical Loading & Swapping of Processes, Memory Management Schemes, Virtual Memory Concept, Paging & Segmentation.

7 Introduction To Network & Distributed O/S Motivation, Topology, Communication, Network Types & Operating Systems.

TextBook:

1. Operating Systems by: William Stallings

Reference

1. Modern Operating System by: Tanenbaum

:

2. Operating System Concepts by: L.J. Peterson

SE200-Software Engineering

Course

SE200

Code:

Pre

Fundamentals of ICT

Requisite:

Credits:3+0

Contact Hrs: 3

Course

To help students to develop skills that will enable them to

Objectives:

construct software of high quality; software that is reliable, and that is reasonably easy to understand, modify and maintain. Course fosters an understanding why these skills are required by the professionals. By the course completion student will be able to model any system before its development.

Course Contents

1 Concepts Perspectives on Software ,What is Software Engineering, History, Software Process, Life Cycle Models

2 Phases Requirements Engineering, Analysis and Specification, Design Concepts, Software Architecture, Software Testing, Software Maintenance

3 Management Software Project Management, Measurement and Metrics, Project Planning, Software Quality Assurance, Risk Management, Configuration Management, Software Reliability

4 Methodologies Formal Methods, Algebraic Specification, Model-Based Specification, Clean room Software Engineering, Human Computer Interaction, Component-based Development, Real-Time Systems

5 Knowledge Areas Capability Maturity Model, Life Cycles Standard ISO/IEEE 12207, Software Engineering Body of Knowledge, Software Engineering as Profession, The Evolution of Software Engineering, Certifications

Text

1. Software Engineering : A Practitioners Approach by Goger S.

Book:

Pressman

Reference:

1. Software Engineering by Summerville

MATH161-Discrete Mathematics

Course Code:

MATH161

Pre

Nil

Requisites:

Credits:3+0

Contact Hrs: 3

Course

To develop mathematical maturity for Students entering the

Objectives:

Computer Science program and cover specific topics relevant to

Course Contents

further study in Computer Science. The course will aim to make students understand the basic set terminology and operations, characterization of mathematical relationships, basic terminology and operations for trees and graphs etc. By course completion students will have a good understanding of the discrete structures.

1.

Logic: logical Form and logical Equivalence, Conditional Statements, Valid

and Invalid Arguments, Predicates and Quantifiers.

2.

Relations: Relations and their properties, n-ary relations and their applications, Representing Relations, Closures of Relations, Equivalence Relations, and Partial Orderings.

3.

Graphs: Introduction to Graphs, Graph Terminology, Representing Graphs and Graphs Isomorphism, Connectivity, Euler and Hamilton Paths, Shortest Path Problems, Planner Graphs, and Graph Coloring.

4.

Trees: Introduction to Trees, Applications of Trees, Tree Traversal, Trees and Sorting, Spanning Trees, and Minimum Spanning Trees.

Text

1.

Discrete Mathematics and its Applications, by Kenneth H.

Book:

Rosen.

 

2.

Discrete Mathematics and its Applications, by Susanna S. Epp.

Reference

1.

Discrete Mathematics, by Morman L. Biggs.

:

CS320-Computer Networks

Course

CS320

Code:

Pre

Nil

Requisites:

Credits:3+1

Contact Hrs: 6

Course

By the course completion, student will have the knowledge of

Objectives:

many key protocols underlying the operation of the Internet and fundamental ideas of designing and evaluating reliable network. Course covers a range of topics from basic such as transmission, signals etc to the advanced ones such as OSI layers, mobile networks etc. The student would also be able to develop network based programs.

Course Contents

1. Introduction Introduction to Networks protocols and standards line, configuration- Networks Topologies, Transmission Model, Categories of networks-Inter networks-The OSI Model Functions of layers-TCP/IP Protocol suite.

2. Signals and Encoding Annals and digital signals-periodic and a periodic signals –Time and Frequency domains signals-A to D conversion- D to D conversion, D to A conversion, A to A conversion

3. Transmission of Digital Data DTE-DCE Interface-Modems 56K Modems- Cable modems – Guided and unguided transmission Media- Transmission impairment- Performance, Shannon Capacity- Media comparison

4. Multiplexing, Error Detection and correction FDM, TDM and WDM- Multiplexing applications _digital subscriber lines (DSL), FTTC- types of errors- Error detection- vertical, longitudinal and cyclic redundancy checks- Checksum-Error correction.

5. Data Link Control and Protocols Asynchronous protocols- character and Bit oriented protocol –Link Access procedures-link Discipline-flow control-Error control.

6. Local and Metropolitan Area Networks Project 802-Ethernet, token bus, Token Ring, FDDI-802.6 (DQDB), SMDS, circuit switching and Packet switching.

7. Point-to point Protocol (PPP) Transition states- PPP Layers-Link control protocol- Authentication – Network control protocol.

8. Frame Relay and ATM Frame relay operation –Layers-congestion control leaky Bucket Algorithm –Traffic control- ATM design goals- Architecture –Switching and Switch Fabrics-ATM layers- service classes- ATM applications.

9. Networking and Internetworking Devices Repeaters- Bridges –Routers- Gate ways-Other devices- Routing Algorithms- Distance vector and link state routing, Congestion Control Algorithms.

10.

Transport Layer and Upper OSI Layers Fructose of Transport layer- Commotion establishment termination- OSI transport layer- Application layer, Congestion Control

11. TCP/IP Protocol Suite Overview- Network layer- Addressing- Sunbathing protocols in Network Layer- Transport layer (UDP and TCP)- client server model- Boot P- DHCP-DNS-TELENET-FTP-TFTP-SMTP- SNMP HTTP-word wide web.

12. Introduction to Mobile Networks Mobile Adhoc Networks, Issues and Applications of MANETs, Reactive and Proactive Protocols

13. Network Layer (Extension) Routing algorithms, Shortest-path problems, Optimality

Text Book:

1. Data Communications and Networking, Second Edition by

Reference:

Behrouz Forouzan 1. Computer Networks by Andrew S. Tanenbaum

CS260-Human Computer Interaction

Course

CS260

Code:

Pre

CS110 Fundamentals of Computer Programming

Requisites:

Credits:3+0

Contact Hrs: 3

Course

Acquire the knowledge and skills needed to create highly usable

Objectives:

software systems. The course will cover the design process, evaluation techniques, design solutions evaluation as well as the appropriate uses of graphics etc. By course completion, student will be able to utilize design concepts/principles to solve problems using the integration of graphic design elements and techniques for important print and online design elements, including typography, color, icons, buttons and photographs.

Course Contents

1. Background to human-computer interaction. Underpinnings from psychology and cognitive science

2. More background. Evaluation techniques: Heuristic evaluation

3. More evaluation techniques: Videotaped user testing; cognitive walkthroughs

4. Task analysis. User-centred design

5. Usability engineering processes; conducting experiments

6. Conceptual models and metaphors

7. Designing interfaces: Coding techniques using colour, fonts, sound, animation, etc.

8. Designing interfaces: Screen layout, response time, feedback, error messages,

etc.

9.

Designing interfaces for special devices. Use of voice I/O

10

Designing interfaces: Internationalization, help systems, etc. User interface

Text

software architectures HCI Models, Theories, and Frameworks: Toward a

Books:

Multidisciplinary Science by John

Reference:

1. Mary Rosson, John Carroll, Mary Beth Rosson

EE321-Computer Architecture & Organization

Course Code:

EE321

Pre

EE221 Digital Logic Design

Requisites:

Credits:3+1

Contact Hrs: 6

Course

The objective of this course is to study computer architecture

Objectives:

design by examining architectural concepts with consideration of performance, usability, reliability, power management etc. This course covers a number of topics such as Instruction Set

Architecture, Pipeline Microprocessor, Cache and Memory, Parallel Computing, Embedded Systems etc to give deep insight about the computer architecture to the students.

Course Contents

1.

Introduction to Computer Architecture, Evolution of Computers, Types of Computers, Hardware, Firmware and Software. Future trends.

2.

Programming model of 8086 family. Addressing Modes.

3.

Data types, complements, fixed point representation, floating point representation, binary codes.

4.

Register Transfer Language. Bus and Memory Transfer. Arithmetic Micro- operations, Logic Micro-operations, shift micro-operation, Arithmetic Logic Unit.

5.

Instruction Codes, Computer Register, Computer Instruction, Timing and Control, Instruction Cycle, Memory-Reference Instruction, Input-Output, Interrupt, Complete description and design of Basic Computer. Design of Accumulator and ALU.

6.

Assembly Language Programming with help of MASM and Debugger

7.

Control Memory, Address Sequencing, Micro program, Computer Configuration, Microinstruction format, Symbolic Microinstruction. The Fetch Routine, Symbolic Micro program, Binary Micro program, Design of Control Unit, Micro program Sequencer.

8

Memory Hierarchy, Main Memory, Cache Memory, Virtual Memory, Memory Management.

9

General Register Organization, Stack Organization, Instruction format, Addressing Modes, Date transfer and manipulation, Program Control, RISC & CISC Computer and their characteristics.

10

Parallel Processing, Pipelining, Arithmetic Pipeline, Instruction Pipeline,

Vector Processing. Text Book: 1. Computer Architecture and Organization by John P. Hayes, 3 rd Edition, McGraw -Hill.

2. Computer System Architecture by M. Morris Mano, Third

Reference:

Edition

1. Computer Architecture by Morio De Blasi.

2. Computer Architecture & Organization by A.J.Van De Goor.

SE499-Senior Project

Course Code:

SE499

Credits Hrs

7 th Semester: 0+3

Course

8 th Semester: 0+3 The purpose of this course is to make students ready for

Objectives:

the professional life. The project development helps them

Thesis Procedure

to know all those things which are required in the industry to carry out any project development.

1 Syndicate formation and choosing Project Advisor in the 4 th week of 6 th Semester

2 Approval of Syndicate formation by the Dept in the 12 th week of 6 th Semester

3 Proposal Defence in the 12 th week of 6 th Semester

4 1 st Progress Presentation 2 nd and 3 rd week of 7 th Semester

5 2 nd Progress Presentation 12 th week of 7 th Semester

6 3 rd Progress Presentation 3 rd week of 8 th Semester

7 4 th Progress Presentation 10 th week of 8 th Semester

8 Final Presentation after the Final Exams.

TextBook:

As advised by Project Supervisor

Reference:

As advised by Project Supervisor

3.2 Software Engineering Core Courses

SE210-Software Design & Architecture

Course

SE210

Code:

Pre

SE200 Software engineering

Requisites:

CS212 Object oriented programming

Credits:

Contact Hrs: 6

3+

1

Course

The objective of this course is to enhance the abilities of students to

Objectives:

develop reusable software designs. In this course, students are

introduced to principles of good design, and techniques for the evaluation of software design quality. The course will introduce the students to a number of design patterns and their applications. This course also covers the principal architectural issues associated with the design and construction of large scale software systems including architectural design and documentation, component models and technologies, and frameworks. Course Contents

1 In-depth study of design patterns, building on material learned previously.

2 Application of design patterns to several example applications

3 In-depth study of middleware architectures including COM, CORBA, and .Net

4 Extensive case studies of real designs.

5 Basics of software metrics; measuring software qualities

6 Reengineering and reverse engineering techniques.

7 Design patterns

8 Application of design patterns to several example applications

9 Case studies of real designs.

10 Basics of software metrics; measuring software qualities

11 Reengineering and reverse engineering techniques

12 Building a significant project using one or more well-known middleware architecture(practicals only)

Text Book:

1. Software Architecture in Practice by Len Bass

Reference:

1. Evaluating Software Architectures by Paul Clements 2. Ed Roman, “Mastering Enterprise Java Beans & java2 Platform

 

SE312-Software Construction

Course Code:

SE312

Pre

CS110 Fundamentals of Computer Programming SE200 Software Engineering Contact Hrs: 6

Requisites:

Credits:3+1

Course

The goal of this course is for the student to acquire an

Objectives:

understanding of the principles of and skills in current practices

Course Contents

for, developing a solution to a problem using the object- oriented philosophy. Course covers range of topics including a current process for developing software, formal languages, parsing, the processes of problem analysis etc which will help the students to get insight into the software modeling and construction.

1 The system engineering context (the software engineering process, already covered in previous course, a review)

2 Basic principles of requirements analysis (approaches and notations)

3 Requirements specification

4 SDL – structure and behavior

5 SDL – data and timers

6 SDL - concurrency and dynamic process creation

7 Introduction to languages and compilers

8 Lexical analysis: formal languages, regular expressions, finite state machines, deterministic and non-deterministic finite automata, transformation from regular expression to DFA, tools for lexical analysis (Lex)

9 Syntax analysis: parse trees, ambiguity, context-free grammars, LL(1) parsing method, semantic analysis and semantic attributes (this section may or may not be covered), different notations for specifying languages

10 Chomsky’s hierarchy, Concurrency: concept of concurrency, sub-program level concurrency, semaphores, monitors, message passing, Java threads

11 Implementation design

12 Verification and validation

Text Book:

Reference: 1. R.W.Sebesta, Concepts of Programming Languages, 5th ed.,

Addison-Wesley, 2002. 2. A. V. Aho, R. Sethi and J. D. Ullman, Compilers, Principles, Techniques and Tools, Addison Wesley.

1. Software Engineering by Roger S. Pressman

CS311-Software Requirement Engineering

Course

SE311

Code:

Pre

SE200 Software Engineering

Requisites:

Credits:3+0

Contact Hrs: 3+0

Course

Understand the role of requirements engineering within the

Objectives:

software life cycle. Compare and contrast, and valuate structured, object-oriented, data-oriented, and formal approaches to

requirements modelling. Gather the requirements necessary to develop the specifications, given a “customer” who wants a software system to be developed. Develop an informal requirements specification, given a set of requirements. Model, prototype, and specify requirements for a software system. Course Contents

1 Basics. Requirements Engineering, Challenges in Requirements Engineering for Embedded Systems, Combining Requirements Engineering and Agents, Maturing Requirements Engineering Process Maturity Models, Requirements Prioritisation for Incremental and Iterative Development, A Quality Model for Requirements Management Tools

2 The Importance of Requirements. What Are Requirements and Why Are They Important?, Why Plan?, A Suggested Strategy, Requirements Activities in the System Life Cycle, Investment in the Requirements Process, A Process Approach, The Requirements Plan, Factors Affecting Your Career Decisions, A Comment Concerning Small Projects, Case Study.

3 The Roles of the RA. Suggested Roles of the RA, Case Study

4 Skills and Characteristics of an Effective RA. Skills of the RA, Characteristics of an Effective RA, Case Study

5 Types of Requirements. Views of Requirements, Types Definitions and Descriptions of Requirements, Types Business Requirements, Stated Requirements Versus Real Requirements, User Requirements, High-Level or System-Level Requirements, Business Rules, Functional Requirements, Non functional Requirements, Derived Requirements, Design Requirements and Design Constraints, Performance Requirements, Interface Requirements, Verified Requirements, Validated Requirements, Qualification Requirements, The “Ilities” and Specialty Engineering Requirements, Unknowable Requirements, Product Requirements, Process Requirements, Logistics Support Requirements, Environmental Requirements System, Subsystem, and Component Requirements Terminologies to Avoid Source or Customer Requirements Nonnegotiable Versus Negotiable Requirements Key Requirements Originating Requirements Other Guidelines

6 Gathering Requirements. Plan the Approach, Case Study

7 Best Practices for Requirements Development and Management

8 The RA’s Specialty

Text Book:

1. Software Requirements Engineering, 2nd Edition.

CS321-Software Quality Engineering

Course

SE321

Code:

Pre

SE200 Software Engineering

Requisites:

Credits:3+0

Contact Hrs: 3

Course

The course helps the students to understand and apply the

Objectives:

concepts of product and project life-cycle, error propagation, cost to repair, regression testing and test construction techniques. Course highlights all those aspects which can help in improving the quality of a product. By the course completion student will be able to use the idea of usability engineering along with the above mentioned skills.

Course Contents

1 Introduction to software quality assurance

2 Inspections and reviews

3 Principles of software