Sei sulla pagina 1di 24

MSc (CS)

New Course Outline

1
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


 Title is changed
 Course contents are changed
I Data Bases Database Systems
 Recommended Books are
updated
 Title is changed
Data Structures and  Course contents are changed
II Data Structures
Algorithm Analysis  Recommended Books are
updated
 Course contents are changed
III Operating Systems Operating Systems  Recommended Books are
updated
 Course contents are changed
Object Oriented Object Oriented
IV  Recommended Books are
Programming Programming
updated
 Course contents are changed
Data Communication Data Communication
V
and Networks and Networks  Recommended Books are
updated
 Title is changed
Digital Logic Design
 Course contents are changed
VI Digital Logic Design and Computer
Organization  Recommended Books are
updated
Analysis of  Title is changed
Algorithm & Advanced  Course contents are changed
VII
Advanced Programming  Recommended Books are
Programming updated
 Course contents are changed
Software
VIII
Engineering
Software Engineering  Recommended Books are
updated
 Course contents are changed
Compiler Compiler
IX  Recommended Books are
Construction Construction
updated
Mobile and Web
X E-Commerce  New course
Technologies
 Course contents are changed
XI Artificial Intelligence Artificial Intelligence  Recommended Books are
updated
Final Year Project
XII Thesis Renamed
(FYP)

2
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.

3
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

4
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

5
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

6
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

7
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.

8
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.

9
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

10
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

11
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.

12
 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

13
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.

14
MSc (CS)
Old Course Outline

15
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

16
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,

17
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.

18
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.

19
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, 1 st ed, Khanna Pub.1989
3. Data and Computer Communications by William Stallings, 5 th ed Prentics Hall, 1994
4. Data Communications and Networking, Behrouz A. Forouzan, 3rd ed, McGrawHill, 2003

20
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

21
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 5 th 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

22
-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

23
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

24

Potrebbero piacerti anche