24
1 MSc (CS) New Course Outline

MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

1

MSc (CS)

New Course Outline

Page 2: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

2

Revised M.Sc. (Computer Science) Curriculum

The following changes are made in the curriculum of M.Sc. Computer Science.

Paper# Old Course Title New Course Title Remarks

I Data Bases Database Systems

Title is changed

Course contents are changed

Recommended Books are

updated

II Data Structures Data Structures and

Algorithm Analysis

Title is changed

Course contents are changed

Recommended Books are

updated

III Operating Systems Operating Systems

Course contents are changed

Recommended Books are

updated

IV Object Oriented

Programming

Object Oriented

Programming

Course contents are changed

Recommended Books are

updated

V Data Communication

and Networks

Data Communication

and Networks

Course contents are changed

Recommended Books are

updated

VI Digital Logic Design

Digital Logic Design

and Computer

Organization

Title is changed

Course contents are changed

Recommended Books are

updated

VII

Analysis of

Algorithm &

Advanced

Programming

Advanced

Programming

Title is changed

Course contents are changed

Recommended Books are

updated

VIII Software

Engineering Software Engineering

Course contents are changed

Recommended Books are

updated

IX Compiler

Construction

Compiler

Construction

Course contents are changed

Recommended Books are

updated

X E-Commerce Mobile and Web

Technologies New course

XI Artificial Intelligence Artificial Intelligence

Course contents are changed

Recommended Books are

updated

XII Thesis Final Year Project

(FYP) Renamed

Page 3: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

3

Details of Courses for M.Sc. Previous

Paper I - Database Systems

Course Description: Establish proficiency in the fundamental concepts of database systems and the

database system development life cycle of an enterprise database. It discusses the theoretical

foundations of database architecture, Relational Algebra, and Relational Calculus. This course also

focuses on the principles, design and implementation of multi-user databases and its applications in

client/server environment.

Aims and Objectives: When students successfully complete this course, they will be able to:

Understand intricacies involved in the design and implementation of a database system.

Have in-depth knowledge of entity-relationship (ER) modelling

Demonstrate competence with the fundamental tasks involved in gathering and analyzing user

requirements, build conceptual, logical, and physical data models that reflect the

organization’s requirements.

Apply normalization techniques.

Query a relational DBMS to create and maintain databases in a client server environment.

Course Contents: Introduction to database systems, The Relational Data Model, Relational Algebra

and Relational Calculus, Database environment, Database Management System, Conceptual database

modeling using the entity-relationship model and Enhanced Entity-Relationship modeling, Schema

quality through the study of functional dependencies and normalization, Multi-Valued Functional

Dependency, Logical and Physical Database Design, The SQL (DDL, DML, and DCL), Database

application development, data integrity, constraints (entity integrity, referential integrity, domain

integrity etc. ), Database Security, Possible threats to database, Authorization and Authentication,

Access Controls, Backup and Recovery, Views, Database Transaction Management, Database

Concurrency, Transactions and Its ACID Properties, Anomalies due to concurrent execution of

transaction and Concurrency Control, Serializability, Lock-Based Concurrency Control, handling

Deadlocks in concurrency, Time-Stamping technique for concurrency control, Optimistic

Methods, Database Recovery

Recommended Books

1. Connolly, T. M., & Begg, C. E. (2014). Database Systems: A Practical Approach to

Design, Implementation and Management (6th edition). Addison Wesley Publishing

Company.

Bibliography

1. Elmasri, R., & Navathe, S.B. (2016). Fundamentals of Database Systems (Global Edition).

Pearson Education Limited.

2. Hoffer, J., Venkataraman, R., & Topi, H. (2015). Modern database management. Prentice

Hall Press.

Page 4: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

4

3. Garcia-Molina, H. (2011). Database systems: the complete book (Latest edition). Pearson

Education India.

4. Ramakrishnan, R., & Gehrke, J. (2003). Database Management Systems (3rd edition).

WCB/McGraw Hill.

5. Silberschatz, A., Korth, H. F., & Sudarshan, S. (2002). Database system concepts (4th

edition). New York: McGraw-Hill.

Paper II - Data Structures and Algorithm Analysis

Course Description: The goal of this course is to teach the principles behind the algorithms and

data structures. This course will cover a set of basic data structures and algorithms of common

computing problems. This course will cover major algorithm design techniques and graph theory.

Aims and Objectives: Students successfully completing this course should be able to:

Have knowledge of the commonly used data structures and algorithms

Choose the most appropriate data structure for a particular problem

Implement a variety of algorithms for sorting and searching

Have knowledge of the basic principles of algorithms analysis

Understand how to evaluate an algorithm for efficiency

Have knowledge of main algorithm design techniques

Understand the basics of graph theory

Course Content: Introduction to Data Structures, Physical data representations, Primitive and

Non-primitive data structures. Arrays, one and two-dimensional arrays, accessing array elements

(address calculation), Row-Major Order, Linked List, linked list representation in memory,

Operations on linked list, Insertion, deletion and traversal in linked lists. Doubly Linked List,

Insertion, Deletion and traversing in doubly linked list, Circular linked list, Stack, stack operations,

stack applications, Stack implementation using Array and linked list, Stack Applications:

Evaluating Postfix expression using stack and Converting Infix to Postfix using stack, Queue,

Applications of queue, Queue implementation using arrays and linked list, circular queue, Priority

queue, Trees, Tree terminologies, Binary Tree, Tree Implementation using arrays and linked lists,

Binary Search Tree, Algorithms for Search, Traversal, Insertion and Deletion operations,

Introduction to Algorithm Analysis, Running time analysis, order of growth, Empirical Analysis,

Factors influencing the execution time of an algorithm. Best case and worst case analysis.

Asymptotic notations, Recurrences, Recurrence relation and Solutions, Sorting Algorithms and

their Algorithm Analysis: Bubble sort, Selection sort, Insertion sort, Quick sort, Merge Sort, Heap

Sort, Linear time sorting algorithms: counting sort, bucket sort, radix sort. Searching techniques,

sequential search, binary search, hashing techniques, Introduction to Graphs, Graph Theory

Terminologies, Graph representations, Breadth First Search, Depth-First Search, Divide and

Conquer approach, Greedy Algorithms, Greedy Algorithms in Graphs, Minimum Spanning Trees,

Prims Algorithm, Kruskal’s Algorithms, Introduction to Dynamic Programming.

Recommended Books

Page 5: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

5

1. Miller, B., & Ranum, D. (2014). Problem Solving with Algorithms and Data Structures

using Python (2nd ed.). Franklin, Beedle & Associates.

2. Lambert. (2014). Fundamentals of Python: Data Structures (Latest ed.). New York:

McGraw-Hill.

Bibliography

1. Sedgewick, R. (2011). Algorithms (Latest ed.). Princeton University Publisher: Addison-

Wesley Professional.

2. Cormen, T.H. (2010). Introduction to Algorithms (3rd ed.). MIT Press, McGraw-Hill.

3. Langsam, Y., Tenenbaum, A., & Augenstein, J. (1996). Data structure using C and C++

(Latest ed.). Prentice-Hill Inc.

4. Weiss, M. (1993). Data Structures and Algorithm Analysis (Latest ed.). Florida

International University, Addison-Wesley.

Paper III - Operating Systems

Course Description: This course will introduce the core concepts of operating systems, such as

processes and threads, scheduling, synchronization, memory management, file systems, input and

output device management and security. The course will consist of assigned reading, weekly

lectures, a midterm and final exam, and a sequence of programming assignments. The goal of the

readings and lectures is to introduce the core concepts. The goal of the programming assignments

is to give students some exposure to operating system code. Students are expected to read the

assigned materials prior to each class, and to participate in in-class discussions.

Aims and Objectives: When students complete this course, they will be able to:

To understand the services provided by and the design of an operating system.

To understand what a process is and how processes are synchronized and scheduled.

To understand different approaches to memory management.

Course Contents: Introduction & Overview, Computer Organization, Interrupts, Components of

Operating System, Processes & PCB, Process Creation, Process Management, Processes, Process

States, Process State Models, Inter-Process Communication, Process Scheduling, Threads,

Synchronization Issues, Busy Waiting Algorithm &Bakery Algorithm, TSL & Priority Inversion,

Semaphores, Classical Synchronization Problems, Dead Locks, Deadlock Detection, Deadlock

recovery, Deadlock Avoidance, Deadlock Prevention, Memory management, Real Memory

Organization and Management, Virtual Memory Organization: Paging, Segmentation, Virtual

Memory Management: Placement, Replacement, and Fetch Strategies Input Output Management,

File System.

Recommended Books

Page 6: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

6

1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials

(9th ed.). John Wiley & Sons.

Bibliography

1. Ritchie, C. (2003). Operating Systems (4th ed.). BPB Publications.

Paper IV -Object Oriented Programming

Course Description: This course discusses the object-oriented model in programming. Students

taking this course would have already taken a course on programming. This will help build good

quality software using object-oriented techniques

Aims and Objectives: When students complete this course, they will be able to:

Understand the importance of OOP as compared to Structured Programming.

Understand the basic constructs of a C++ program.

Define a problem and implement its solution using classes and objects.

Effectively use and implement OOP analysis and design.

Understand object-oriented programming features in C++.

Understand object-oriented concepts and how they are supported by C++.

Gain some practical experience of C++,

Course Contents: Object Oriented Programming (OOP) and its Significance as a Modeling

Technique. Comparison of Structured Programming and OOP, Classes and Objects in C++,

Abstraction, New User Defined Data Types, Creating Objects from Classes, Accessing Member,

Access Specifiers, Member Functions, Defining Member Functions, Constructors and Properties,

Default Constructor, Constructor Overloading, Copy Constructor, Deep Copy, Shallow Copy,

Destructors, “this” Pointer, Constant Member Function, Static Variables, Accessing Static Data

Member, Static Member Function, Comparison of Global Variables and Static Variable, Arrays of

Objects, Pointer to Objects Templates, Function Templates, Class Templates, Data Encapsulation

and Abstraction, Importance of Data Encapsulation and Abstraction, Correctly Using the Access

Modifiers, Friend Functions, Composition, Aggregation, Operator Overloading, Overloading

Assignment Operator, Friend Function and Operator Overloading, Unary Operators Overloading,

Inheritance and Importance, Inheritance in C++, Comparison of Overloading and Overriding,

Hierarchy of Inheritance, Types of Inheritance, Private Inheritance, Protected Inheritance Multiple

Inheritance Problem in Multiple Inheritance, Polymorphism and Importance, Virtual Functions,

Static Binding, Dynamic Binding, Abstract Classes and Concrete Classes, Virtual Destructors,

Virtual Functions and Pure Virtual Functions, Virtual Functions Usage, Dynamic Dispatch,

Namespaces and Using Namespaces, Memory Management and Importance, Memory

Areas(Heap, Stack), Use of new Operator, malloc() and calloc() Functions Calls.

Recommended Books

Page 7: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

7

1. Deitel, H. M., Deitel, P. J., & Nieto, T. R. (2016). C++ How to Program (10th ed.).

Prentice Hall.

2. Laurence, P. (2017). C++: The Ultimate Crash Course to Learning the Basics of C++

(Latest ed.). Prentice Hall.

Bibliography

1. Lafore, R. (2001). Object-Oriented Programming in C++ (4th ed.). Pearson Education.

2. Kanetkar, Y. (2003). Let us C++ (2nd ed.). PBP Publication.

Paper V – Data Communication & Computer Networks

Course Description: This course familiarizes the students about the fundamental concepts of Data

communication and Computer networks, its components and design. This course is about the

concept, design and management of data over a network. It focuses on the components of

communication system, the representation of data and the transmission mechanisms. It also

focuses on Computer Networks and the physical layer of the OSI model. The focus is on the data

link, network and transport layers. The course discusses the design, working and different

protocols working on these layers.

Aims and Objectives: When students complete this course, they will be able to:

Identify the different components and their respective roles in a communication system.

How the data is represented in analog and digital forms?

Identify the transmission mechanism and the induced challenges.

Understand the fundamental concepts of networking.

Know different protocols and working.

Identify the challenges involved in data flow and error control.

Course Contents: Introduction and components of data communication, data representation and

flow, computer networks, categories and topologies, protocol and standards, network models, the

OSI and TCP/IP Model, network devices such as hub, bridge, router, repeater etc., addressing and

its types, analog/digital data and signals, related concepts such as periodic, aperiodic, phase,

wavelength, frequency, bit rate, attenuation, distortion, noise etc., noiseless and noisy channels

using Nyquist and Shannon Capacity theorem, conversion of signal from digital to digital & analog

and vice versa , multiplexing and its types, circuit and packet switching, error correction and

detection, framing with flow and error control, protocols for noiseless and noisy channels, multiple

access techniques and its types such as random access and channelization etc., Ethernet and its

IEEE standards, concepts and working of wireless LANs (802.11) and Bluetooth (802.15),

concepts related to cellular networks and different generation of mobile networks, IPv4 and IPv6

packet format, addressing and its transition, routing and its types such as unicast and multicast

routing protocols, TCP, UDP and SCTP protocols and format, introductory concepts about

protocols such as SNMP, HTTP, FTP, DNS, DHCP, ICMP, IGMPv6.

Recommended Books

Page 8: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

8

1. Forouzan, B. A., & Mosharraf, F. (2012). Computer Networks: A Top-down Approach

(Latest ed.). McGraw-Hill.

2. Stallings, W. (2007). Data and Computer Communications (Latest ed.). Prentice Hall.

3. Forouzan, B. A. (2007). Data Communications and Networking. McGraw Hill.

4. Tenanbaum, A. S. (2003). Computer Networks. Prentice Hall.

Paper VI – Digital Logic Design and Computer Organization

Course Description: This is a course on both Digital Logic Design and Computer Organization.

Basic computer components and how they function are studied in detail.

Aims and Objectives: When students successfully complete this course, they will be able to:

Understand how computers work and how they are constructed.

Understand how a simple processor is constructed.

Understand the interface between hardware and software.

Course Contents: Introduction to Digital Logic Design: Digital Systems, Numbering Systems:

Inter-conversion, Arithmetic, Complementation, Complement Arithmetic, Binary Coding

Systems, and Binary Logic. Boolean Algebra and Boolean Functions: Boolean Algebra Axioms

and Theorems, Boolean Functions, Representation, Simplification, and Implementation of

Boolean Functions, Combinational Logic: Analysis and Design Procedures for Combinational

Circuits, Construction of adders, Magnitude Comparators, Multiplexers, Decoders, Encoders and

building a 32-bit ALU, Sequential Circuits. Introduction to Computer Organization, Operations of

a Computer, Instruction Set Architectures (ISA), Complex Instruction Set Computing (CISC),

Reduced Instruction Set Computing (RISC), operations of the computer hardware, importance of

assembly language, introduction to registers, data and instruction representation, different types of

instructions, loops and if statements in assembly, supporting procedures/functions in computer

hardware, supporting different data types in hardware, immediate and addresses in instructions,

compiling and linking processes to convert a C/Java program into assembly and then converting

that into machine code, Processor design: processor datapath, designing a processor which is able

to execute instructions and including the control unit, busses interrupts. Evaluating performance

of a system, latency, response time, and throughput, CPU execution time, calculating CPU

execution time for a program, benchmarks and Amdahl’s law, Memory Hierarchy

Recommended Books

1. Mano M. M., Charles R. Kime, & Martin, T. (2015). Logic and computer design

fundamentals (5th ed.). Pearson Education.

2. Patterson, D. A., & Hennessy, J. L. (2013). Computer Organization and Design the

Hardware/Software Interface. Morgan Kaufmann.

3. Mano. M. M. (2009). Digital Logic and Computer Design. Prentice-Hall Publications.

Page 9: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

9

Details of Courses for M.Sc. Final

Paper VII- Advanced Programming

Course Description: This course comprises of advanced programming topics in the Java

programming Language. This course builds on the earlier programming offered on Object Oriented

Programming. Advanced concepts of program design, implementation and testing will be

introduced within a framework of object oriented programming using the Java programming

language.

Aims and Objectives: This course assumes that students know the basic concepts of Object

Oriented Programming. When students complete this course, they will be able to:

Create Java application using sound OOP practices

Create multi-threaded applications which can execute faster on current multi-core

architectures.

Create network and distributed applications

Create event driven Graphical User Interfaces (GUIs)

Create Java applications connected to databases.

Understand how Java can be used for Functional programming.

Course Contents: Introduction to the Java Platform: The Java Platform, Java Virtual Machine

and Portability, Classes and Object Creation in Java, OOP Concepts in Java i.e. Data Encapsulation

and Abstraction, Inheritance and Polymorphism, Abstract classes and Interfaces in Java, Java

packages, Inner Classes, usage of inner classes, accessing private members, Java Collections and

Generics , Exception Handling and its importance, throwing and catching exceptions, try catch

finally blocks, Threads and its importance, creating threads, starting threads, sleep, join, priority,

daemon threads, thread synchronization and its importance, sharing objects between threads and

race conditions, synchronized methods and synchronized blocks, wait(), notify(), notifyall(),

explicit locks for synchronization other features in the Java Concurrent package, reading and

writing string values from a file, preserving object state using Serialization, network programming:

Introducing Java Sockets and the java.net package, TCP based programming, UDP based

programming, sending objects over the network using Serialization, Java Remote Method

Invocation (RMI), Graphical User Interfaces (GUIs), Event Driven Programming and using it

with GUIs, Java Database Connectivity (JDBC), functional programming and its importance,

Lambdas, Data Streams in Java

Recommended Books

1. Schildt, H.( 2017). A Beginners Guide (7th ed.). McGraw-Hill, Inc.

2. Deitel, H., & Deitel, P.( 2015). Java How to Program (10th ed). Prentice Hall Press.

Bibliography

1. Schildt, H. (2017 ). Java: The Complete Reference (10th ed.). McGraw-Hill, Inc.

Page 10: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

10

Paper VIII - Software Engineering

Course Description: In this course, the students will be provided with concise description of state

of the art software process models and application of software engineering concepts. This course

covers advanced theoretical concepts in software engineering and emphasis will be placed on agile

software development methodologies for team development, quality assessment, and knowledge

management in software engineering. It also focuses on the object-oriented approach for analysis

and design. Students will understand the difference between writing programs and doing analysis

and design. Problem analysis and solution design will be emphasized. Students will work in teams

and will be responsible for analysis, design and implementation of a software system.

Aims and Objectives: When students complete this course, they will be able to:

Introduce different state of the art software development methodologies.

Analyze different methodologies to understand success and failure indicators, advantages,

and disadvantages.

Provide training in agile software development through Extreme Programming

methodology which focuses on human factor along with technical details of software

development.

Develop a working understanding of formal object-oriented analysis and design processes

and software development.

Enable students to identify, formulate, and solve software development problems.

Introduce the techniques, skills, and modern engineering tools necessary for software

engineering practice.

Course Contents: Software Process Models, Predictive Models (Waterfall Model, Waterfall with

Feedback, V-Model. Success and Failure Indicators), Incremental Models (Prototyping Model,

Spiral Model, Rational Unified Process), Agile Models (Lean and Agile Principles), Extreme

Programming (XP) Process. XP Roles, Principles, Values and Practices, Planning Game, Releases

and Iterations, Test Driven Development, Refactoring, Pair Programming, Collective Ownership,

Continuous Integration, On-site Customer, Coding Standards, Open Source Development,

Commercial Off the Shelf Development Process Model. Concept of Software Development Life

Cycle (SDLC), Object Oriented Concepts. Modeling as a Design Technique, Object Modeling,

OMT, Unified Modeling Language (UML) in detail, Requirement Gathering and Development,

Requirements Categories, FURPS+, Modeling and Analyzing Requirements, Analysis Modeling

(Scenarios, Use Case, User Stories). Requirement Prioritization, Object Oriented Design (OOD),

Principles of OOD, SOLID (Single-responsibility Principle, Open-Closed Principle), Identifying

Objects and Entities, Designing Data Model (ERD). Mapping Concepts, O/R Mapping, Mapping

Metadata, Mapping Inheritance Structures (Hierarchies, Concrete Classes, Multiple Inheritance),

Mapping Object Relationships, Mapping Relational Database Relationships. Detailed design

through UML structured and behavior diagrams. Interface (UI) Design Process, Architectural

Analysis, Architectural Styles, Software Testing Fundamentals, Software Testing Concepts, Test

Case Design, Levels of Testing. Unit Testing, Integration Testing, Acceptance Testing,

Regression Testing, Testing Object-Oriented Systems, Use-case Based Testing, Class Diagram

Based Testing, Sequence Diagram-based Testing,

Recommended Books

Page 11: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

11

1. Stephens, R. (2015). Beginning software engineering (1st ed.). Jhon Wily & Sons.

2. Stellman, A., & Greene, J. (2013). Learning Agile: Understanding Scrum, XP, Lean, and

Kanban (Latest ed.). O'Reilly Media.

3. Ambler, S. W., & Lines, M. (2012). Disciplined agile Delivery: A Practioner’s Guide to

Agile Software delivery in the Enterprise (Latest ed.). IBM Press.

Bibliography

1. Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Pearson

Education.

2. Beck, K., & Andres, C. (2004). Extreme Programming Explained: Embrace Change, (The

XP Series). Addison-Wesley Professional.

3. McConnell, S. (2004). Code Complete: A Practical Handbook of Software Construction

(Latest ed.). Microsoft press.

4. Larman, C. (2001). Applying UML and Patterns: An introduction to Object-Oriented

analysis and Design (Latest ed.). Prentice Hall International.

Paper IX - Compiler Construction

Course Description: The course is intended to teach the students the basic techniques that underlie

the practice of Compiler Construction. The course will introduce the theory and tools that can be

employed in order to perform syntax-directed translation of a high-level programming language

into an executable code. These techniques can also be employed in wider areas of application,

whenever we need a syntax-directed analysis of symbolic expressions and languages and their

translation into a lower-level description. They have multiple applications for man-machine

interaction, including verification and program analysis. In addition to the exposition of techniques

for compilation, the course will also discuss various aspects of the run-time environment into

which the high-level code is translated. This will provide deeper insights into the more advanced

semantics aspects of programming languages, such as recursion, dynamic memory allocation,

types and their inferences, object orientation, concurrency and multi-threading.

Aims and Objectives: Students successfully completing this course should be able to:

Understand programming language concepts deeply.

Understand processing of programming languages by computers.

Have full command on techniques used by Translator software.

Course Contents: Introduction to Translators, Compiler, Interpreter, Assembler, Context of

Compiler, Pre-processor, Assembler, Linker, Loader, Compiler introduction: Analysis-Synthesis

Model of Compiler, Phases of Compiler, Two-Pass Assembly, Physical Organization of Compiler,

Cousins of compiler, Compiler-Compilers, Lexical Analysis: Role of Lexical Analyzer, Lexical

Error Handling, Buffering Issues in Lexical Analyzer, Lexical Analyzer Implementation (Hand

coding, Lex), Syntax Analysis: Introduction to Top-Down and Bottom-Up Parsers, Recursive-

Descent Parsers, Predictive Parsers, Non-Recursive Predictive Parser, Shift-Reduce Parser,

Operator Precedence Parsers, LR Parsers, LL(1) Grammars, LR(1) Grammars, YACC, Syntax

Page 12: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

12

Error Handling, Type Systems, Symbol Table Management, Runtime Environment, Intermediate

Code: Triples, Indirect Triples, Quadruples, Symbol Table: Techniques such as Lists and Hash

Tables, Code Optimization, Code Generation.

Recommended Books

1. Watson, D. (2017). A Practical Approach to Compiler Construction. Springer.

2. Mogensen, T. Æ. (2011). Introduction to compiler design. Springer Science & Business

Media.

Bibliography

1. Dave, P. H., & Dave, H. B. (2012). Compilers: Principles and Practice (Latest ed.).

Pearson Education India.

2. Puntambekar, A. A. (2009). Principles of compiler design (Latest ed.). Technical

Publications.

3. Cooper, K., & Torczon, L. (2011). Engineering a compiler (Latest ed.). Elsevier.

Paper X - Mobile and Web Technologies

Course Description: This course provides a detailed presentation and understanding of the basic

concepts and principles of the mobile phones platform, World Wide Web, and the essential

languages, tools, and technologies. In the first part, this course starts with introducing and

familiarizing students with the basic tools required for web programming including HTML, CSS,

JavaScript, and server-side programming using PHP. Questions such as what are they, when

should we use these languages, for what purpose and to what extent these languages help us create

modern, engaging and stable websites will be covered. Students will experience how to create

basic web pages with HTML, including basic structuring of page content, apply basic formatting

styles using CSS, understanding JavaScript for basic interactivity and client-side scripting, and

create dynamic web pages by implementing server-side script to perform operations on a web

server. In the second part, this course is to teach and train students how to design, implement, test,

debug and publish smartphone applications on smartphone platforms, especially Android. Students

will learn how to take their innovative ideas from conception to the apps market through a series

of rigorous hands-on programming assignments and group projects.

Aims and Objectives: When students complete this course, they will be able to:

Know the fundamentals of web application architecture and web programming.

Apply a structured approach to identifying needs, interests, and functionality of a website.

Design dynamic websites that meet specified needs and interests.

Write well-structured, easily maintained, standards-compliant, accessible HTML code, and

CSS code to present HTML pages in different ways.

Use JavaScript for client-side scripting and add dynamic content to pages.

Use PHP to implement server-side script for creating dynamic web pages and access

databases.

Critique mobile applications on their design pros and cons.

Page 13: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

13

Utilize rapid prototyping techniques to design and develop sophisticated mobile interfaces.

Program mobile applications for the Android operating system.

Design, implement, test, debug and publish smartphone applications.

Work in collaborative environment by working in group assignments.

Course Contents: Advantages and Disadvantages of Internet, Web Server, Web Browser, Web

Clients, and Search Engines, Client-Server Architecture, Types and Categories of Websites,

Creation and Basic Structure of HTML Document, HTML Tags (Headings , Paragraphs, Line

Break, Horizontal Line, Font, Preformatted Text, Lists, Images, Tables, Hyperlink, Fame, and

Form), CSS, Inserting JavaScript Code in HTML Document, JavaScript Constructs (Variables,

Operators, Type Casting, Decision Control Structures, Loops, Function, Array, and DOM),

Installing and Configuring Apache and PHP, Creating PHP File, Overview of Variables and

Constants, Output Statement in PHP, Passing Variables Between Pages (URL, Sessions, Cookies,

and Forms), Accessing and Using Database in PHP. Android Platform and Architecture,

Comparison of Android and Other Platforms, Configuring Development Environment, Activities,

Services, Broadcast Receiver, Intents, Designing Interface Using Views and Widgets, Linear

Layout, Relative Layout, List View, Dialogs and Notification, Location and Maps Services, Shared

Preferences, Creating and Using Database, Content Providers, Publishing and Deploying

Applications on Android Market.

Recommended Books

1. Nixon, R. (2015). PHP: 20 Lessons to Successful Web Development (Latest ed.). McGraw-

Hill Education Group.

2. Horton, J. (2015). Android Programming for Beginners (Latest ed.). Packt Publishing Ltd.

3. Duckett, J. (2014). Web Design with HTML, CSS, JavaScript and jQuery Set (Latest ed.).

Wiley Publishing.

4. Phillips, B., & Hardy, B. (2013). Android programming: the big nerd ranch guide (Latest

ed.). Pearson Education.

5. Nixon, R. (2012). Learning PHP, MySQL, JavaScript, and CSS: A step-by-step guide to

creating dynamic websites (Latest ed.). O'Reilly Media, Inc.

Bibliography

1. Meier, R. (2012). Professional Android 4 application development (Latest ed.). John Wiley

& Sons.

2. Boronczyk, T., Naramore, E., Gerner, J., Scouarnec, Y. L., &Stolz, J. (2009). Beginning

PHP 6, Apache, MySQL 6 Web Development (Latest ed.). Wrox Press Ltd.

3. Lee, W. M. (2012). Beginning android 4 application Development (Latest ed.). John Wiley

& Sons.

Paper XI - Artificial Intelligence

Course Description: Artificial intelligence (AI) is an area of computer science that emphasizes

the creation of intelligent machines that work and react like humans. This course introduces

Page 14: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

14

Artificial Intelligence. It covers the basics of modern AI as well as some of the representative

applications of AI.

Aims and Objectives: Students successfully completing this course should be able to:

Understand different branches of AI

Understand the Natural Language processing, Machine Translation

Understand the Expert systems, state transition model, knowledge elicitation and

representation (Propositional/Predicate Logic)

Can program in Prolog Language

Course Contents: Intelligence, Artificial Intelligence (AI), Introduction to different branches of

AI e.g. Natural Language Processing, Expert Systems, Speech Processing, Computer Vision,

Robotics, Machine Learning, Pattern Recognition and Neural Networks. Natural Language

Processing: Difference with computer language, understanding syntax, semantics, phonetics,

morphology, discourse analysis, anaphora, cataphora, cohesion, coherence, ellipsis, ambiguity.

Natural Language Understanding and Generation. Machine Translation (MT): steps, Strategies,

units and some existing MT systems. Expert Systems: State Transition model, the structure of state

space, search, Understand the lists, knowledge elicitation, and knowledge representation.

Propositional/Predicate Logic. Prolog language.

Recommended Books

1. Orban, G. A., & Nagel, H. H. (2012). Artificial and biological vision systems (Latest ed.).

Springer Publishing Company, Incorporated.

2. Luger, G. F. (2005). Artificial intelligence: structures and strategies for complex problem

solving (Latest ed.). Pearson education.

3. Jurafsky, D., & James, H. (2000). Speech and language processing an introduction to

natural language processing, computational linguistics, and speech (Latest ed.). Pearson

Education,Inc.

4. M. A. Khan (1995). Text Based Machine Translation (Latest ed.). University of Peshawar.

Bibliography

1. Rich, E., & Knight, K. (1991). Artificial intelligence (Latest ed.). McGraw-Hill, New York.

2. Russell, S., Norvig, P., & Intelligence, A. (1995). A modern approach. Artificial

Intelligence (Latest ed.). Prentice-Hall.

3. Frenzel, L. E. (1986). Crash course in artificial intelligence and expert systems (Latest

ed.). Jr. Howard W. Sams & Co.

Page 15: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

15

MSc (CS)

Old Course Outline

Page 16: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

16

Courses M.Sc Program (Computer Science)

(Previous & Final)

M.Sc Previous

I. PAPER SUBJECT MARKS

1. Data Bases 75

2. Data Structures 75

3. Operating System 75

4. Object Oriented Programming 75

5. Data Communication & Computer Networks 75

6. Digital Logic Design/ Computing System 75

_______________________________________________________________

Sub- Total- 1 = 450

Practicals

1. Practical-I (Paper-1) 25

2. Practical-II (Paper-2) 25

3. Practical-III (Paper-3) 25

4. Practical-IV (Paper-4) 25

5. Practical-V (Paper-5) 25

6. Practical-VI (Paper-6) 25

_______________________________________________________________

Sub- Total- 2 = 150

_______________________________________________________________

Total marks of M.Sc Previous 600

M.Sc Final Year

II. PAPER SUBJECT MARKS

7. Analysis of Algorithms & Advanced Programming 75

8. Software Engineering 75

9. Compiler Construction 75

10. E-Commerce 75

11. Artificial Intelligence 75

______________________________________________________________

Sub- Total- 3 = 375

Practicals

7. Practical-VII (Paper-7) 25

8. Practical-VIII (Paper-8) 25

9. Practical-IX (Paper-9) 25

10. Practical-X (Paper-10) 25

11. Practical-XI (Paper-11) 25

12. Thesis 100

______________________________________________________________

Sub- Total- 4 = 225

______________________________________________________________

Total marks of M.Sc final year 600

______________________________________________________________

GRAND TOTAL 1200

Page 17: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

17

Syllabus of M.Sc Department of Computer Science

University of Peshawar

M.Sc Previous

PAPER-1 DATABASES

Entity-Relationship Model

Data Models

a) Hierarchical, Network, Relational, Comparison of all Data Models

b) Relation, Characteristics of Relation, Converting E-R Model into Relations.

Normalization (1NF, 2NF, 3NF, 4NF, 5NF)

Relational Algebra, Relational Calculus.

Database Design (Conceptual Design, Physical Design)

- Database administration

- Database Integrity

- Database Security

- Database Recovery

- Database Concurrency

- Distributed Databases

- Object Oriented Databases using ODMG standard (Object Model Object Definition Language (PDL)

- Object Query Language (SQL)

- Object Manipulation using the available Object Oriented Languages.

SQL.

1. Writing Basic SQL statements

2. Restricting and sorting rows

3. Single row functions

4. Displaying data from multiple tables

i) Join

ii) Different types of join

5. Aggregating data using group functions

6. Sub queries

7. Manipulating data

8. Creating and managing tables

9. Creating Views

10. Other database objects

11. Controlling User Access

PL/SQL.

1. Declaring Variables

2. Writing executable statements

3. Writing explicit cursor

4. Advance explicit cursor concepts

5. Handling Exceptions

Recommended Readings:

1. An Introduction to data base systems by C.J. Date,

Addison-Wesley Publishing Company, USA, 1989

2. Database Design Gio Weiderhold, McGraw-Hill Book Company. 1992

3. Fundamentals of data base systems by S.M. Deen, Macmillan Publishing

Company Ltd. England, 1994.

4. Fundamental of database system by Rameez Elmasri and S.B. Navathe,

Page 18: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

18

3rd Edition, Addison Wesley, 1990.

III.

IV. PAPER-2 DATA STRUCTURES

Introduction to algorithms & data structures. Introduction to physical data representation, data item, record, file, &

blocks (fixed variables). Disk formats & track formats. The structure of sequential files, processing sequential files.

The structure of indexed sequential files, processing indexed sequential files. The structure of direct files, processing

direct files. Partitioned organization. System data volumes & catalog. Logical data structures. Arrays: The use of

arrays, storage of arrays, accessing array elements with dope vectors, array accessing with LIFO vectors, array

accessing using hashing functions, access labels, lists: queues, depueues, stack, linked lists, multiple linked lists, trees:

tree terminology, tree traversing, accessing the node of a tree representation of trees in a computer system. Binary

trees: Traversing binary trees, representation of binary in a computer system, accessing a binary in in-order post-order,

pre-order, Graph Theory, Comparative analysis of internal sorting methods such as selection sort, bubble sort, merge

sorting tree sorts, partition exchange sort, radix sort & address-calculation sort, Simulation studies of sorting using

random number, Searching: sequential searching, binary searching, & hashing techniques.

Right-threaded binary tree.

Recommended Readings:

1. An Introduction to data structure with application by Jean-Paul Tremblay & Paul G. Surenson, McGraw Hill,

1987.

2. Computer Data structure by John, I. Pfaltz, & McGraw-Hill 1989.

3. Data Structure by Brian Bailey, Blackie, & Son Ltd. England.,1989

4. Introduction to Computer Organization & Data structure by Harold S. Stone, McGraw-Hill Book Company,

1987.

5. Data structure using Pascal by Aaron M. Tenenbaum & Moshe J. Augenstein, Prentice-Hill Inc., New Jersey,

1985.

V.

VI. PAPER-3 OPERATING SYSTEM

1. BACKGROUND OF HARDWARE:

Basic elements, processor registers, instruction execution, interrupt interconnection structure, the

memory hierarchy & organization.

2. OPERATING SYATEM------ GENERAL INTRODUCTION

Objectives & functions, evolution of operating system, types of operating system: batch processing,

time-processing & time processing systems.

3. OPERATING SYSTEM AS A RESOURCE MANGER:

A: PROCESS MANAGEMENT:

i) PROCESSING CONCEPT:

Processing definition, process control block, interrupt processing, and the nucleolus of the

operating system.

ii) ASYNCHRONOUS CONCUSSENT PROCESSING:

Parallel processing, mutual exclusion sections, mutual exclusion primitives & their

implementations, Decker’s algorithm, N-processes mutual exclusion, semaphores.

iii) DEDLOCKS:

Resource concept, Necessary Conditions for deadlock occurrence, deadlock prevention,

Avoidance, Detection & Recovery.

Page 19: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

19

B: STORAGE MANAGEMET:

i) REAL SRORAGE MANAGEMET:

Contiguous Vs Non-Contiguous Storage Allocation, Single User Contiguous Storage

allocation, Fixed-partitioned multiprogramming, Variable-partitioning multiprogramming

& garbage collection.

ii) VIRTUAL STORAGE ORGANIZATION:

Paging, Segmentation, Combined paging & Segmentation, Protection & sharing in Virtual

storage organization.

iii) VIRTUAL STORAGE MANAGEMANT:

Replacement, Placement & Fetch strategies, Resident set management, page Release, page

size, principle of locality, working set theory of memory management, thrashing.

iv) SECONDARY STORAGE MANAGEMENT:

Movable-head disk scheduling policies for seek latency optimization desirable

characteristics for a disk scheduling policy.

C: I/O MANAGEMENT:

Objectives & Structure of the I/O System Performance of the I/O System: Buffering, Spooling,

Multiprogramming.

D: INFORMATION MANAGEMENT:

File & Database systems: file systems, functions, the data hierarchy, blocking & buffering, file

organization, allocating & freeing storage space, file descriptor, access control.

E: PROCESSOR MANAGEMENT:

Job & processor scheduling levels, objectives & criteria, preemptive & non-preemptive scheduling,

scheduling policies: deadline, FIFO, RR, SJF, HRN, & multi-level feedback queues scheduling.

4: OPERATING SYSTEM SECURITY:

5: A BRIEF INTRODUCTION TO ADVANCED TOPICS: NETWORK &

DISTRUBUTED PROCESSING OPERATING SYSTEM:

6: UNIX OPERATING SYSTEM AS CASE STUDY:

UNIX Basics:

UNIX, UNIX Kernel, UNIX Files,

Shell Fundamentals:

Command Syntax, File names, Expressions, I/O Redirection, pipes,

Shell Commands:

File & Directory commands, selecting commands, combining & ordering commands, editors,

printing & security.

Shell Decisions & Repetitions:

Shell variables, Environment variables, special variables, Quoting teat. Exp. Control structure.

Recommended Books:

Tenebaum, Andrew S. Modern Operating System, Prentice Hall International Inc, 1996.

1. Colin Ritchie, Operating System, BPB Publications, 1995.

2. Lauri S. Keller, Operating Systems Prentice Hall Inc, 1992.

3. An Introduction to operating system by Harvey M. Deitel, Addison-Wesley publishing company, 1986.

4. Operating systems by William stalling, Maxwell Macmillan International editions.1985

PAPER-4 OBJECT-ORIENTED PROGRAMMING

Object Oriented Programming Paradigm: Encapsulation, Information Hiding, Inheritance, & Polymorphism.

Motivation for Object-Oriented Programming: Significance of Object Orientation as a Modeling Technique, Software

Reuse, & Software Maintenance. Abstraction, Encapsulation, and Information Hiding: Classes, Objects, and Class

Members; Instantiation; Message Passing; Visibility qualifiers; Function Overloading. Software Reuse and

Inheritance; Class Hierarchies and Information Sharing/Hiding, Inheritance versus Composition, Single and Multiple

Inheritance, Inheritance and Association, Function/Method Overriding. Polymorphism: Early and Late binding of

functions, Polymorphism with Function/Method Overloading and Function/Method Overriding.

Page 20: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

20

Related Concepts from Java and C++: Operator Overloading, Friend and Inline Functions, Reference and Reference

Parameters, Default Arguments, Virtual Functions, Virtual Functions and Polymorphism, Destructors, Copy and

Conversion Constructors Interfaces, Class and Class Members Qualifiers, Function and Class Templates.

Recommended Books.

1. Object Oriented Programming using Java by Timoty Budd., Pearson Education Asia, 2000

2. Object Oriented Programming using C++ by Timoty Budd. Pearson Education Asia, 2000

3. C++How to Program by Dietal & Dietal, 2nd Edition, Prentice-Hall, 2000

5. Patric Naughton, Herbert Schildt “The Complete Reference, Java 2

“5th ed, Osborne, MC Graw Hill corp.2002)

PAPER-5 DATA COMMUNICATIONS AND COMPUTER NETWORKS

Introduction to Basic Data Communication Concepts

Data Communication, History, Advantage, Model

Bits, Bytes, bps, Bauds

Character Codes

Parallel/Serial and Synchronous/Asynchronous Transmissions

Simplex, Half/Full Duplex Communications

Computer Networks, Model, Uses, Types, Topologies

Standard-Making Organizations

OSI Reference Model

TCP/IP and the Internet

The Physical Layer

Transmission Media

Analog and Digital transmissions

Multiplexing and Switching

ISDN

The Medium Access Layer

LAN Protocols

IEEE Standard 802 for LANs

The Data Link Layer

Design Issues, Protocols, Error Detection and Correction

The Network Layer

Design Issues, Routing and Congestion Control Algorithms, Internetworking

The Transport Layer

Design Issues, Connection Management

The Session Layer

Design Issues, RPC

The Presentation Layer

Design Issues, ASN, Data Compression, and Cryptography

The Application Layer

Design Issues, File Management, E-mail, Virtual Terminals, etc

Practical Work

Networking using UNIX and MS Windows

Network Resource Management

Internetworking

Recommended Readings:

1. Computer Networks by Andrew S. Tanenbaum, 2nd ed Prentice Hall , 1995

2. Computer Networks and ISDN Systems by Dr. D.C. Agarwal, 1st ed, Khanna Pub.1989

3. Data and Computer Communications by William Stallings, 5th ed Prentics Hall, 1994

4. Data Communications and Networking, Behrouz A. Forouzan, 3rd ed, McGrawHill, 2003

Page 21: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

21

PAPER-6 DIGITAL LOGIC AND DESIGN

Introduction: Digital Systems, Numbering Systems: Inter-conversion, Arithmetic, Complementation,

Complement Arithmetic, Binary Coding Systems, and Binary Logic. Boolean Algebra and Boolean Functions:

Boolean Algebra Axioms and Theorems, Boolean Functions, Representation, Simplification, and Implementation

of Boolean Functions, Combinational Logic: Analysis and Design Procedures for Combinational Circuits; Design

of Combinational Circuits with MSI; Construction of adders, Magnitude Comparators, Multiplexers, Decoders,

Encoders, and ROMs with MSI. Sequential Circuits: Flip-Flops, Analysis and Design Procedures for Sequential

Circuits; Analysis and Design of Registers, Counters, and Memory Units. Design of a Computer System: Register

Transfer Logic, Processor Logic Design, Control Logic Design, Computer Design, and Microcomputer System

Design.

Recommended Books

4. Digital Logic and Computer Design by M. Morris Mano, Printice-Hall Publications, 2000.

5. Digital Logic by M. Morris Mano, Printice-Hall Publications.,2001

M.Sc Final PAPER-7 ANALYSIS OF ALGORITHMS & ADVANCED PROGRAMMING

A. ANALYSIS OF ALGORITHMS:

B. Introduction, Properties of algorithms, features of algorithms, factors influencing the performance of

algorithms (not in control of the programmer), Analysis of Algorithms, classification of algorithms,

computational complexity, Asymptotic Notations, usefulness and limitations of the Asymptotic notation, Basic

Recurrences, Recurrence Solutions, Factors influencing the execution time of an algorithm, some examples to

calculate the T(n) of algorithms (including examples from searching and sorting), implementation of

algorithms, rules for implementation, empirical analysis, Introduction to Generation functions, system

approach, algorithms and systems, dynamic programming, greedy algorithms, divide and conquer approach.

C. Books:

1. Introduction to Algorithms by Thomas H. Corman et al, The MIT

Press, 2nd Ed, 2001.

2. An Introduction to the Analysis of Algorithms by Robert Sedgewick et al, Addison-wesley

Publishing Company, 1995.

ADVANCED PROGRAMMING:

Overview, Advanced programming techniques and application in Java.

Exception Handling in Java. Multithreading, Networking Basics, InetAddress, TCP/IP Client Sockets, URL,

Datagrams, Servlets, Java Beans, RMI, JDBC, Introduction to JSP

Books:

1. Patric Naughton, Herbert Schildt “The Complete Reference, Java 2

“5th ed, Osborne, MC Graw Hill corp.2002)

2. Advanced Java 2 Platform: How to Program by Harvey M. Deitel, Paul J. Deitel, Harvey M. Deitel Prentice Hall;2001

3. JDBC API Tutorial and Reference, Third Edition

by Maydene Fisher, Jon Ellis, Jonathan Bruce Addison-Wesley Professional; 3 edition (June

11, 2003)

4. Java RMI by William Grosso O'Reilly; 1 edition (October 15, 2001)

PAPER-8 SOFTWARE ENGINEERING

Page 22: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

22

Software Engineering Concepts and Principles: Introduction, Software process Models, and Software Process

Management. Functional-Oriented Software Engineering: System Engineering, Analysis Concepts and Principles,

Analysis Modeling, Design Concepts and Principles, Design Methods, Software Testing. Object-Oriented Software

Engineering: Object-Oriented Concepts and Principles, Object-Oriented Analysis, Modeling, and Design using UML

Approach, Object-Oriented Software Testing. Technical Matrices for Software: Case Studies with Functional-

Oriented and Object-Oriented Software Engineering: Practical work in CASE Tools

Like Visio, Rational rose, and MS-Project.

Recommended Books:

1. Software Engineering: A Practitioner’s Approach 5th Edition by Roger S. Pressman, Mc-Graw-Hill

International, 2001.

2. Software Engineering By lan Sommerville, 5th Edition, Addison Wesley Instant UML by Pierre-Alain Muller,

Wrox Publications,2002.

PAPER-9 COMPILER CONSTRUCTION

Automata Theory

Languages, Defining Languages

Regular Expressions

Finite Automata, NFA, DFA, Conversion, Optimization

Push-Down Automata, Grammars, Types, CFG

Turing Machines

Introduction to Compilers

Logical and Physical Organization, Compiler-Like Tools

Lexical Analysis

Role, Issues, Implementation

Syntax Analysis

Grammars, Parsing, Implementation

Semantic Analysis and Type Checking

Error Handling

Symbol Tables

Run-Time Environments

Intermediate Code Generation

Code Optimization

Code Generation

Compiler-Compilers

Recommended Readings:

1. Compilers: Principles, Techniques, and Tools

By Alfred V. Aho, Ravi Sethi, Jeffery D. Ulman, 1989, Prentics Hall

2. Crafting a Compiler by Charles N. Fischer, Rechard J. LeBlanc, Prentics Hall, 1990.

3. Theory and practice of Compiler Writing

By Jean Paul Tremblay, Paul G. Sorenson, McGrawHill, 1992

5. Introduction to Computer Theory by Daniel I. A. Chen, McGrawHil, 1992

6. Formal Languages and Automata Theory by Vladimir Drobot., Prentics Hall, 1992

PAPER-10 ELECTRONIC COMMERCE

-Introduction to E-Commerce

-Understanding E-Commerce

-E-Commerce applications

-Firewalls and transaction security

-Electronic payment systems

-Electronic Commerce and banking

-Vendor management systems

-Extended supply chain management

Page 23: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

23

-Component-based development for E-Commerce

-Technology issues and strategies

-Intranets and web technology

Recommended Readings

1. Electronic Commerce by M. Greenstein and T.M. Feinman, Mc Graw-Hill

International Editions, 2000

2. Beginning E-Commerce by M. Reynolds.

Shroff Publishers and Distributers Pvt. Lmt., 2000

3. Electronic Commerce –A manager’s guide by R.Kalakota and

A.B. Whinston Addison-Wesley, 1997

Page 24: MSc (CS) New Course Outline Course Outline.pdf · 2019-04-18 · 6 1. Silbershatz, A., Galvin, P. B., & Gagne, G. (2012) Operating System Concept Essentials (9th ed.). John Wiley

24

PAPER-11 ARTIFICIAL INTELLIGENCE

Intelligence, Artificial Intelligence (AI), Introduction to difference branches of AI e.g. Natural Language Processing,

Expert Systems, Speech Processing, Computer Vision, robotics, Machine Learning, Pattern Recognition and Neural

Networks.

Natural Language Processing: Difference with computer language, understanding: syntax, semantics, phonetics,

morphology discourse analysis, anaphora, cataphors, cohesion, coherence, ellipse, ambiguity, Generation

Machine Translation (MT): Steps, strategies, units, and some existing MT systems.

Expert Systems: State transition model, the structure of a state space, search, functions for handling lists, knowledge

elicitation, knowledge representation, existing expert systems, knowledge-bases systems

Propositional/Predicate logic, Visual Prolog language.

Recommended Readings:

1. Understanding Natural languages by Terry Winograd,

Edinburgh University Press 1972

2. Language as cognitive process by Terry Winograd, Addison-Wesley Publishing

Company, 1983.

3. Artificial Intelligence by Elain Rich, McGraw-Hill books Company, 1989.

4. Crash Course in Artificial Intelligence and Expert systems by Louise E. Frenzel,

Jr. Howard W. Sams & Co, 1987.

5. Text based machine translation by M.A. Khan, 1995

6. Speech and Language Processing by Daniel Jurafsky and Martin; Pearson Education: 2000