BS Courses
Following Courses are being offered at Faculty
of Information Technology:
- Computing
Core Courses
- Computer
Science Core Courses
- Computer
Science Elective Courses
- Computing-Supporting
Sciences
- Computing
General Education
- BS
Computer Science Courses (Supporting Courses)
- BS
Computer Science Courses (Elective General)
Computing
Core Courses
INTRODUCTION
TO COMPUTING
Course Structure: 4(3+1)
Pre – Requisite: None
Post Course(s): Programming Fundamentals, Object
Oriented Paradigms
Objectives
This course focuses on
a breadth-first coverage of computer science discipline, introducing
computing environments, general application software, basic computing
hardware, operating systems, desktop publishing, Internet, software
applications and tools and computer usage concepts; Introducing
Software engineering and Information technology within the broader
domain of computing, Social issues of computing.
Course Outline
Number Systems, Binary
numbers, Boolean logic, History computer system, basic machine
organization, Von Neumann Architecture, Algorithm definition,
design, and implementation, Programming paradigms and languages,
Graphical programming, Overview of Software Engineering and Information
Technology, Operating system, Compiler, Computer networks and
internet, Computer graphics, AI, Social and legal issues. Peripheral
Devices. Monitor (Resolution Issues). Computer Structures. Bus
Structure. Basic Operations of the Computer. Representation of
Data in the Memory. Storage Technologies. Using Files. Digital
Electronics. (Inside The System Unit. Digital Data Representation.
Data Representation Codes. Data Transport.). Memory. (Virtual
Memory. Read only Memory.) Central Processing Unit. (CPU Architecture.
Instructions Instruction Cycle. Pipelining & Parallel Processing).
Data Security & Viruses, Vandalism and Computer crime. Data
Security & Risk Management. Program Planning & Design.
Control Structures & Program Writing. (Boolean Expressions.
Definition of Control Structures. Selection. Repetition). Introduction
to Arrays, Searching, Sorting, Data Structures. Data Files. (Text
& Binary Files). Software Engineering.
Suggested Book(s)
- Computer Concepts by June Jamrich Parsons, 2nd edition.
- Introduction to Computer Science by Ramon A. Mata Toledo
& Pauline K.Cushman.
- An Overview of Computer Science, 6th edition by J.Glenn Brookshear.
- Computer Systems, 6th Edition by Stanley Warford.
- Introduction to Computers, 4th edition by Peter Norton.
- Computer Fundamentals by P.K.Sinha.
- Computers: Information Technology in Perspective, 9/e by
Larry Long and Nancy Long, Prentice Hall, 2002/ISBN: 0130929891.
- An Invitation to Computer Science, Schneider and Gersting,
Brooks/Cole Thomson Learning, 2000.
- Computer Science: An overview of Computer Science, Sherer.
PROGRAMMING FUNDAMENTALS
Course Structure: 4(3+1)
Pre - Requisite: Introduction to Computing
Post Course(s): Object Oriented Paradigms
Objectives
The course is designed
to familiarize students with the basic structured programming
skills. It emphasizes upon problem analysis, algorithm designing,
and programme development and testing.
Course Outline
Algorithms and problem
solving, development of basic algorithms, analyzing problem, designing
solution, testing designed solution, fundamental programming constructs,
translation of algorithms to programmes, data types, control structures,
functions, arrays, records, files, testing programmes.
Suggested Books
- Programme Design with Pseudo-code, Bailey and Lundgaard,
Brooks/Cole Publishing, 1988
- Simple Programme Design: A step-by-step approach, 4/e, Lesley
Anne Robertson, ISBN: 0-619-16046-2 © 2004.
OBJECT ORIENTED
PARADIGMS
Course Structure: 4(3+1)
Pre – Requisite: Programming Fundamentals
Post Course(s): -
Objectives
The course aims to focus
on object-oriented concepts, analysis and software development.
Course Outline
Evolution of OO, OO concepts
and principles, problem solving in OO paradigm, OO programme design
process, classes, methods, objects and encapsulation; constructors
and destructors, operator and function overloading, virtual functions,
derived classes, inheritance and polymorphism. I/O and file processing,
exception handling
Suggested Books
- Understanding Object Oriented Programming, Budd, Addison
Wesley.
- Java: How to Programme, 5/e, Deitel and Deitel, Prentice
Hall, 0131016210/ 0131202367 International Edition.
- C++: How to Programme, Deitel and Deitel, 4/e, Pearson.
- Thinking in C++, 2nd Edition, Bruce Eckel, Prentice Hall.
DATA STRUCTURES
& ALGORITHMS
Course Structure: 4(3+1)
Pre – Requisite:
-
Post Course(s): Analysis of Algorithms
Objectives
The course is designed
to teach students about structures and algorithms which allow
them to write programs which can efficiently manipulate, store,
and retrieve data.
Course Outline
Introduction to data structures;
Arrays, Stacks, Queues, Priority Queues, Linked Lists, Trees,
and Graphs. Recursion, sorting and searching algorithms, Hashing,
Storage and retrieval properties and techniques for the various
data structures. Algorithm Complexity, Polynomial and Intractable
Algorithms, Classes of Efficient Algorithms, Divide and Conquer,
Dynamic, Greedy. Algorithm Analysis, Introduction to recursion.
Recursive algorithms and their analysis, Performance issues of
recursive algorithms. LAB (Implementing Recursive algorithms).
Data Types and Abstract Data Types (ADTs), Common ADTs and their
use in Computer Software. The Array as an ADT, Using and implementing
one dimensional and multidimensional array. LAB on Array ADT.
The List ADT, Simple Array Implementation of Lists. Linked Lists,
Doubly Linked Lists, Circularly Linked List. LAB on List ADT.
Stack ADT, Implementation of Stack using array. Implementation
of Stack using Linked List, Applications of Stack. LAB on Stack
ADT. Queue ADT, Implementation of Queue. Implementation of Queue
using Stack and using Link List, Application of Queues. LAB on
Implementation of Queue. Overview of Tree data structure, Tree
Properties, Types of Trees etc. Binary Tree ADTs, Traversals and
Iterators, Implementation (continued) LAB on Trees Binary Tree
implementation, Expression Trees. Review & Brief Discussion
about midterm. Binary Search Tree, BST operations. LAB on Trees.
BST Operations (continued). Height Balanced Trees i.e. AVL Trees
LAB on Trees. AVL tree Implementation (continued). B Trees ADT’s
Overview. Lab on Trees. Spanning Trees. Hashing, hash functions
description. Open Hashing, Closed Hashing, Rehashing. Lab on Hashing.
Priority Queues and Binary Heap and their Implementation. Lab
on Priority Queues and Binary Heaps. Insertion Sort, Shell Sort,
Merge Sort, Quick Sort, Radix Sort, etc. Lab on Sorting Algorithms.
Expression Evaluation. Graphs.
Suggested Books
- Data Abstraction and Problem Solving with C++, 2nd ed, Frank
M. Carrano, Paul Helman, Robert Veroff, Addison-Wesley, 1998.
- Data Structures and Algorithms (SAMS teach yourself), Lafore,
Sams Publishing, 1999.
- Data Structures in JAVA, Standish, Addison Wesley, 2000
- Data Structure and Algorithm Analysis in C, 2nd Edition by
Mark Allen Weiss
- Data Structure and Algorithm Analysis in C++, 2nd Edition
by Mark Allen Weiss
- Data Structure using C and C++, 2nd Edition by Yedidyah Langsam,
Moshe j. Augenstein, Aaron M. Tenenbaum
- Fundamental of Data Structure in C++ by Ellis Horowitz, Sartaj
Sahni, Dinesh Mehtah
DISCRETE
STRUCTURES
Course Structure: 3(3+0)
Pre – Requisite:
-
Post Course(s): -
Objectives
Introduces the foundations
of discrete mathematics as they apply to Computer Science, focusing
on providing a solid theoretical foundation for further work.
Further, this course aims to develop understanding and appreciation
of the finite nature inherent in most Computer Science problems
and structures through study of combinatorial reasoning, abstract
algebra, iterative procedures, predicate calculus, tree and graph
structures.
Course Outline
Introduction to logic and
proofs: Direct proofs; proof by contradiction, Sets, Combinatorics,
Sequences, Formal logic, Prepositional and predicate calculus,
Methods of Proof, Mathematical Induction and Recursion, loop invariants,
Relations and functions, Pigeon whole principle, Trees and Graphs,
Elementary number theory, Optimization and matching. Fundamental
structures: Functions (surjections, injections, inverses, composition);
relations (reflexivity, symmetry, transitivity, equivalence relations);
sets (Venn diagrams, complements, Cartesian products, power sets);
pigeonhole principle; cardinality and countability.
Suggested Books
- Discrete Mathematics and Its Applications, 5th edition; by
Rosen; McGraw-Hill; 0-07-242434-6.
- Discrete Mathematics by Richard Johnsonbaugh, Prentice Hall,
0135182425.
- Discrete Mathematical Structures, 4th Edition, by Kolman,
Busby & Ross, 2000, Prentice-Hall, ISBN: 0-13-083143-3.
DIGITAL LOGIC & COMPUTER
ARCHITECTURE
Course Structure: 4(3+1)
Pre – Requisite: Discrete Structures, Introduction to Computing
Post Course(s): -
Objectives
This course introduces
the concept of digital logic, gates and the digital circuits.
Further, it focuses on the design and analysis combinational and
sequential circuits. It also serves to familiarize the student
with the logic design of basic computer hardware components.
Course Outline
Overview of Binary Numbers,
Boolean Algebra, switching algebra, and logic gates, Karnaugh
Map and Quin-McCluskey methods, simplification of Boolean functions,
Combinational Design; two level NAND/NOR implementation, Tabular
Minimization, Combinational Logic Design: adders, subtracters,
code converters, parity checkers, multilevel NAND/NOR/XOR circuits,
MSI Components, design and use of encoders, decoders, multiplexers,
BCD adders, and comparators, Latches and flip-flops, Synchronous
sequential circuit design and analysis, Registers, synchronous
and asynchronous counters, and memories, Control Logic Design,
Wired logic and characteristics of logic gate families, ROMs,
PLDs, and PLAs, State Reduction and good State Variable Assignments,
Algorithmic State Machine (ASM) Charts, Asynchronous circuits,
Memory systems, Functional organization, Multiprocessor and alternative
architectures: Introduction to SIMD, MIMD, VLIW, EPIC; systolic
architecture; interconnection networks; shared memory systems;
cache coherence; memory models and memory consistency, Performance
enhancements, Contemporary architectures. Design of RAMO, ROM.
Suggested Books
- Digital Design, 2nd Ed., M. Morris Mano, Prentice Hall, 1991.
- Practical Digital Logic Design and Testing, P K Lala, Prentice
Hall, 1996.
DATABASE SYSTEMS
Course Structure: 3 (3+0)
Pre – Requisite: Data Structures & Algorithms
Post Course(s): -
Objectives
The course aims to introduce
basic database concepts, different data models, data storage and
retrieval techniques and database designtechniques. The course
primarily focuses on relational data model and DBMS concepts.
Course Outline
Basic database concepts;
Entity Relationship modeling, Relational data model and algebra,
Structured Query language; RDBMS; Database design, functional
dependencies and normal forms; Transaction processing and optimization
concepts; concurrency control and recovery techniques; Database
recovery techniques; Database security and authorization. Small
Group Project implementing a database. Physical database design:
Storage and file structure; indexed files; hashed files; signature
files; b-trees; files with dense index; files with variable length
records; database efficiency and tuning Data Warehousing and Data
Mining, Emerging Database Technologies and Applications. ISAM,
VSAM.
Suggested Books
- Database Systems, C.J.Date, Addison Wesley Pub. Co. (2004).
- Database Systems: A Practical Approach to Design, Implementation
and Management, R.Connolly and P.Begg, Addison-Wesley Pub. Co
(2003).
- Fundamentals of Database Systems, 3/E, Elmasri and Navathe,
Addison-Wesley, ISBN: 0-201-74153-9.
- “Modern Database Management”, Haffer Jeffery,
6th Edition.
DATABASE
SYSTEMS (LAB)
Course Structure: 2(0+2)
Pre – Requisite:
-
Post Course(s): -
Objectives
Lab Work.
Suggested Books
5. Database Systems, C.J.Date, Addison
Wesley Pub. Co. (2004).
6. Database Systems: A Practical Approach to Design, Implementation
and Management, R.Connolly and P.Begg, Addison-Wesley
Pub. Co (2003).
7. Fundamentals of Database Systems, 3/E, Elmasri and Navathe,
Addison-Wesley, ISBN: 0-201-74153-9.
8. “Modern Database Management”, Haffer Jeffery,
6th Edition.
OPERATING
SYSTEMS
Course Structure: 4(3+1)
Pre – Requisite: Data Structures & Algorithms
Post Course(s): -
Objectives
The objective of this course
is to give students knowledge of construction and working of Operating
systems, to enable them to understand management and sharing of
computer resources, communication and concurrency and develop
effective and efficient applications and also to appreciate the
problems and issues regarding multi-user, multitasking, and distributed
systems.
Course Outline
History and Goals, Evolution
of multi-user systems, Process and CPU management, Multithreading,
Kernel and User Modes, Protection, Problems of cooperative processes,
Synchronization, Deadlocks, Memory management and virtual memory,
Relocation, External Fragmentation, Paging and Demand Paging,
Secondary storage, Security and Protection, File systems, I/O
systems, Introduction to distributed operating systems. Scheduling
and dispatch, Introduction to concurrency. Lab assignments involving
different single and multithreaded OS algorithms. Different OS
Concerns --- (Scheduling and Resource Management, Information
Protection and Security, User Interface, System Calls)Process
(A Structured Review of Multiprocessing, Two, Three, Five and
Seven State Process Models Process Implementation (Process tables
and other Control Structures, Process Attributes), Process Execution
Modes, Basics of Process Scheduling, Multithreaded Processes (Thread
Basics, KLT’s and ULT’s, Hybrid threads and other
variations), Inter-Process Communication, Concurrency Concerns
and IPC problems (Critical Sections, Mutual Exclusion and Its
basic implementation methods (S/W Based techniques, H/W Based
techniques, Semaphores, Monitors and Mutexes, Deadlocks (Basic
problem and its causes, Ostrich Algorithm, Disk Management (Disk
Scheduling, RAID)), Disk Cache, File organization and Management,
I/O Control (Basics, I/O Functional organization, I/O Buffering),
Scheduling and Resource Management (Discussion on different Uni
– processor scheduling algorithms with a deeper touch of
scheduling problems), Issues in Multiprocessor Scheduling, Real
Time Scheduling, Information Protection and Security (Security
Flaws, Protection Mechanisms). File Management, File System, Directory
Structures.
Suggested Books
- “Modern Operating Systems”, 2nd Edition, 2002,
Tanenbaum, A. S., 2001
- Silberschatz / Galvin, “Operating System Concepts”,
1st Edition, 1991, Prentice Hall Inc.
- Applied Operating Systems Concepts, 6th Edition, Silberschatz
A., Peterson, J.L., & Galvin P.C. 1998.
COMPUTER
COMMUNICATION &NETWORKS
Course Structure: 4(3+1)
Pre – Requisite:
-
Post Course(s): -
Objectives
To introduce students to
the concept of computer communication. Analogue & digital
transmission. Network Layers, Network models (OSI, TCP/IP) and
Protocol Standards. Emphasis is given on the understanding of
modern network concepts.
Course Outline
Analogue and digital Transmission,
Noise, Media, Encoding, Asynchronous and Synchronous transmission,
Protocol design issues. Network system architectures (OSI, TCP/IP),
Error Control, Flow Control, Data Link Protocols (HDLC, PPP).
Local Area Networks and MAC Layer protocols (Ethernet, Token ring),
Multiplexing, Switched and IP Networks, Internetworking, Routing,
Bridging, Transport layer protocols TCP/IP, UDP. Network security
issues. Programming exercises or projects involving implementation
of protocols at different layers.
Suggested Books
- Introduction to Computer Networks, Tanenbaum
- Unix Network Programming, Richard Stevens
- Computer networks: a systems approach, Larry Peterson, Bruce
Davie, Princeton Univ., Princeton.
- Computer Networking: A Top-Down Approach Featuring the Internet,
2/e, James F Kurose, Keith W Ross, Addison Wesley 2003. ISBN:
0-201-97699-4.
- Data Communication and Network by Behrouz A. Forouzan, 2nd
edition.
INTRODUCTION TO SOFTWARE
DEVELOPMENT
Course
Structure: 4(3+1)
Pre – Requisite: Data Structures & Algorithms
Post Course(s): -
Objectives
To study various software
development models and phases of software development life cycle.
The concepts of project management, change control, process management,
software development and testing are introduced through hands-on
Team Projects.
Course Contents
Introduction to Computer-based
System Engineering; Project Management; Software Specification;
Requirements Engineering, System Modelling; Requirements Specifications;
Software Prototyping; Software Design: Architectural Design, Object-Oriented
Design, UML modelling, Function- Oriented Design, User Interface
Design; Quality Assurance; Processes & Configuration Management;
Introduction to advanced issues: Reusability, Patterns; Assignments
and projects on various stages and deliverables of SDLC.Modeling
the system architecture, System modeling. System specification.
System Proposal Documentation Design Phase: functional approach
.DFD, levels, Software Design, costing, Risk analysis, Software
Design types, procedural, architectural, data design, and interface
design Software Testing techniques. Functional specification,
Design Refinement and verification, Testing, Project Presentations.
Classifying and retrieving engineering tech. Report writing, Introduction
to CASE tools.
Suggested Books
- Object-Oriented Software Engineering, Stephan Schach, Irwin,
1999.
- Software Engineering - A practitioner's Aproach by Roger
S Pressman, 2001
- Software Engineering by Sommer Villi
SENIOR SOFTWARE
PROJECT
Course Structure: 6(6+0)
Pre – Requisite: Software Engineering-I, Database Systems, Computer Architecture
Post Course(s): None
Objectives
The software project involves
research, conceive, plan and develop a real and substantial project
related to computer science. It provides an opportunity to the
students to crystallize their acquired professional competence
in the form of a demonstrable software product. Make oral and
written project presentations.
Resources
- Software Project Management in Practice
by Jalote, Pankaj.
Computer Science Core Courses
COMPUTER ORGANIZATION
& ASSEMBLY LANGUAGE
Course Structure: 4(3+1)
Pre – Requisite: -
Post Course(s): -
Objectives
The main objective of this
course is to introduce the organization of computer systems and
usage of assembly language for optimization and control. Emphasis
should be given to expose the low-level logic employed for problem
solving while using assembly language as a tool. At the end of
the course the students should be capable of writing moderately
complex assembly language subroutines and interfacing them to
any high level language.
Course Outlines
Objectives and Perspectives
of Assembly Language, Microprocessor Bus Structure: Address, Data
and Control, Memory Organization and Structure (Segmented and
Linear Models), Addressing Modes, Introduction to the Assembler
and Debugger, Introduction to Registers and Flags, Data Movement,
Arithmetic and Logic, Programme Control, Subroutines, Stack and
its operation, Peripheral Control Interrupts, Interfacing with
high level languages, Real-time application. Introduction to computer
architecture, Intel Architecture History, IA-32 Processor, Assembly
Language Fundamentals, Elements of Assembly Language, Data Transfer,
Addressing Modes, Arithmetic’s, Procedures, Link to external
Libraries, Stack Operations, Conditional Processing, Integer Arithmetic,
Extended Addition & Subtraction, Advance Procedures, Recursion,
Interrupts, DOS Services, BIOS services, Structure & Macros,
Disk Fundamentals.
Suggested Book(s)
- Assembly Language For Intel Based Computers, 4/E By: Kip
R. Irvine
- Using Assembly Language (3rd Edition) By: Allen L. Wyatt,
Sr.
THEORY OF AUTOMATA
& FORMAL LANGUAGES
Course Structure: 3(3+0)
Pre – Requisite: Discrete Structures
Post Course(s): -
Objectives
The course aims to develop
an appreciation of the theoretical foundations of computer science
through study of mathematical & abstract models of computers
and the theory of formal languages. Theory of formal languages
and use of various abstract machines as ‘recognizers’
and parsing will be studied for identifying/validating the synthetic
characteristics of programming languages. Some of the abstract
machines shall also study as ‘Transducers’.
Course Outline
Finite State Models: Language
definitions preliminaries, Regular expressions/Regular languages,
Finite automata (FAs), Transition graphs (TGs), NFAs, kleene’s
theorem, Transducers (automata with output), Pumping lemma and
non regular language Grammars and PDA: Context free grammars,
Derivations, derivation trees and ambiguity, Simplifying CFLs,
Normal form grammars and parsing, Push-down Automata, Pumping
lemma and non-context free languages, Decidability, Chomsky’s
hierarchy of grammars Turing Machines Theory: Turing machines,
Post machine, Variations on TM, TM encoding, Universal Turing
Machine, Context sensitive Grammars, Defining Computers by TMs.
Suggested Books
- Theory of Automata By C.J. Martin
- Introduction to Computer Theory, Denial Cohen, John Wiley
& Sons, Inc
- Introduction to Automata Theory, Languages & Computation,
J Hopcraft, D. Ullman
- Languages & Machines, An Into to the Theory of Computer
Science, 2/e Thomas A. Sugkamp, Addison Wesley.
- “An Introduction to Formal Language & Automata”,
3/e, Peter Linz.
ANALYSIS OF ALGORITHMS
Course Structure: 3(3+0)
Pre – Requisite: Discrete Structures, Data Structures
Post Course(s): Advance Analysis of Algorithms
Objectives
Detailed study of the basic
notions of the design of algorithms and the underlying data structures.
Several measures of complexity are introduced. Emphasis on the
structure, complexity, and efficiency of algorithms.
Course Outline
Methodologies for Analyzing
Algorithms. Asymptotic Notations. Basic and Advance Data Structures.
Sorting Algorithms (Insertion Sort and Analysis, Merge Sort and
Analysis, Heap Sort, Heapification, Priority Queues, Quick Sort,
Sorting in linear time, Comparison of Sorting Algorithms). Graph
Traversals (Elementary Graph Theory and BFS, DFS and its Applications),
Advance Algorithm Design & Analysis Techniques (Elements of
Greedy Approach and Dynamic Programming, Coin Change Problem,
Knapsack Problem, Greedy Versus Dynamic Programming). Graph Algorithms
(Minimum Spanning Tree, Kruskal’s Algorithm, Prim’s
Algorithm, Single Source Shortest Path, Bellman Ford Algorithm,
Dijkstra’s Algorithm), Text Processing Algorithms(String
and Pattern Matching Algorithm, Shortest paths; Network flow;
Disjoint Sets; Polynomial and matrix calculations; String matching;
Text Compression Algorithm and Huffman Coding), NP – Completeness.
Approximation algorithms.
Suggested Book(s)
- Introduction to Algorithms, 2nd Edition by Cormen, Leiserson,
Rivest and Stein.
ARTIFICIAL INTELLIGENCE
Course Structure: 4(3+1)
Pre – Requisite: Discrete Structures, Analysis of Algorithms
Post Course(s): -
Course Description
This course will introduce
the basics of artificial intelligence (AI), its scope and application
domain.
Course Contents
Introduction to Common
Lisp. AI classical systems: General Problem Solver, rules, simple
search, means-ends analysis. ELIZA, pattern matching, rule based
translators, OPS-5. Knowledge Representation: Natural language,
rules, productions, predicate logic, semantic networks, frames,
objects, scripts. Search: Depth first search, breadth first search,
best first search, hill climbing, min-max search, A* search. Symbolic
Mathematics: student, solving algebra problems, translating English
equations, solving algebraic equations, simplification rules,
re-write rules, meta-rules, Macsyma, PRESS, ATLAS. Logic Programming:
Resolution, unification, horn-clause logic, Prolog, Prolog programming.
Sample case studies of shells and Knowledge Based Systems. A brief
appreciation of state of the art computational techniques like
neural networks, genetic algorithm, fuzzy sets.
Suggested Book(s)
- Artificial Intelligence: A modern Approach by Russell and
Norvig
- Artificial Intelligence by Luger and Stubblefield, 4th edition,
Pearson Education.
- “Essentials of AI” by Matt Ginsberg.
NUMERICAL COMPUTING
Course Structure: 4(3+1)
Pre – Requisite: High Level Scientific Programming Language & Calculus, Visual
Programming
Post Course(s): -
Objectives
On completion of this unit,
students will be able to demonstrate programming proficiency using
structured programming techniques in suitable programming languages
and implement numerical solutions using computerbased techniques.
Course Outline
Mathematical Preliminaries,
Solution of Equations in one variable, Interpolation and Polynomial
Approximation, Numerical Differentiation and Integration, Initial
Value Problems for Ordinary Differential Equations, Direct Methods
for Solving Linear Systems, Iterative Techniques in Matrix Algebra,
Solution of non-linear equations. Approximation Theory. Eigenvalues
and Eigenvector computation.
Suggested Book(s)
- Elements of Numerical Analysis, Dr. Faiz, M. Afzal
- "Numerical Analysis” by Burden Faires 5th Edition.
- Numerical Recipes in C by William H. Press
- Applied Numerical Analysis by Gerald/Wheatley.
SYSTEM
PROGRAMMING
Course Structure: 4(3+1)
Pre – Requisite: Operating Systems
Post Course(s): -
Course Description
Demonstrate mastery of
the internal operation of Unix system software including assemblers,
loaders, macro-processors, interpreters, interprocess communication.
Course Contents
System Programming overview:
Application Vs. System Programming, System Software, Operating
System, Device Drivers, OS Calls. Window System Programming for
Intel386 Architecture: 16 bit Vs 32 bit, Programming, 32 bit Flat
memory model, Windows Architecture. Virtual Machine (VM)Basics,
System Virtual Machine, Portable Executable Format, Ring O Computer,
Linear Executable format, Virtual Device Driver (V + D), New Executable
format, Module Management, COFF obj format 16 bit. (Unix) other
32-bit O.S Programming for I 386; Unix Binaryble format (ELF),
Dynamic shared objects, Unix Kernel Programming (Ring O), Unix
Device Architecture (Character & Block Devices), Device Driver
Development, Enhancing Unix Kernel. Dissembling File System, Memory
Management System of DOS/Windows. Programming programmable Devices
(PIC, UART, PPI, Interval times, DMA and other devices). Developing
Device Drivers.
Suggested Book(s)
- The UNIX Programming
Environment, B. Kernighan & R. Pike Prentice-Hall, 1984.
- System Software,
Leland L. Beck, Addison-Wesley Longmsan, 1990, ISBN: 0-201-50945-8.
Computer Science Elective Courses
COMPILER
CONSTRUCTION
Course Structure: 4(3+1)
Pre – Requisite:
Theory of Automata, Programming Languages
Post Course(s): -
Objectives
At the end of the course
students should understand the overall structure of a compiler,
and will know significant details of a number of important techniques
commonly used. They will be aware of the way in which language
features raise challenges for compiler builders.
Course Outline
Concepts of Compilation
,Language and Syntax , Analysis of Context-free , Languages, Syntax-directed
Translation, Lexical & Syntax Analysis, Role of Syntax Analysis.
The Construction of a Parser, Role of a Parser. Parsing Techniques,
Context-Dependencies, A RISC Architecture as Target, Expressions
and Assignments, Conditionals, Iterations, and Boolean Expressions,
Procedures and Locality, Further Data Types, Open Arrays, Pointers
and Procedure Types, Object-Oriented Concepts, Module and Separate
Compilation, Object Code Generation & Optimizations, Detection
& recovery from errors, Contrast between Compilers & Interpreters.
Object code generation and optimization, detection and recovery
from errors. Contrast between compilers and interpreters. LA Automation.
Transition Tables, Transition Diagrams. Run Time environment,
Code Generation. Tools - LEX, etc.
Suggested Book(s)
- Niklaus Wirth. Compiler Construction, Addison-Wesley, 1996
Alfred V. Aho, Ravi Sethi, Jeffery D. Ullman. Compiler -
- Principles, Techniques, and Tools, Addison-Wesley, 1986.
- Compiler Design & Construction, by Alfred V. Aho, Ravi
Sethi, Hard cover, 2/e, 1987, Van Nostrand Reinhold; ISBN:0317636367
SOFTWARE ENGINEERING-II
Course Structure:
4(3+1)
Pre – Requisite:
Introduction to Software Development, Data Structures
Post Course(s): None
Objectives
The students will study
techniques for software verification, validation and testing.
They would also study reliability and performance issues in software
design and development.
Course Outline
Software verification and
validation: Techniques are introduced to evaluate software correctness,
efficiency, performance and reliability, integration of these
techniques into a verification and validation plan. Technical
reviews, software testing, programme verification, prototyping,
and requirement tracing. Attitude of industry toward reliability
and performance.
Suggested Book(s)
- Software Engineering: A Practioner's Approach, Roger Pressman,
McGraw-Hill, 2001.
- Software Engineering, Ian Sommerville, Addison-Wesley 2001,
ISBN: 0-201-39815-X.
COMPUTER GRAPHICS
Course Structure: 4(3+1)
Pre – Requisite:
Object Oriented Programming, Visual Programming
Post Course(s): -
Objectives
Study of various algorithms
in computer graphics and their implementation in any programming
language.
Course Outline
Graphic Systems, Video
Display Devices, Raster Scan Systems, Random Scan Systems, Input
Devices, Hard Copy Devices, Graphics Software, Coordinate Representations,
Graphic Functions, Output Primitives, Points and Lines, Line Drawing
Algorithms, Incremental Line Algorithm, DDA Line Algorithm, Bresenham's
Line Algorithm, Parallel Line Algorithms, Loading the Frame Buffer,
Circle Generating, Algorithms, Properties of Circle, Inside-Outside
Test, Scan Line Fill of Curved Boundary Areas, Boundary Fill Algorithm,
Flood Fill Algorithm, Character Generation, Line Attributes, Line
Type, Line Width, Line Color, Pen and Brush Options, Curve Attributes,
Color and Gray Scale levels, Area Fill Attributes, Fill Style,
Pattern Fill, Soft Fill, Two Dimensional Geometric Transformations,
Translation, Rotation, Scaling, Clipping Operations, Point Clipping,
Line Clipping, Cohen-Sutherland Line Clipping, Polygon Clipping,
Sutherland-Hodgeman Polygon Clipping, Curve Clipping, Text Clipping,
Three Dimensional Concepts, Three Dimensional Display Methods,
Viewing Pipeline, Viewing Coordinates, Projections, Parallel Projections,
Axonometric Projections, Oblique Projection, Perspective Projections
, Depth-Cueing, Three Dimensional Object Representation, Polygon
Surfaces, Polygon Tables, Plane Equations, Polygon Meshes, Curved
Lines and Surfaces, Quadric Surfaces, Sphere, Ellipsoid , Torus,
Octrees, Fractal Geometry Methods, Self Similar Fractals, Self
Squaring Fractals, Self Inverse Fractals, Shape Grammars and Other
Procedural Methods, Three Dimensional Geometric and Modeling Transformations,
Translation, Scaling, Rotation, Coordinate-Axes Rotations, General
Three Dimensional Rotations, Composite Transformations, Classification
of Visible Surface, Detection Algorithms, Back Face Detection,
Depth Buffer Method, Scan Line Method, Depth Sorting Method, BSP
Tree Method, Area Subdivision Method, Ray Tracing, Light Sources,
Ambient light, Diffuse Reflection, Specular Reflection and Phong
model, Half tone patterns and Dithering Techniques, Polygon Rendering
Methods, Constant Intensity Shading, Gouraud Shading, Phong Shading,
Fast Phong Shading. Parametric Cubic Curves, Bicubic Surfaces.
Suggested Book(s)
- Computer Graphics by Donald Hearn, M. Pauline Baker: Prentice
Hall
- Computer Graphics Principles & Practice by Foley, Van
Dam, Feiner, Huges
- Computer Graphics, F.S.Hill, Maxwell MacMillan ISBN: 0-02-354860-6
DISTRIBUTED DATABASE SYSTEMS
Course Structure:
4(3+1)
Pre – Requisite:
Database Systems
Post Course(s): -
Objectives
The student will learn
the design, algorithms and techniques involved in distributed
database system and their implementation.
Course Outline
Advanced data models. Conceptual
Database design. Concurrency control techniques. Recovery techniques.
Query processing and optimization. Integrity and security. Client-Server
architecture. Distributed database systems. Current trends in
database systems. Database machines.
Suggested Book(s)
- Distributed Databases: Principles and System, Ceri and
Pelagatti McGraw-Hill Book Company 1984, ISBN: 0-07-010829-3.
- “Principles of Distributed Database Systems”,
Tamer Ozsu, Patrick Valduciez, 2/e.
VISUAL PROGRAMMING
Course Structure:
4(3+1)
Pre – Requisite:
Data Structures
Post Course(s): None
Objectives
To development applications
using various tools and APIs in visual programming.
Course Outline
Introduction to Windows
programming, Use of Windows API, MFC Class hierarchy, Class Wizard,
Application Wizard and Application Studio, Graphics Device Interface,
Menus, document view architecture, Multiple Views, files and archiving
mechanisms, converting Windows programmes to MFC, Sub-classing
controls. Iamge & Bitmap Serialization. Statis Libraries,
Dynamic Link Libraries. Database Handling. Socket Programming.
Internet programming. Threading, Multithreading and MultiTasking.
Active X Controls, COM Based Programming.
Suggested Book(s)
- MFC from the Ground Up.
- Windows 98 API Programming.
- VC++ A complete References.
- Mastering Visual C++ 6.0, by Michael J. Young
- Inside Visual C++ by Dravid
- Windows Programming 98/Me/2000/NT
- Using Visual C ++, Kate Gragory, QUE Series
COMPUTER ARCHITECTURE
Course Structure:
3(3+0)
Pre – Requisite:
Digital Logic & Computer Architecture
Post Course(s): Advance Computer Architecture
Course Description
This course provides an
introduction to computer architecture, working up from the logic
gate level; combination and sequential networks; computer arithmetic;
arithmetic/logic units; memory organization; and control unit
design. A number of contemporary processor architectures including
RISC and CISC are discussed and compared. The course covers various
approaches to computing systems including single processor, multiple
processors, parallel processors, and network architecture. Specific
emphasis is on understanding the leading commercially available
architectures.
Course Outline
Computer organization:
Control unit design, Instruction execution and sequencing of control
signals. Hardwired and Micro programmed control. Input-output
– Programmed, Interrupt driven and DMA I/O and interface
design. Arithmetic logic unit implementation, addition, subtraction,
multiplication and division operations for Integer and Floating
point numbers. Memory organization, memory hierarchy, cache memories
-mapping functions and page replacement policies, memory management
requirements and virtual memory hardware support. Fundamentals
of computer communications and error control. Review of Computer
Organization. Introduction to Architecture / Overview. Measuring
Performance. Instruction Set Principles. Introduction to Pipelining.
Advanced Pipelining. Dealing with Hazards. Instruction Level Parallelism.
Hardware and Software Support for ILP. Memory Hierarchy Design.
Storage System Design. High Performance Arithmetic
Suggested Books
- Computer Architecture: A Quantitative
Approach, 3rd Edition (May 15, 2002) by Hennessy, Patterson
and Goldberg. Published by Morgan Kaufmann
PRINCIPLES OF PROGRAMMING LANGUAGES
Course Structure: 3(3+0)
Pre – Requisite:
-
Post Course(s): -
Course Description
This course would act as
a bridge between the theory of automata and the compiler construction.
Course contains the design considerations for high-level languages,
additionally various notational representations of programming
languages i.e. syntax and semantics will be studied. This course
also focuses on the core items of the various programming languages
such as types, sequence controls, sub-program, storage management
etc.
Course Contents
Why Study Programming Language,
History of Programming Languages(Development of early languages,
Evolution of Software Architecture, Application Domain, Practicalities,
Criteria), Programming Languages Role(Factors in Good Languages,
Paradigms, Standardization), Programming Languages Syntax(General
Syntax Criteria, Syntactic Elements of a Language, Overall Program
Structure), Translation(Analysis of Source Program, Synthesis
of the Object Program), Formal Translation Models(BNF Grammar,
Finite-State Automata, Pushdown Automata, General Parsing Algorithms),
Programming Languages Semantics(Attribute Grammars, Denotational
Semantics, Program Verifications), Properties of Types and Objects(Data
Types, Data Objects, Variables and Constants, Declarations, Type
Checking and Type Conversions, Assignment & Initialization),
Scalar Data Types(Numeric, Enumerations, Booleans, Characters),
Composite Data Types(Character Strings, Pointers, Programmer Constructed),
Sequencing with Arithmetic Expressions(Tree Structure Representation,
Execution Time Representation), Sequencing with Between Statements(Basic
Statements, Structured Control, Prime Program), Inheritance(Polymorphism,
Inheritance),Storage Management(Elements Requiring Storage, Programmer
and System Controlled Storage, Static Storage Management, Heap
Storage Management).
Suggested Books
- Programming Languages: Design
and Implementation, 4/E by Terrence W. Pratt, Marvin V. Zelkowitz
- Concepts of Programming Languages,
6/E Addison-Wesley by Robert W. Sebesta, Carter Shanklin
Computing Supporting Sciences
CALCULUS & ANALYTICAL
GEOMETRY
Course Structure: 3(3+0)
Pre – Requisite: None
Post Course(s): -
Objective:
To build the basic calculus
and analytical geometry background.
Course Outline:
Complex Numbers, DeMoivre’s
Theorem and its Applications, Simple Cartesian Curves, Functions
and Graphs, Symmetrical Properties, Curve Tracing, Limit and Continuity,
Differentiation of Functions. Derivative as Slope of Tangent to
a Curve and as Rate of Change, Application to Tangent and Normal,
Linearization, Maxima/Minima and Point of Inflexion, Taylor and
Maclaurin Expansions and their convergence. Integral as Antiderivative,
Indefinite Integration of Simple Functions. Methods of Integration:
Integration by Substitution, by Parts, and by Partial Fractions,
Definite Integral as Limit of a Sum, Application to Area, Arc
Length, Volume and Surface of Revolution.
Suggested Book(s)
- Calculus and Analytical Geometry By Swokowski, Olinick and
Pence.
- Calculus, H. Anton, John Wiley and Sons (WIE), ISBN: 0471572608.
- Calculus, William E. Boyce Richard C. Diprima, John Wiley
& Sons, ISBN: 0471093335
PROBABILITY & STATISTICS
Course
Structure: 3(3+0)
Pre – Requisite: None
Post Course(s): -
Objective:
To introduce the concept
of statistics, randomness and probability and build on these concepts
to develop tools and techniques to work with random variables
Course Outline:
Introduction to Statistics,
Descriptive Statistics, Statistics in decision making, Graphical
representation of Data Stem-and Lead plot, Box- Cox plots, Histograms
and Ogive, measures of central tendencies, dispersion for grouped
and ungrouped Data, Moments of frequency distribution; examples
with real life, use of Elementary statistical packages for explanatory
Data analysis. Counting techniques, definition of probability
with classical and relative frequency and subjective approaches,
sample space, events, laws of probability. General Probability
Distributions, Conditional probability and Bayes theorem with
application to Random variable (Discrete and continuous) Binomial,
Poisson, Geometric, Negative Binomial Distributions; Exponential
Gamma and Normal distributions. Regression and Correlation.
Suggested Book(s)
- Introduction to Statistics, Walpole, 1982 Prentice Hall,
ISBN: 0024241504.
- Statistical Data Analysis, G. Cowan G, 1998, Clarendon, Oxford.
- Advances in Statistical Analysis and Statistical Computing
III Mariano R (Ed.), (1993), JAI Press, Greenwich, Conn.
PHYSICS (ELECTROMAGNETISM)
Course
Structure: 3(2+1)
Pre – Requisite: None
Post Course(s): -
Course Outline:
Review of Vectors, Electric
Charge: Coulomb’s Law, electric field and intensity, electric
potential, capacit |