教學課程

Teaching

 

回首頁 :: 

   
 

FORMAL LANGUAGES and AUTOMATA 

A formal language is an abstraction of the general characteristics of programming languages. A formal language is the set of all sentences permitted by the rules of formation by which these symbols can be combined into entities called sentences. A formal language is the set of all sentences permitted by the rules of formation. Although some of the formal languages we study here are simpler than programming languages, they have many of the same essential features. (Refer to An Introduction to FORMAL LANGUAGES and AUTOMATA, Peter Linz)

 

PARALLEL COMPUTING

Parallel computing is the use of a parallel computer to reduce the time needed to solve a single computational problem. Parallel computing is now considered a standard way for computational scientists and engineers to solve problems in areas as diverse as galactic evolution, climate modeling, aircraft design and molecular dynamics. This course covers the following topics: Parallel Programming Platforms, Principles of Parallel Algorithm Design, Basic Communication Operations, Analytical Modeling of Parallel Programs, MPI, OPENMP, Dense Matrix Algorithms, Sorting Algorithms, and Graph Algorithms, etc. (Refer to Parallel Programming in C with MPI and OpenMP, Michael J. Quinn)

 

DISCRETE MATHEMATICS

Discrete mathematics is the part of mathematics devoted to the study of discrete objects. (Here discrete means consisting of distinct or unconnected elements. ) More generally, discrete mathematics is used whenever objects are counted, when relationships between finite (or countable) sets are studied, and when processes involving a finite number of steps are analyzed. A key reason for the growth in the importance of discrete mathematics is that information is stored and manipulated by computing machines in a discrete fashion.

 

INTERCONNECTION NETWORKS

Interconnection networks are currently being used for many different applications, ranging from internal buses in very large-scale integration (VLSI) circuits to wide area computer networks. In this course, we address this challenge and present in a structured way the basic underlying concepts of most interconnection networks, and representative solutions that have currently been implemented or proposed in the literature. (Refer to Interconnection Networks: An Engineering Approach, Jose Duato)

 

GRAPH THEORY

A graph provides the natural structures from which to construct mathematical models that are appropriate to almost all fields of scientific (natural and social) inquiry. In this course, we introduce the most basic concepts and results and present some applications of graphs. (Refer to Theory and Application of Graphs, Junming Xu)

 

PROGRAMMING OF C++

C++ is a world-class programming language for developing industrial-strength, high-performance computer applications. This course includes: introduction to C++ programming, classes and objects, control statements, recursion, arrays and vectors, pointers, overloading, inheritance, polymorphism, stream I/O, file processing, and exception handling. (Refer to C++ How to Program, P. J. Deitel & H. M. Deitel)

 

ALGORITHMS

An algorithm is a finite set of instructions that, it followed, accomplishes a particular task. The study of algorithms includes many important and active areas of research. This course covers the following topics: The Best, Average and Worst case Analysis, The Lower Bounds of Problems, Divide-and-Conquer strategy, Randomized Algorithm, Greedy Method, Tree searching strategies, Dynamic Programming, and NP-Completeness Theory, etc. (Refer to Computer Algorithms/C++, Horowitz etc.)

 

DATA STRUCTURES

In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. This course covers the following topics: C++ and Arrays, Stacks and Queues, Linked Lists, Trees, Graphs, Sorting, Hashing, and some Selected Advanced Topics, etc.

 

FAULT TOLERANT COMPUTING

Fault-tolerance is the property that enables a system to continue operating properly in the event of the failure of some of its components. If its operating quality decreases at all, the decrease is proportional to the severity of the failure, as compared to a naively-designed system in which even a small failure can cause total breakdown. Fault-tolerance is particularly sought-after in high-availability or life-critical systems. This course covers the following topics: hardware fault tolerance, information redundancy, fault-tolerant networks, software fault-tolerance, checkpoints, and diagnosis models and applications.