Algorithm Design and Analysis
"Algorithm Design and Analysis" is an important course for the major of computer science. This course introduces the basic models of algorithm design, the basic methods of algorithm analysis and the semi formal description of the problem as well as the proof of the algorithm. It will help the junior students of computer science establish a complete and systematic method for analyzing and solving the problem.
Fundamentals of Compiling
Understand the fundamental principles and implementation techniques of operating system. Covers computer science and software engineering. Topics include System Mechanism, Processes and Threads, Memory Management, File System, Input/Output System, Deadlock, Operating System Design, Case Study: Windows and Linux.
This course provides comprehensive coverage of computer organization. For clarity and ease of understanding, systematical and hierarchical organizaition is described in this course from the top dowm. It presents hardware design principles to all aspects of modern computer design: processor, input/output, memory, peripherals, and communication links. The focus is on the design of a complete computer system. An understanding of hardware/software interaction and tradeoffs is necessary of computer specialists. Even though the emphasis is on hardware, we have addressed a number of software issues, including basic aspects of operations systems related to instruction execution performance.It is intended primarily for students who have already had a course in the design of logic circuits and had a basic knowledge of computer programming in a high-level language.
Data Structure and Algorithm
Understand principle and theory of Data Structures and Algorithms, able to design and implement fundamental data structures and algorithms.
Covers programming, data structures, algorithms.
Topics include the organization and implementation of fundamental data structures such as list, binary tree, tree and forest, and graph; sorting and searching; data abstraction and problem solving.
An introduction course on computer programming and computer programming language. In this course, students can learn C programming language well and solve simple application problem using C programming language by practical training.
Probability Theory and Statistics
Basic probability, Statistical inference,Estimation ,Testing ,Regression
Advanced Mathematics is designed to serve students majoring in chemical science, computer science and engineering etc. It consists of two parts of a two-semester sequence. The course begins with a rapid review of topics in algebra and trigonometry, which you should be competent in. Part 1, consisting of Chapters 1 to 7, is devoted to single variable differentiation, integration and differential equations. It covers the fundamental concepts and theorems. Part 2, consisting of Chapters 8 to 12, discusses in depth multivariable differentiation, integration, infinite series, vectors and the geometry of space.
algebraic structure and Combinatorics
The mission is as follows: Learn the algebraic and combinatorial methods frequently used in the modeling and analysis of discrete structure, know the related theory, representation methods, and analytical techniques, further cultivate and train students’ abilities of abstract thinking and logical reasoning, and let students know the applications of related mathematical tools to computer science and technology.The topics include the composition of algebraic systems; homomorphism, isomorphism, congruence, and quotient algebra; semigroup and monoid; group; ring and field; lattice and Boolean algebra; combinatorial existence theorems; combinatorial counting formulas; recursion equation and generation function; inclusion-exclusion principle; Polya theorem.
Distributed Computing Technology
Elementary Number Theory
Elementary number theory is a basic course of studying properties of integers,the main contents include the divisible theory of the integer, the congruence theory of the integer, the fractional theory and some special indefinite equation.
Introduction of Computer Science
Introduction to Database Systems
The Introduction to Database Systems course is one of the professional and fundamental courses for Computer Science and Technology. It aims to introduce the theories and methods for managing data via database technologies. In this course, students are required to learn the basic knowledge and principles of database systems, as well as to grasp database programming techniques. The main points of the course include data model, database architecture, the relational model, SQL, database design, and database programming. Some advanced topics will also be discussed in the course, such as database security, transaction processing, recovery, and concurrency control.
Introduction to Theoretical Computer Science
Through the learning of the formal languages and automata theory, students will build up a foundation of knowledge for the learning and understanding of the principle of compilers and the formal methods in softwares.
Through the learning of the computability theory, students will understand what are computable and what are incomputable, and will be able to answer the questions such as what is a computation, and will build up a concept of algorithm.
Through the learning of the computational complexity theory, students will understand what are tractable and what are intractable, and will be able to answer the questions such as what is an efficient computation, and will build up a concept of efficient algorithm.
Through the exposing to the advanced topics in computing theory, students will understand the current developments and be inspired to learn more deep results.
Topics include formal languages and automata, computability and computational complexity.
Lab on Operating Systems
Understand Operating System design principles by hacking the source code fragments in Linux and xv6 - mainly concerning processes, threads, synchronization, scheduling, memory management, virtual memory, file system and so on - and building an operating system Nachos from scratch to improve its functionality and performance. Topics include thread mechanism; synchronization; multiprogramming; system calls; virtual memory; software-managed TLB; file system; network protocols.
Practice for Compiler Design
Mission:Understand principle and theory of compiler, learn to use some important tools and able to build a new compiler. Topics include: JavaCC, Type Checking, some Intermediate languages.
Practice of Programming in C&C++
"Master fundamental grammar, Class library and Standard template library of C++ language, understand basic thoughts of enumeration, recursion and dynamic programming, and able to practical application.
Data Structure and Algorithm, Computer Science
Topics include C++ grammar, Class library, basic algorithms, Object-oriented programming and Standard Template Library. "