Tuesday, March 23, 2010

Paradigm of Computer science Courses



Paradigm of Computer Science Courses

  • Principles of Computer Science
  • Fundamentals of Programming Languages
  • Scientific Computation I & II
  • Theoretical Foundation of Computer Science
  • Formal Language and Automata
  • Computer Systems and Architecture
  • Microprocessors and Communication Circuits
  • Operating Systems
  • File Structures
  • Computer Networks
  • Data Communications
  • Compilers
  • Systems Simulations
  • Algorithms
  • Data Structure and Databases
  • Data Mining
  • Artificial Intelligence
  • Distributed Computing
  • Object-Oriented Programming and C++

Computer Fundamentals

  • Applications
  • Generations
  • Types and Classification
  • Components
  • CPU (Central Processing Unit)
  • Input Devices
  • Output Devices
  • Memory and Memory Units
  • Motherboard
  • Ports
  • Operating System
  • Hardware
  • Software
  • Number System
  • Data and Information
  • Networking
  • Internet and Intranet
  • Programming Languages
  • Multimedia
  • Security

Fundamentals of Programming languages

  • Inductive Definitions
  • Levels of Syntax
  • Binding and Scope
  • Static and Dynamic Semantics
  • Functional Core Language
  • Recursion
  • Iteration
  • Fixed Points
  • Products and Records
  • Sums and Variants
  • Polymorphism
  • Data Abstraction
  • Recursive Types
  • Subtyping
  • Programming Languages; BASIC, Pascal

Scientific Computation

  • Computational Problem solving
  • Programming Languages; FORTRAN, C
  • Numerical Software Packages
  • Methods of Random number generators
  • Interval Computation
  • Some problems in Computational physics
  • Some problems in Computational Chemistry
  • Soft Computing
  • Neural Networks

Theoretical Foundations of CS

  • Mathematical Background
  • Automata and grammars
  • Solvable and unsolvable problems
  • The Complexity of computing
  • Formal Semantics
  • Proving program properties
  • Nondeterminism and parallel computing

Formal Language and Automata

  • Mathematical preliminaries
  • Proof techniques
  • Finite Automata and Regular Languages
  • Context-Free Languages
  • Turing Machines and the Church-Turing Thesis
  • Decidable and Undecidable Languages
  • Programming Languages; Prolog

Computer Architecture

  • Design of a basic computer
  • Design concepts of Processors
  • Design of channels and controllers
  • Interconnections
  • Memory structures and design
  • Memory management
  • Cache memory systems
  • Firmware design
  • Reliability
  • Testing and fault tolerance
  • CISC computers
  • RISC computers
  • Computer interfacing
  • Design of network interface cards
  • Examples of computer architecture

Operating Systems

  • Types of operating systems
  • Operating Systems structures
  • System components and services
  • Virtual machines
  • Process management
  • CPU scheduling
  • Scheduling concepts
  • performance criteria
  • Scheduling algorithm
  • Memory organization and management
  • Secondary storage management
  • Disk scheduling
  • Virtual memory

File Organization and processing

  • File design
  • File manipulation
  • Blocking and buffering
  • Single and double buffering
  • Types of storage devices
  • Space and time calculation
  • Sequential file
  • Relative file
  • Indexed sequential file
  • Multiple key file
  • Direct access file
  • External sort/merge algorithms
  • File systems-disk scheduling

Computer Networks

  • Computer Network Types
  • Network LAN Technologies
  • Computer Network Topologies
  • Computer Network Models
  • Computer Network Security
  • Physical Layer Introduction
  • Digital Transmission
  • Analog Transmission
  • Transmission Media
  • Wireless Transmission
  • Multiplexing
  • Network Switching
  • Data-link Layer Introduction
  • Error Detection & Correction
  • Data-link Control & Protocols
  • Network Layer Introduction
  • Network Addressing
  • Network Layer Routing
  • Internetworking
  • Network Layer Protocols
  • Transport Layer Introduction
  • Transmission Control Protocol
  • User Datagram Protocol
  • Application Layer Introduction
  • Client Server Model
  • Application Protocols
  • Network Services

Data Communications

  • Concepts and Terminology
  • Types of data
  • Types of signals
  • Data communication model
  • Data Transmission techniques
  • Information theory
  • Information sources
  • Information measure
  • Data encoding and decoding
  • Transmission media types and characteristics
  • Transmission impairments
  • Analog and digital transmission
  • Multiplexing techniques

Compilers

  • Architecture
  • Phases of Compiler
  • Lexical Analysis
  • Regular Expressions
  • Finite Automata
  • Finite Automata
  • Types of Parsing
  • Top-Down Parser
  • Bottom-Up Parser
  • Error Recovery
  • Semantic Analysis
  • Run-Time Environment
  • Symbol Table
  • Intermediate Code Generation
  • Code Generation
  • Code Optimization

Simulations

  • Concepts & Classification
  • Verification & Validation
  • Discrete System Simulation
  • Continuous Simulation
  • Monte Carlo Simulation
  • Modelling & Simulation - Database

Algorithms

  • The Role of Algorithms in Computing
  • Insertion sort
  • Analyzing and Designing algorithms
  • Growth of Functions
  • Recurrences
  • Probabilistic Analysis and Randomized Algorithms
  • Sorting and Order Statistics
  • Algorithms and Data Structures
  • Advanced Design and Analysis Techniques
  • Greedy Algorithms
  • Advanced Data Structures
  • Graph Algorithms

Data structures

  • Software Engineering Principles
  • Data design and Implementation
  • Abstract Data Type (ADT)
  • Unsorted List and Sorted List
  • Stack and Queue
  • Linked Structures
  • Linked Lists
  • Recursion
  • Binary Search Trees
  • Priority Queues
  • Heaps, Graphs and Sets
  • Sorting and searching algorithms

Databases

  • Introduction to DB System
  • Operational Data
  • Data independence
  • Relational System
  • The architecture of DB System
  • Relational Algebra and Calculus
  • Recovery and concurrence
  • security and integrity
  • SQL Language

Data Mining

  • Data Mining Overview
  • Data Warehouse
  • Data Preprocessing
  • Classification
  • Clustering
  • Prediction
  • Logistic Regression
  • Association Rules

Distributed Computing

  • Parallel and Distributed Architecture
  • Parallel Algorithm design
  • Message-passing Programming
  • Sharing-memory Programming
  • Performance analysis
  • Applications

Object Oriented Programming

  • Structured Programming
  • Concepts of object-oriented programming
  • Classes and Objects
  • Interfaces
  • Dynamic dispatch/message passing
  • Class-based versus prototype-based
  • Encapsulation
  • Composition, inheritance, and delegation
  • Polymorphism
  • Open recursion
  • Programming Languages; C++

Artificial Intelligence

  • Intelligent Systems
  • Research Areas
  • Agents & Environments
  • Popular Search Algorithms
  • Fuzzy Logic Systems
  • Natural Language Processing
  • Expert Systems
  • Robotics
  • Neural Networks
  • Issues and Terminology

Computer Security

  • Elements and Terminologies
  • Layers
  • Securing OS
  • Antiviruses and Malwares
  • Encryption
  • Data Backup
  • Disaster Recovery
  • Policies and Checklist
  • Network Security
  • Wireless Security
  • Internet Security
  • Software Security
  • Database Security
  • Security Testing

Cryptography

  • Basic of Modern Cryptography
  • Cryptographic Tasks
  • Public key Cryptography
  • Ciphers and Hashes
  • Cryptanalysis
  • Cryptographic Software

Programming Languages

  • BASIC Programming Language (Fundamentals of Programming Languages Course)
  • Pascal Programming Language (Fundamentals of Programming Languages Course)
  • Fortran Programming Language (Scientific Computation Course)
  • C Programming Language (Scientific Computation Course)
  • Prolog Programming Language (Formal Language and Automata Course)
  • C++ Programming Language (OOP Course)