Computer Science

I. Introduction to Computing

Introduction to Information Technology and Computers

History of Computing,

Computer Hardware and Software Details

Computer System Components and Communication System

Input & Output devices and their types

Storage Media and their types

Types of Computer Hardware, Software

and

Programming languages

Information Representation & Number Systems, User interfaces

Major Software Issues

Creation, formatting, and maintenance of Computer documents

Usage of Word processors

Spread sheets

Power-Point

Email

Search Engines

Browsers

Messengers

and

Internet

Computers & Society

Information Security/Privacy

Computer Crimes and Ethical Challenges

Viruses

Plagiarism

Intellectual Property Rights

Difference between computer science, software engineering, information technology, information systems, computer engineering and bioinformatics;
IEEE / ACM computing disciplines guidelines.

II. Programming Fundamentals

Basic programming elements and concepts

Problem Solving & Program Design

Components of a programming language

Program development and execution

Program structure

Data types and variable declarations

Standard I/O streams and statements

Control structures

Standard library functions

User defined functions and parameter passing

Arrays, pointers, and strings, Structures, unions, and bit manipulation operators.

III. Object Oriented Paradigm

Object Oriented Programming Concepts ( Object-oriented paradigm, data abstraction, encapsulation, inheritance, Polymorphism)

Introduction to Classes and Objects ( classes, objects, data members, member functions)

Classes Advanced ( friends, static, composition, this, const)

Operator overloading (stream insertion, stream extraction, binary operator, unary operator)

Inheritance (single inheritance, multiple inheritances, protected members, method over-riding)

Polymorphism (virtual function, pure-virtual functions, abstract class, abstract super class)

Standard Template Library (STL)

Files & streams (sequential access files, random access files), File processing, Exception Handling

IV. Algorithms & Data Structures

Fundamental concepts

Properties of algorithms

Criteria for an Algorithm

Parameters for selecting an algorithm

Algorithm Representations

Pseudo Code and Flow Charts

Designing Algorithms

Algorithm Analysis and Asymptotic Notations

Classification of Lists

Abstract Data Types

Implementation of Stacks and Queues using ADTs

Searching and Sorting Algorithms (Linear Search, Binary Search, Bubble Sort, Merge Sort, Quick Sort, Heap Sort),

Stacks and Queues, Hash Tables (Linear Probing, Bucketing, Chaining)

Recursion, Trees (Binary Trees, Binary Search trees, AVL Trees, Two-Three Trees)

Graphs, Heuristic (Guided) Search, Genetic Algorithms, Encryption Algorithms (DES, RSA)

V. Software Engineering

Software Processes

Software Process Models

Agile Software Development

Analysis Modeling

Requirements Engineering

Design Concepts

Architectural Design

Design & Implementation

Software Testing

System Delivery and Maintenance

Software Evolution

Formal Specification

Software Quality Assurance

Introduction to Proofs of Correctness (LNO)

Distributed Software Engineering

Aspect-Oriented Software Engineering

Project Management

Process Improvement

VI. Compiler Construction

Difference among various type of Translators

Phases of Compilers

Classification of Compilers

Lexical Analysis (Input buffering, Specification & Recognition of tokens, Regular expressions, Finite automata, Syntax Analysis (Context-free grammars and their classification, LL(k) vs. LR(k) grammars, Top-down vs. Bottom-Up parsers, Parsing Techniques, FIRST and FOLLOW sets, Predictive Parsing using LL(1) grammars, Syntax error handling and recovery strategies)

Syntax Directed Translation (Synthesized attributes, Inherited attributes, Construction of syntax trees, Top-down translation)

Semantic analysis (Symbol tables, Type Expressions, Type Checking of statements)

Intermediate Code Generation, Code Generation (Issues in the design of code generation, The target machine, Run-time storage management, Register allocation)

Code optimization (Elimination of Redundant code, Folding of Constant, Loop optimization, Peephole optimization, Problems of optimization)

I. Computer Organization & Architecture

Fundamental concepts

Overview of a Computer System

Evolution & Performance Languages

Architectural levels

Virtual machines

Processor types

Metrics

Machine instructions

Instruction execution cycle

CISC vs. RISC

Parallelism

Internal/External data representation

Computer Function and Interconnections

Cache Memory

Internal Memory

External Memory

Input /Output System

Computer Arithmetic Microprocessor and its Bus Structure

I/O Types

Types of Buses

Memory Organization and Structure, information
flow and execution in Machine

Instruction Representation

Machine Instruction Characteristics

Instruction Processing

Processor Structure & Function

Control Unit Operation

Micro-programmed Control

Instruction-Level Parallelism And Super scalar

Processors

Parallel Processing

Multi-Processor and

Multi-core Systems

II. Computer Communications & Networks

Basic Concepts and Classification of Networks

Circuit switching

Packet switching

Multiplexing (TDM, FDM)

Layering: OSI and TCP/IP

Application Layer (Network application architectures, HTTP, FTP, Email, DNS, P2P applications)

Transport Layer (Multiplexing in UDP and TCP, Connectionless Transport: UDP, Reliable data transfer and TCP, Congestion avoidance and control)

Network Layer (The Internet Protocol, IPv4, Datagram, Internet Address Classes, Special IP Addresses ARP, IPv6, ICMP

Network Address Translation (NAT)

Internet Routing Protocols and Algorithms, X.25,

Frame relay &ATM, MPLS)

Physical & Link Layer Functionalities (Error Detection & Control, ARQ,
Link layer addressing, LAN Technologies, Bridges and Hubs, Multiple Access)

Special topics (Security, Overlay networks, naming, Content distribution networks, Peer to peer systems,DHTs, Network Attacks)

III. Operating Systems Concepts

Roles of an Operating System

Operating-System Evolution, Structures, and Operations

Classification of Operating Systems

Computing Environments

Design and Components of OS PROCESS management

Process Synchronization,

Deadlocks

Memory Management

Virtual Memory Management

File Systems (UNIX and Windows Systems)

I/O management

IV. Database Systems


Introduction to Database Systems

Relational Data Model & Relational Database constraints,

Relational Data Model,

SQL,

Relational Algebra & Calculus,

ER Model,

ER to relational Mapping,

PL/SQL Stored Procedures & Triggers,

Functional Dependencies and normalization,

Storage & Indexing, Indexing Structure,

XML documents & Web Services,

Query Processing & Evaluation,

Query Optimization,

Transaction processing,

Object oriented Databases,

Distributed Databases,

Database Security & Access Control

V. Digital Image Processing

The relation between Image Processing, Computer Graphics, Computer Vision and ArtificialIntelligence;

Image Sensing and Acquisition Techniques;

Representing Digital Image;

Image Sampling and Quantization;

Image Storage and Operations; Image Transformations
(Translation, Scaling, Rotation, Shear);

Image Histogram;

Image Enhancement (Contrast,Smoothing, Sharpening);

Gray-scale and Color Images; Color Models (RGB, CMYK andHIS);

Image Restoration; Noise Models; Morphological Operators (Erosion, Dilation,Opening, Closing, Skeletonization, Thinning);

Image Segmentation; Point Detection, Line detection,

Edge Detection and Boundary Detection;

Image Compression

VI. Web Engineering & Technologies

Modeling techniques for web applications,

Introduction to web engineering,

requirement engineering,

requirement,

types of requirements,

functional requirements,

non functionalrequirements,

Requirement engineering process (Elicitation and negotiation,Documentation, Validation and verification, Management),

HTML(hypertext markup language),

Software Architecture, Styles, Patterns, and frameworks,

Components of WebArchitecture,

Classifications of web architecture ,

Web Application layered architecture (client server, n- layered, JSP model, struts, OOHDM ),

Integration Architecture,

DataAspect architectures,

Cascading Style Sheet(CSS),

CSS properties,

JavaScript
(Functionalities, Events, Variables, Operators),

DOM(Document Object Model), XML, RSS,
API,

Client-side programming using (HTML, XHTML, XML, JavaScript, and CSS), Servers de programming using PHP,

Web development process,

Web Application DevelopmentMethodologies,

Web site promotion and deployment,

Web applications Issues
(Accessibility, testing, performance, operation, maintenance, security)
SUGGESTED READINGS

S. No. Title Author
1. C++ How to Program Harvey M. Deitel and
Paul J.Deitel.
2. Compilers: Principles, Techniques, and Tools Alfred V. Aho, Ravi Sethi, and
Jeffrey D. Ullman
3. Operating System Concepts Silberschatz, Galvin, and
Gagne. John
4. Operating Systems William Stallings
5. Computer Organization & Architecture William Stallings
6. Computer System Architecture M. Morris Mano
7. Computer Organization and Design:
The Hardware/ Software Interface
David A. Patterson and
John L.
Hennessy
8. Software Engineering Ian Sommerville
9. Software Engineering A Practitioner’s
Approach
Roger S. Pressman
10. Data Structures and Algorithm
Analysis in C++
Mark Allen Weiss
11. Computer Networking: A Top Down
approach
featuring the Internet
James F. Kurose and
Keith W.Ross
12. Data and Computer Communications William Stallings
13. Computer Networks Andrew Tanenbaum
14. Fundamentals of Database Systems Ramez Elmasri and S. B
15. Database Systems Concepts Silberchatz, Abraham & Korth,Sudarshan
16. Web Services: Principles and
Technology
Michael Papazoglu
17. Electronic Commerce: The Second Wave, Ninth EditionGary P. Schneider
18. Electronic-Commerce –A Managerial
Perspective
Turban, Lee, King, Chung
19. Web Engineering Kappel, G., Proll, B. Reich, S. &
Retschitzegger
20. Styling Web Pages with CSS Tom Negrino and Dori
Smith
21. PHP: The Good Parts Peter B. MacIntyre
22. Learn JavaScript Chuck Easttom
23. ADTs, Data Structures, and Problem
Solving with C++
Larry R. Nayhoff
24. Digital Image Processing Gonzalez and Woods