Design Methods of Embedded System
This course mainly introduces the architecture and interfaces of the embedded system based on ARM9. The content of this course includes the development of the embedded system, the architecture of ARM9, the instructions set of the ARM9, the memory system and its interfaces, the interrupt mechanism, the DMA mechanism, the timing component, the I/O ports, the asynchronous serial interface, the network interface, the human-machine interface, and an example of designing the whole embedded system, etc.
Distributed Computing Technology
Principles and Techniques of Compiler
This course is a core course of Computer Science and Technology class, which aims to let students have profound understanding on design and implementation techniques of programming languages, and understand some programming language related theories, then apply the concepts and techniques discussed in this course to software design and development. This course introduces the general principles and basic implementation methods for compiler design, including knowledge of logical phases within a classical compiler, such as lexical analysis, syntax analysis, semantic analysis, intermediate code generation, code optimization, code generation, and so on. Moreover, this course emphasizes formal description techniques on compiler design, using syntax directed definitions as the main descriptive tools for translations. As a course of principles, this course prefers to introduce the basic theories and methods for compiler construction, rather than partial to some specific source languages or target machines.
System Modeling and Simulation
A course on the modeling and simulation for the certainty and uncertainty system. Automatic control system and digital signal system are two typical deterministic systems. They are used as examples for modeling, performance prediction and design methods of the deterministic system. For uncertainty systems, the theories of qualitative simulation are used for system modeling and simulation. Those include the concept of qualitative modeling/simulation, uncertainty modeling, fuzzy qualitative simulation, qualitative causal reasoning, Quipers qualitative modeling/simulation, manufacturing enterprises modeling and simulate application.
Software engineering is a course to guide software development and maintenance, including introduction, process models, planning and managing the project, requirements and analysis, designing the architecture and modules, writing and testing the programs, software maintenance, evaluating and improving products, processes and resources.
Java Program Design
Cloud Computing and Big Data Analysis
C Language Programming
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.
Hacker Reverse Engineering Technology
We are familiar with the basic techniques of hackers analysis program to master the basic knowledge to improve safety of the procedure. The course is divided into two parts, the first part discusses the hacker code analysis technology and commonly used tools, such as debugging, disassemble, decompile, code analysis process and related problems. The second part describes the procedures to protect the various challenges facing their associated anti-debugging, anti-tracking, anti-disassemble code encryption and decryption and other content.
High Performance Processor Architecture
This course is to introduce the new principle underlying what will be tomorrow’s processor architecture technological developments. We identify the three types of application-level parallelism: instruction-level parallelism(ILP), data-level parallelism(DLP) and task-level parallelism(TLP). We then explain several new architectural styles, such as Simultaneous Multi-Threading(SMT), Chip Multi-Processor (CMP), vector architectures, Stream Processors, Graphic Processor Units(GPU), which exploit ILP, DLP and TLP. We also introduce online profiling and dynamic compiling to auto-turning the program performance, and how to evaluate and predict the performance of the many-cores and many-cores architectures.
Software engineering practice
Software Engineering Practice course aims to,by students attending software engineering project, let students understand fundamental principle and theory of software engineering, able to apply them to develop application software, able to apply various software engineering specifications and standards. This course also cultivates the students with a range of capabilities, including engineering ingredient and professional practice, problem-solving and project management ability, professional ethics and relevant laws knowledge, international exchange ability, organizational and management skills, discipline and teamwork, initiative and creativity, the ability to study independently and actively, etc.
Storage Technology Foundations
More and more issues are raised up on modern information management with respect to high cost and massive data storage, etc. This course aims to equip students with a comprehensive understanding on network storage by introducing modern storage technologies and methods based on industry practical requirements and complexity of information management. In this course, the basic principles of storage systems will be introduced, and also different network storage architectures and their applications based on these principles will be further discussed. With inspecting the industry needs, this course will cover the topics on business continuity development and its implementation. Also, the course will give a reference to principles, methods and practical ways on how to manage and monitor the data center as well. Through the course, the students should have a profound understanding on storage technologies. Thus, students would have better career prospects not only on network storage research, but also on information management planning and decision making for companies or governments
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.
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.
"The goal is that, let students master the internal structure and working principle of microcomputer, and have the ability to program in Assembly language, as well as familiar with computer hardware interface.
Our school in the department of computer science, electronics, microelectronics, intelligence science, Yuan Pei ,as well as physics, this course has been opened for many years. In terms of the curriculum , experimental equipment,teaching methods,teaching materials, we have accumulated many experiences."
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. "