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)