Techniques
for algorithm complexity analysis and important
design paradigms such as divide-and-conquer,
dynamic programming and the greedy method
with many practical examples. Efficient algorithms
for problem in some areas such as sorting,
searching, graph theory, computational geometry,
algebraic and numerical algorithms.
Formal
models of languages and computation: finite
automata and regular languages, pushdown automata
and context-free languages, Turing machines.
Relative power of models, Chomski hierarchy,
inherent complexity of problems: undecidability,
computational complexity, and intractable
problems.
Formal
syntax and semantics of programming languages.
Processes of language design. Language control
mechanisms: implementation and design issues.
Language type mechanisms: implementation and
design issues.
Study
of design techniques for large software systems,
modularization, task assignment, management
techniques, implementation techniques, testing,
quality control, documentation, and maintenance.
Limitations
of single CPU computers. Introduction to parallel
processing. Processor design for parallel
processing. SIMD and vector processing, MIND
processing. Parallel algorithm design. Advanced
parallel processing mechanics.
The
essential concepts, principles, techniques
and mechanisms for the design, analysis, use,
and implementation of computerized database
systems. The concepts and techniques of database
models, organization, design, control, and
user/program interfaces are presented in a
unified way, and are directly related to implementation
principles and mechanisms to realize them.
Introduction
to simulation, simulation example, simulation
languages. Mathematical models, model validation,
random variate generation, analysis of simulation
data. Case studies.
Overview
of object-oriented concepts. OMT object modeling-objects,
links, classes, associations, attributes,
and roles, classification, generation and
aggregation abstraction mechanisms. Inheritance
(extension and restriction) and multiple inheritance
state model for an object. Stage generalization,
state chart, and event schema functional modeling,
event partitioning. Use-case modeling. Object-oriented
analysis. System analysis and design: partition
system, identify concurrency, control strategy
choosing, etc. Object-oriented design: integrating
structure, function, and behavior models.
Design of associations, etc. Mapping the object
model to relational schema.
Prerequisite : CS612 Techniques in the design and implementation
of compilers. Optimization, code generation,
error recovery, attributed grammars. A project
is required.
Layered
network architecture, data link control layers.
Error detection and ARQ protocols, framing.
Delay models in data networks: Markov, Chain,
Poisson process. Basic models and results
from queuing theory and their applications
to networks. Networks with multi-access channels:
multiple-access protocols, carrier sensing,
reservation systems, packet radio and satellite
networks. Local area networks: Ethernet, token
ring, IEEE standards, FDDI, LAN interconnection,
high-speed fiber optic LANs, voice and data
integration. Metropolitan area networks: IEEE
802.6 MAN (DQDB). Wireless access networks
and cellular systems. Network layer: routing
and flow control protocols, internetworking
and transport layer issues (TCP/IP, gateways,
bridges), Asynchronous Transfer Mode broadband,
integrated services digital networks (ATMB-ISDN).
Basic
concepts in artificial intelligence: discussion
of the meaning of 'intelligence', Turing test,
LISP, problem definition, problem solving
steps, proper attitudes for problem solving,
blind search methods, heuristic search methods,
logic, semantic networks, production systems,
frames, and scripts. Discussion of applications
for those basic concepts. The discussion will
include applications to natural knowledge
processing, computer vision, robotics, modeling
and representing knowledge, expert systems,
and intelligent machines.
The
topics of Seminar in System Software will
be set by the instructor who will conduct
the seminar as appropriate to keep up with
the new technology and knowledge.