Index

Fundamentals of C Programming ...... 3

Discrete Mathematics ...... 3

Fundamentals of Data Structures ...... 5

Fundamentals of Logic and Design ...... 7

Laboratory for Fundamentals of Logic and Computer Design ...... 10

Object-Oriented Programming (C++) ...... 12

Database Systems ...... 14

Computer Organization ...... 14

Laboratory for Computer Organization ...... 16

Java Programming ...... 18

Principles of System ...... 20

Advanced Data Structures and Algorithm Analysis ...... 22

E-commerce Technologies ...... 23

Assembly Language and Microcomputer Interface ...... 25

Theory of Computation ...... 27

Numerical Analysis ...... 28

Operating System Principles ...... 31

Human-Computer Interaction Engineering ...... 32

Introduction to Human-Computer Interaction ...... 34

Multimedia Technologies ...... 36

Principle of Compilers ...... 38

Principles of Information Security ...... 40

Overview of Digital Communication Systems and Networks ...... 42

Software Architecture ...... 43

Project Management and Case Study ...... 43

Software Engineering ...... 44

Computer Architecture...... 46

Fundamentals of Computer Networks ...... 49 Network Programming ...... 51

Algorithm Design and Analysis ...... 52

Capability Maturity Model ...... 55

Compiler Design ...... 57

Design and Project of Network System ...... 58

Mutual Fund Management and Services ...... 60

Middleware Technology ...... 62

Operating Systems: Analysis and Projects...... 64

Software Quality Assurance/Testing ...... 65

Fundamentals of C Programming

Course Name Fundamentals of C Programming Course Code 21186020 Weekly Hours 3.0-2.0 Credits 4 Offered Semester Fall-Winter semester The C Prorgramming Language, Second Edition, Brian W. Kernighan Textbooks &Dennis M.Ritchie Fundamental principles and concepts of C language,with definations of data, expressions, control-flow constructions, functions,input and output, Prerequisites preprocessing,command line arguments. Basic problem solving and programming techniques;structured programming ideas, fundamental algrithms and data structures.

Discrete Mathematics

Course Name Discrete Mathematics Course Code 211B0010 Weekly Hours 4-0 Credits 4.0 Offered Semester Spring-Summer semester Discrete Mathematics and Its Application(fifth Edtion), Kenneth H. Rosen Textbooks McGraw Hill(2003) Prerequisites Calculus, Linear Algebra Discrete Mathematics is the introductory course for theory in Computer Science. You will learn the mathematical tools necessary to analyze and talk about problems that can or cannot be solved with a computer system. It is a necessity that you learn to write good proofs as well as understand Course Description the concepts in Discrete Math.

Discrete mathematics underlies almost all present day information processing systems, and a thorough knowledge of the subject is necessary to appreciate the capabilities and limitations of .

Teaching Program

Course Code: 211 B0010

Course Name: Discrete Mathematics Weekly Hours: 4-0 Credits:4.0

Teaching Goal and Basic Requirements: To give fluency in the mathematical language necessary to deal with discrete structures (with particular application to computer science), and to develop knowledge of mathematical proof, algorithmic problem solving, and recursive thinking. Content of Courses & Hours Allocation: 1 The Foundations: Logic, Sets, and Functions (24) 1.1 Propositional Logic (8) 1.2 Predicates Logic (8) 1.3 Sets (6) 1.4 Functions (2) 2 The Fundamentals: Algorithms, the Integers, and Matrices (4) 2.1 Algorithms (1) 2.2 Computational Complexity (1) 2.3 Recursive Definitions and Recursive Algorithms (2) 3 Counting (16) 3.1 The Basics of Counting, Permutations and Combinations (2) 3.2 The Pigeonhole Principle (2) 3.3 Generalized Permutations and Combinations (2) 3.4 Generating Permutations and Combinations (1) 3.5 Recurrence Relations (2) 3.6 Solving Recurrence Relations (3) 3.7 Generating Functions (2) 3.8 Inclusion-Exclusion (2) 4 Relations (14) 4.1 Relations and Their Properties (3) 4.2 Representing Relations (2) 4.3 Operations of Relations (2) 4.4 Closures of Relations (3) 4.5 Equivalence Relations (2) 4.6 Partial Orderings (2) 5 Graphs (10) 5.1 Introduction to Graphs (1) 5.2 Graph Terminology (1) 5.3 Representing Graphs and Graph Isomorphism (2) 5.4 Connectivity (1) 5.5 Euler and Hamilton Paths (2) 5.6 Shortest Path Problems (2) 5.7 Planar Graphs (2) 5.8 Graph Coloring (1) 6 Trees (4) 6.1 Introduction to Trees (1) 6.2 Applications of Trees (1) 6.3 Spanning Trees (1) 6.4 Minimum Spanning Trees (1) Teaching Plan: 1. 4 quizs after evry chapter 2. Lecture Notes, Solutions to homeworks, and past examinations are available online. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbook: Discrete Mathematics and Its Applications (Fifth edition) Kenneth H. Rosen McGraw Hill 2003

Reference:

Discrete Mathematical Structures,(Fourth edition) B. Kolman, R.C. Busby, S.C. Ross

Prentice Hall 2001

Fundamentals of Data Structures

Course Name Fundamentals of Data Structures Course Code 211C0020 Weekly Hours 2-1 Credits 2.5 Offered Semester Fall semester Data Structures and Algorithm Analysis in C (Second Edition), Mark Allen Textbooks Weiss, Yue Chen (Adapter), Posts & Telecom Press, Pearson Addison Wesley,2005 Prerequisites Fundamentals of C Programming, Discrete Mathematics This course investigates the definitions, implementations, and functions related to non-numerical data objects. The content of this course consists of the basic methods for time-space complexity analysis; fundamental data structures for stack, queue, list, tree and graph; implementations and Course Description analysis of sorting and searching. Students are supposed to learn how to organize data, to represent problems in a computer, to select the optimal data structure and algorithm for a specific problem, and hence improve their ability of programming.

Teaching Program

Course Code: 211C0020 Course Name: Fundamentals of Data Structures

Weekly Hours: 2.0-1.0 Credits: 2.5

Teaching Goal and Basic Requirements: Teaching Objective: This course investigates the definitions, implementations, and functions related to non-numerical data objects. Students are supposed to learn how to organize data, to represent problems in a computer, to select the optimal data structure and algorithm for a specific problem, and hence improve their ability of programming. Basic Requirements: Students are supposed to know the basic methods for time-space complexity analysis; fundamental data structures for stack, queue, list, tree and graph; implementations and analysis of sorting and searching. Content of Courses & Hours Allocation: Ch2.1-2 Algorithm Analysis 2 hrs Ch2.3-4 Algorithm Analysis 2 hrs Ch3.1-2 ADT, List Ch3.3-4 Stack, Queue 2 hrs Ch4.1-2 Binary Trees 2 hrs Ch4.3 Search Tree 2 hrs Ch5.1-5 Priority Queues 2 hrs Ch7.1-4 Hash Function, Separate Chaining, Open Addressing 2 hrs Ch7.5 Rehashing 2 hrs Ch8.1-7 Equivalence Relation, Union Algorithm, Path Compression Mid-Term 2 hrs Ch9.1-2 Graph Definition, Topological Sort 2 hrs Ch9.3-4 Shortest-Path Algorithm,Network Flow Problem 2 hrs Ch9.5-6 Minimum Spanning Tree,Depth-First Search 2 hrs Ch6.1-5 Insertion Sort, Shellsort, Heapsort 2 hrs Ch6.6-7 Merge Sort, QuickSort 2 hrs Ch6.8-10 Bucket Sort 2 hrs Review 2 hrs Teaching Plan: 1. Use multi-media classrooms. 2. Laboratory Practice: 1 hour/week. Team work with 3 projects. 3. Homework: 2~3 hours/week. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbook: Data Structures and Algorithm Analysis in C (Second Edition), Mark Allen Weiss, Yue Chen (Adapter), Posts & Telecom Press, Pearson Addison Wesley,2005 Reference Books: [1] 《数据结构与算法分析》(C 语言版),魏宝刚、陈越、王申康编著,浙江大学出版社, 2004 [2] Data Structures, Algorithms, and Applications in C++, Sartaj Sahni, McGraw-Hill & China Machine Press,2002

Fundamentals of Logic and Computer Design

Course Name Fundamentals of Logic and Computer Design Course Code 21120810 Weekly Hours 3.0-0.0 Credits 3 Offered Semester Fall-Winter semester Logic and Computer Design Fundamentals M.Morris Mano, Charles Textbooks R.Kime Prerequisites Higher Mathematics, General Physics, Circuit Theory The aim of the course is to introduce basic theory and design methods for digital logic. The course covers number representation, digital codes, boolean algebra and logic minimization techniques, sources of delay in combinational circuits and effect on circuit performance, survey of Course Description common combinational circuit components, sequential circuit design and analysis; timing analysis of sequential circuits, concept of programmable logic devices and memories. The language used in the course can be English.

Teaching Program

Course Code: 21120810

Course Name: Fundamentals of Logic and Computer Design

Weekly Hours: 3.0-0.0 Credits: 3

Teaching Goal and Basic Requirements: The aim of the course is to introduce basic theory and design methods for digital logic. The course covers number representation, digital codes, boolean algebra and logic minimization techniques, sources of delay in combinational circuits and effect on circuit performance, survey of common combinational circuit components, sequential circuit design and analysis; timing analysis of sequential circuits, concept of programmable logic devices and memories. The language used in the course can be English Content of Courses & Hours Allocation: Chapter 1. Digital Computers and Information(3 hours) 1.1 Digital Computers 1.1.1 Introduction to Digital Computer System 1.1.2 Basic Working Principle of Binary Electronic Devices 1.2 Numerical and Information Representation in Computer 1.2.1 Carry Number System 1.2.2 Information Coding of Computer 1.2.3 Arithmetic Operation Chapter 2. Mathematics Fundamental of Computer(9 hours) 2.1 Concept of Boolean Algebra 2.2 Axiom, Theorem and Rules of Boolean Algebra 2.3 Formal Representation of Logic Function 2.3.1 Traditional Representation of Logic Function 2.3.2 Verilog HDL Representation of Logic Function 2.4 Simplification of Logic Function 2.4.1 Formulization Simplification 2.4.2 Karnaugh Map Simplification 2.4.3 Arbitrary Logic Function Simplification 2.4.4 Different Formal Logic Function Transformation and Simplification 2.5 Basic Logic Gate Circuit 2.5.1 Concept of Positive and Negative Logic 2.5.2 Basic Logic Gate Circuit 2.5.3 Brief Characteristics and Parameters of TTL and CMOS Gate Circuit *2.5.4 Trigger (R-S, D Type, JK Type) 2.5.5 Introduction to Programmable Logic Devices Chapter 3 Combinational Circuit Design and Computer Aided Design(15 hours) 3.1 Analysis and Design Methodology of Combinational Logic Circuit 3.1.1 Overview of Combinational Logic Circuit 3.1.2 Analysis of Combinational Logic Circuit 3.1.3 Design of Combinational Logic Circuit 3.2 Combinational Circuit Implementation with Verilog HDL 3.3 Common Logic Circuit Analysis in Computer 3.3.1 Decoder 3.3.2 Variable Decoder 3.3.3 Code Transform Decoder 3.3.4 Data Selector 3.3.5 Coder 3.3.6 Data Comparator 3.3.7 Parity Check Circuit 3.4 Arithmetic Operation Function and ALU Circuit 3.4.1 Single Bit Adder 3.4.2 4-bit Serial Carry Adder 3.4.3 4-bit Parallel Carry Adder (Carry Look Ahead) *3.4.4 16-bit Parallel Carry Adder 3.4.5 Basic Theory of Arithmetic Logic Operation Chapter 4 Sequential Circuit, Register, Data Transfer and Computer Aided Implementation(15 hours) 4.0 Trigger (R-S, D Type, JK Type) 4.1 Overview of Sequential Circuit and Description Tool 4.1.1 Structure of Synchronous Sequential Circuit 4.1.2 Excitation Table, State Table and State Graph 4.1.3 Sequential Circuit State Equation 4.1.4 Trigger and Latch 4.2 Analysis and Design Methodology of Sequential Circuit 4.3 Analysis of Sequential Circuit 4.4 Design of Sequential Circuit 4.5 Design of Register and Micro Operation 4.6 Shift Register and Serial Transmission 4.7 Counter Register and Timer 4.8 Clock Circuit of Computer Chapter 5 Circuit Fundamental of Computer Aided Design(6 hours) ---Semiconductor Memory and Programmable Logical Circuit 5.1 Read-Only Memory 5.2 Programmable Logic Array—PLA 5.3 Programmed Array Logic—PAL 5.4 Complex Programmable Logic Device—CPLD 5.5 Field Programmable Gate-Array—FPGA 5.6 Structure of Random Access Memory **Chapter 6 Interface Circuit Design of Computer and Computer Aided Implementation(3~6 hours) 6.1 Data Exchange between Computer and Outer 6.2 Latch (Register) Ports Decoding 6.3 Memory Address Decoding Notes: * denotes that the order can be adjusted according to the teaching condition; ** denotes it is optional. Teaching Plan: 1.Teaching with multimedia 2.Making teaching calendar termly according to the outline 3.2 hours for lab per week 4.3-4 hours for practice 5.Some discussion and quiz Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《Logic and Computer Design Fundamentals》3th,M.Morris Mano, Charles R.Kime。 《Verilog 数字系统设计教程》,夏宇闻,北京航空航天大学出版社,ISBN: 7-81077-302-X, 2004 年 1 月。

Laboratory for Fundamentals of Logic and Computer Design

Course Name Laboratory for Fundamentals of Logic and Computer Design Course Code 21120820 Weekly Hours 2 Credits 1 Offered Semester Fall-Winter semester Textbooks Experiment for Logic and Computer Design Fundamentals And Project Prerequisites Higher Mathematics, General Physics, Circuit Theory The experimental program focuses on the theoretical knowledge, basic skills of hardware knowledge and the usage of computer-aided design technology. Verilog HDL and FPGA are chosen as the implement for digital system experiments in order to strengthen the ability to apply the basic knowledge of hardware. As well, the basic function units are provided for courses such as computer organization in this program. Course Description Through this program, students are required to understand the basic principle of logic algebra, to master the usage of gate circuit, trigger and other semiconductor devices. They are also required to master the analysis and design methodology of combinational and sequential circuits, to acquaint with common logic circuits, concept of programmable logic devices and memories. And they should learn to design digital systems using hardware description language.

Teaching Program

Course Code: 21120820

Course Name: Laboratory for Fundamentals of Logic and Computer Design

Weekly Hours: 2 Credits: 1

Teaching Goal and Basic Requirements: Objective: The experimental program focuses on the theoretical knowledge, basic skills of hardware knowledge and the usage of computer-aided design technology. Verilog HDL and FPGA are chosen as the implement for digital system experiments in order to strengthen the ability to apply the basic knowledge of hardware. As well, the basic function units are provided for courses such as computer organization in this program. Basic Requirements: Through this program, students are required to understand the basic principle of logic algebra, to master the usage of gate circuit, trigger and other semiconductor devices. They are also required to master the analysis and design methodology of combinational and sequential circuits, to acquaint with common logic circuits, concept of programmable logic devices and memories. And they should learn to design digital systems using hardware description language. Content of Courses & Hours Allocation: Chapter 1 Basic Experiments on Digital Logic Circuit Practice 1. Learn to use digital instruments. (2 classes) Practice 2. Switched circuit with diode and triode (2 classes) Practice 3. Verilog HDL & Xilinx ISE platform software and hardware (4~3 classes) Practice 4. Function and parameter test of integrated logic gates circuit (2 classes) Practice 5. Tristate gate and OC gate (2 classes) Practice 6. RS trigger and D trigger design (2 classes) Chapter 2 Combinational Circuit Experiments Practice 7. Use variable decoder (2 classes) Practice 8. Design and usage of data selector (2 classes) Practice 9. Design a full adder (2 classes) Chapter 3 Sequential Circuit Experiments Practice 10. Multivibrator and clock circuit (2 classes) Practice 11. Typical synchronous sequential circuit (2 classes) Practice 12. Counter and timer design (2 classes) Practice 13. Shifting register design (2 classes) Chapter 4 Basic Computer Components Design (Optional excluding lab 16) Practice 14. Program counter design Practice 15. Instruction decoder Practice 16. Register file design (2 classes) Practice 17. ALU Practice 18. Binary multiplier design Practice 19. Memory address decoding circuit design Practice 20. Course project Teaching Plan: 1.Computer aided teaching 2.One practice per week. 4-6 hours will be assigned to Practice 3 to found a solid foundation for the coming practices. 14 practices are compulsory totally take 32 hours, excluding the examination. 3.Preparation for every practice is required. 4.Experiment report is required, which may take 2-4 hours together with the preparation. 5.Discussion is encouraged. 6.Optional practices are designed for excellent students. 7.Optional practices and project is not compulsory. Students can decide to choose none, some or all of them to do. Bonus is up to teacher. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Experiment for Logic and Computer Design Fundamentals And Project Qingsong SHI,Yabo Dong Publishing company of Zhe Jiang University 《Verilog 数字系统设计教程》 夏宇闻,北京航空航天大学出版社

Object-Oriented Programming (C++)

Course Name Object-Oriented Programming (C++) Course Code 21120221 Weekly Hours 2.0-1.0 Credits 2.5 Offered Semester Spring semester Textbooks Thinking in C++ ,by Bruce Eckel Pearson Education, Inc.2000 Prerequisites C Programming ―Object-Oriented Programming (C++)‖ will introduce the idea, method and technology of object-oriented programming. The students will firstly grasp the foundation of C++ language, and Course Description then they will be asked to code certain scale‘s programs. With the experience progressing, the advanced features of C++ language will be discussed in this course, the students will be able to understand the critical idea and deep mechanism of C++ language. Teaching Program

Course Code: 21120221

Course Name: Object-Oriented Programming (C++)

Weekly Hours: 2.0-1.0 Credits: 2.5

Teaching Goal and Basic Requirements: Students will grasp the concepts and method of object-oriented programming through the study of principle and practice. They will be required to build good programming style which accord with modern software design. Students will grasp C++ language skillfully, basically know how it runs, be able to do object-oriented programming using C++ skillfully. Totally, this course will guide students to have the ability of software analysis, design and coding, as well as the ability of cooperate developing. Content of Courses & Hours Allocation: Part 1 Foundation of Object-Oriented Programming (2 hours) History and Develop of Object-Oriented Programming Abstract in Object-Oriented Programming Class, Object and Encapsulation Inheritance and Polymorphism Challenge of Object-Oriented Programming Foundation of Programming Style Part 2 Foundation of C++ language (8 hours) Better C Reference Function Prototype Inline Function Default Variable Overloading Class and Encapsulation Private, Protected and Public Constructor and Destructor Friends Operator Overloading and Function Overloading Derive Virtual Function and Polymorphism Stream Part 3 Object-Oriented Software Design (6 hours) Traditional Software Developing Method Object-Oriented Modal Object-Oriented Design and Realization Case Study Part 4 Advanced Features of C++ (10 hours) Template and Exception Copy Constructor and Parameter Passing Const Constraint Virtual Destructor Parameter Matching while Overloading Static Member Construction and Destroy of Template Object Part 5 Case Study (6 hours) The Problem Analysis System Design Object Design Realization Discuss of Technology and Style Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) [1] Thinking in C++,by Bruce Eckel Pearson Education, Inc.2000 [2] The C++ Programming Language, by Bjarne Stroustrup Addison-Wesley Publishing Company 1997

Database Systems

Course Name Database Systems Course Code 21120301 Weekly Hours 2-2 Credits 1.5 Offered Semester Spring & Fall semester Textbooks Database Systems Concepts, 5th edition Prerequisites Principles of Database System, Data Structure Database management system is kernal software of computer system. The objective of this course is to give an advanced introduction to the principles and methods of database systems from implementation perspective. The content includes database system architecture , physical storage, index structure, query processing and optimization, transaction Course Description management, concurrency and recovery, database security. In addition, this course will outline advanced database systems including distributed database system and parallel database system. Through designing and implementing the class project MiniSQL, students are expected to get extended and deep understanding of DBMS, and enhance the developing capability for system software.

Computer Organization

Course Name Computer Organization Course Code 21186031 Weekly Hours 3.5-2 Credits 3.5-1.0 Offered Semester Spring-Summer semester Textbooks Computer Organization & Design----Hardware/Software Interface Prerequisites 《Logic and Computer Design Fundamentals》,《 C Programming》 Modern computer technology needs both hardware and software. The emphasis of this course is to show the relationship between hardware and software and to focus on the concepts that are the basis for current computer. The main content includes MIPS assembler language, arithmetic, single and multi cycle datapath design, memory hierarchy, and Course Description I/O system. Students are expected to learn the processor design, memory hierarchy and methods to improvement cache performance, memory technology and optimizations, virtual memory and virtual machines. Every student is required to design a single-cycle CPU and a multi-cycle CPU using Xilinx ISE.

Teaching Program

Course Code: 21186031

Course Name: Computer Organization

Weekly Hours: 3.5-2 Credits: 3.5-1

Teaching Goal and Basic Requirements: Modern computer technology needs both hardware and software. The emphasis of this course is to show the relationship between hardware and software and to focus on the concepts that are the basis for current computer. The main content includes MIPS assembler language, arithmetic, single and multi cycle datapath design, memory hierarchy, and I/O system. Students are expected to learn the processor design, memory hierarchy and methods to improvement cache performance, memory technology and optimizations, virtual memory and virtual machines. Every student is required to design a single-cycle CPU and a multi-cycle CPU using Xilinx ISE. Content of Courses & Hours Allocation: Chapter One: Computer Abstractions and Technology ( 3 credit-hour ) Chapter Two: Instructions: Language of the Computer ( 10 credit-hour ) Chapter Three: Arithmetic for Computers ( 8 credit-hour ) Chapter Five: The Processor: Datapath and Control ( 20 credit-hour ) Chapter Seven: Large and Fast: Exploiting Memory Hierarchy ( 8 credit-hour ) Chapter Eight: Storage, I/O, and Other Peripherals ( 7 credit-hour ) Teaching Plan: 1. 3 and half hours of multimedia lectures per week. 2. homework, program simulation, experiment on Xilinx ISE Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《Computer Organization & Design----Hardware/Software Interface》 David A.Patterson,John L.Hennessy

Laboratory for Computer Organization

Course Name Laboratory for Computer Organization Course Code 21186031 Weekly Hours Credits 1.0 Offered Semester Spring-Summer semester Experiments guide for computer organization and design. Hangzhou: Textbooks Zhejiang University Press. Personal computers, Spartan-3, Spartan-3E, or homogeneous, Xilinx ISE Prerequisites Toolkit. Computer organization experiments is a compulsory computer courses for undergraduate students. The close connections between the experimental curriculum and computer organization theory will help students further Course Description consolidate the classroom and apply the theoretical knowledge into practice. Improve their practical ability and the ability to solve practical problems are also the purposes of the course. Teaching Program

Course Code: 21186031

Course Name: Laboratory for Computer Organization

Weekly Hours: Credits: 1.0

Teaching Goal and Basic Requirements: Experimental course is of the important links in teaching to train high-quality, innovative students. Promoting the reform of computer organization and design course with great efforts will improve the quality of experiments teaching. Computer organization experiments is a compulsory computer courses for undergraduate students. The close connections between the experimental curriculum and computer organization theory will help students further consolidate the classroom and apply the theoretical knowledge into practice. Improve their practical ability and the ability to solve practical problems are also the purposes of the course. The basic requirements of this course are to complete the basic experiments, then design single clock-cycle and multiple clock-cycle CPU with on-board FPGA. Content of Courses & Hours Allocation: Students Experiment hour Experiment Experiment # Experiment Name per Requirements Teacher Status Content distribution Property Type Group Assemble and Fangyan MIPS Instruction disassemble MIPS Jiang 1 3 Professional Design 1 Required Available Simulation program using Wang simulator. Zonghui Design basic Fangyan hardware units Basic of hardware Jiang 2 using Spartan-3 3 Professional Design 1 Required Available design Wang board and Xilinx Zonghui ISE. Fangyan Basic components MUX and register Jiang 3 3 Professional Design 1 Required Available design file design Wang Zonghui Fangyan ALU and ALU ALU and ALU Jiang 4 3 Professional Design 1 Required Available controller controller design. Wang Zonghui Fangyan R type instruction Implement R type Jiang 5 3 Professional Design 1 Required Available design instructions. Wang Zonghui Fangyan Design CPU Jiang 6 CPU controller 3 Professional Design 1 Required Available controller. Wang Zonghui Fangyan Design single Single clock-cycle Jiang 7 clock-cycle 6 Professional Design 1 Required Available datapath Wang datapath. Zonghui Fangyan Multiple Design multiple Jiang 8 clock-cycle clock-cycle 6 Professional Design 1 Required Available Wang datapath datapath. Zonghui Fangyan Design control unit Control unit for Jiang 9 for 3 Professional Design 1 Required Available microprogramming Wang microprogramming. Zonghui Fangyan Design Microprogramming Jiang 10 microprogramming 6 Professional Design 1 Required Available Processor Wang processor. Zonghui Fangyan Finite instructions Finite instructions Jiang 11 9 Professional Design 1 Optional Available CPU design CPU design. Wang Zonghui Fangyan MIPS processor Write MIPS Jiang 12 18 Professional Design 1 Optional Available simulation system. simulator. Wang Zonghui Teaching Plan: 1) Experiment reports: Each experiment report should include: experiment theory and design, experiment process and steps, experiment result, experiment analysis, discussion, etc. 2) Assessment Assessment requirements of the school curriculum in accordance with strictly enforced, in accordance with the experimental results assessment preparation, experimental questions, the quality of experiment completion, experimental report on a comprehensive assessment. Recommended Textbooks and Other References: (books, editors, publishing company,

publishing time) 1) Textbook Experiments guide for computer organization and design. Hangzhou: Zhejiang University Press. 2) Related materials (1) David A.Patterson, John L.Hennessy. Computer Organization & Design – Hardware / Software Interface (Third edition). 2005. Pearson. ISBN: 81-8147-597-6. (2) David A.Patterson, John L.Hennessy. Computer Organization & Design – Hardware / Software Interface (Second edition), Weimin Zheng(Translator). Peking: Tsinghua University Press. ISBN: 7302069018. (3) Xuezen Pan, Lindi Ping. Computer Organization and Design. Hangzhou: Zhejiang University Press. ISBN: 730803523. (4) Aiying Wang. Computer Organization and Architecture. Peking: Tsinghua University Press. (5) Zhenkun Ying, Jiansheng Gao. Principles of Computer Organization. Hubei: Huazhong University of Science and Technology Publishing House. (6) Zhongying Bai. Principles of Computer Organization.. Peking: Science Press.

Java Programming

Course Name Java Programming Course Code 21190940 Weekly Hours 2.0-1.0 Credits 2.5 Offered Semester Summer semester Textbooks Thinking In Java Prerequisites Object-Oriented Programming The course consists of four parts:

1. Fundamentals of Java language

2. B/S programming using Java

Course Description 3. Other tech. in B/S (Java Script, JSP and so on)

4. C/S architecture programming

The students will be able to write application and applet in Java, as well as use JDBC, Servlet, Java Script and JSP to design a B/S system.

Teaching Program

Course Code: 21190940

Course Name: Java Programming

Weekly Hours: 2.0-1.0 Credits:2.5

Teaching Goal and Basic Requirements: The course consists of three parts: 1. Fundamentals of Java language 2. B/S programming using Java 3. Other tech. in B/S (Java Script, JSP and so on) The students will be able to write application and applet in Java, as well as use JDBC, Servlet, Java Script and JSP to design a B/S system. Content of Courses & Hours Allocation: Week1: Introduction Week2: Fundamentals Idea of OOP Basic element of Java language Week3: Class and objects Week4: Inheritance and polymorphism Week5: Exception, IO and multi-threads Week6: Containers Week7: GUI Week8: Advanced Topics Teaching Plan: Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Thinking In Java

Principles of Database System

Course Name Principles of Database System Course Code 211C0030 Weekly Hours 4-2 Credits 2.5 Offered Semester Summer & Winter semester Textbooks Database Systems Concepts, 5th edition Prerequisites Programming Language C The course introduces the fundamental principles of database systems, including the general overview of the concepts of database system, the relational data model, SQL, entity-relationship data model, relational formalization, and database application programming, etc. The course also Course Description outlines the modern data processing technologies, such as object oriented database system, object-relational database system and XML. Students are expected to have good understanding of the database technologies, and be able to manage a database system or to develop a database application.

Teaching Program

Course Code: 211C0030

Course Name: Principles of Database System

Weekly Hours: 4-2 Credits: 2.5

Teaching Goal and Basic Requirements: The course introduces the fundamental principles of database systems, including the general overview of the concepts of database system, the relational data model, SQL, entity-relationship data model, relational formalization, and database application programming, etc. The course also outlines the modern data processing technologies, such as object oriented database system, object-relational database system and XML. Students are expected to have good understanding of the database technologies, and be able to manage a database system or to develop a database application. Content of Courses & Hours Allocation: 1 Introduction (2 hours) 1.1. Database-System Applications 1.2. Purpose of 1.3. View of Data 1.4. Database languages 1.5. Database Management Systems 2 Relational Data Model (2 hours) 2.1. Structure of Relational Model 2.2. Fundamental Relational-Algebra Operations 2.3. Additional Relational-Algebra Operations 2.4. Extended Relational-Algebra Operations 3 SQL (6 hours) 3.1 Data Definition 3.2 SQL Queries 3.3 Data Update 3.4 View 3.5 Embedded SQL and Dynamic SQL 3.6 Introduction of ODBC 4 Database Integrity and Security (2 hours) 4.1 Data Integrity Constraint 4.2 Assert 4.3 Trigger 4.4 Authorization 5 Entity-Relationship Model (4 hours) 5.1 The Entity-Relationship Model 5.2 Entity-Relationship Design Issues 5.4 Week Entity 5.5 Extended Entity-Relationship Features 5.6 Reduction to Relational Schema 5.7 Other Aspects of Database Design 6 Relational Database Design (4 hours) 6.1. Functional Dependencies and Normal Forms 6.2. Formalization of Relational Schema 6.3. Multivalued Dependencies and 4NF 7 Object-based Databases (2 hours) 8.1. Motivation of Object-based Databases 8.2. Object-Oriented Databases and ODMG C++ 8.3. Object-Relational Database and SQL99 8 XML (2 hours) 8.4. Structure of XML Data 8.5. XML DTD 8.6. XML Query and XPath 9 Transaction Management (4 hours) 9.1 .Transaction and ACID Properties 9.2 .Serializability and Recoverability 9.3 .Transaction Control in SQL 9.4.Lock-based Concurrent Control 9.5.Two-phase Locking Protocol 9.7.Deadlock Handling Teaching Plan:

Project: Design and implement a book library management system

Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Database System Concepts(Fifth Edition), Database System Concepts(Fifth Edition) Abraham Silberschatz, Henry F.Korth, S.Sudarshan McGraw-Hill Companies, Higher Education Press(2006)

Advanced Data Structures and Algorithm Analysis

Course Name Advanced Data Structures and Algorithm Analysis Course Code 21120490 Weekly Hours 1.0-1.0 Credits 1.5 Offered Semester Winter semester Data Structures and Algorithm Analysis in C (Second Edition), Mark Allen Textbooks Weiss, Yue Chen (Adapter), Posts & Telecom Press, Pearson Addison Wesley,2005 Prerequisites Fundamentals of Data Structures Teaching Program

Course Code: 21120490

Course Name: Advanced Data Structures and Algorithm Analysis

Weekly Hours: 1.0-1.0 Credits: 1.5

Teaching Goal and Basic Requirements: Teaching Objective: This course is based on the fundamentals of data structures. It continues to investigate the definitions, implementations, and functions related to non-numerical data objects. Students are supposed to learn how to organize data, to represent problems in a computer, to select the optimal data structure and algorithm for a specific problem, and hence improve their ability of programming. Basic Requirements: Students are supposed to know the representations and application background of those advanced data structures that are discussed in class, as well as the applications of classical algorithms. Content of Courses & Hours Allocation:

Ch4.4 AVL Tree 2 hrs

Ch4.5,7 Splay Tree, B-Tree 2 hrs

Ch5.6-7 Leftist Heap, Skew Heap 2 hrs

Ch5.8 Binomial Queue 2 hrs

Ch9.7 NP-Completeness 2 hrs Ch10.1 Greedy Algorithm (a)

Ch10.1-2 Ch10.1 Greedy Algorithm (b), Divide and Conquer 2 hrs

Ch10.3-5 Dynamic Programming, *Randomized Algorithm, Backtracking 2 hrs

Ch11.1-4 Amortized Analysis 2 hrs

Teaching Plan: 1. Use multi-media classrooms. 2. Laboratory Practice: 1 hour/week. Team work with 3 projects. 3. Homework: 2~3 hours/week. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbook: Data Structures and Algorithm Analysis in C (Second Edition), Mark Allen Weiss, Yue Chen (Adapter), Posts & Telecom Press, Pearson Addison Wesley,2005 Reference Books: [1] 《数据结构与算法分析》(C 语言版),魏宝刚、陈越、王申康编著,浙江大学出版社, 2004 [2] Data Structures, Algorithms, and Applications in C++, Sartaj Sahni, McGraw-Hill & China Machine Press,2002

E-commerce Technologies

Course Name E-commerce Technologies Course Code 21190760 Weekly Hours 4.0 Credits 2.0 Offered Semester Fall semester E-commerce: Business, Technology, Society. 3nd Edition by Kenneth C. Textbooks Laudon and Carol Guercio Traver, Publisher: Addison Wesley, 2006 Prerequisites Computer Networks This course introduces the technology and its applications for electronic commerce. Tutorials, assignments and project work will reinforce lectures by providing hands-on experience with E-commerce software components and technologies. Topics to be covered include: Course Description Introduction to E-Commerce; eCommerce Models, Structures and Mechanisms; Internet and the Web; XML technology; E-Commerce Security; Electronic Payment Systems; E-commerce marketing; Supply Chains; Collaborative Commerce; Mobile Commerce; Business On Demand; ; and eCommerce related research such as applications of Artificial Agents and Data Mining. Teaching Program

Course Code: 21190760

Course Name: E-commerce Technologies

Weekly Hours: 4.0 Credits: 2.0

Teaching Goal and Basic Requirements: This course introduces the Internet technology and its applications for electronic commerce. Tutorials, assignments and project work will reinforce lectures by providing hands-on experience with E-commerce software components and technologies. Topics to be covered include: Introduction to E-Commerce; eCommerce Models, Structures and Mechanisms; Internet and the Web; XML technology; E-Commerce Security; Electronic Payment Systems; E-commerce marketing; Supply Chains; Collaborative Commerce; Mobile Commerce; Business On Demand; Semantic Web; and eCommerce related research such as applications of Artificial Agents and Data Mining. Content of Courses & Hours Allocation:

No. Contents Hours

1 Introduction 2

2 The Internet and : 2

E-commerce Infrastructure

3 Layout of E-commerce Web Site 2

4 Security in E-Commerce 4

5 E-Commerce Payment Systems 4

6 XML 4 7 Web Services 2

8 E-commerce Marketing 2

9 B2B e-Commerce 2

10 Logistics 2

11 Semantic Web 4

12 Mobile commerce 2

Teaching Plan: 1. Use multi-media classrooms. 2. Homework: Case Analysis, 1~2 hours/week 3. 1 Project: 3~5 students/group. Recommended Textbooks and Other References: (books, editors, publishing company,

publishing time) 1. E-commerce: Business, Technology, Society. 2nd Edition by Kenneth C. Laudon and Carol Guercio Traver, Addison Wesley, 2004. (Textbook) 2. Turban E., King D., Lee J.K., Viehland D., Electronic Commerce: A Managerial Perspective 2006, 4/E, Prentice Hall, 2006 3. Framework of E-Commerce System, CHEN Deren, SHI Minhua, WU Zhihan, High Education Press, Aug.2002.

Assembly Language and Microcomputer Interface

Course Name Assembly Language and Microcomputer Interface Course Code 21120500 Weekly Hours 2.0-1.0 Credits 2.5 Offered Semester Fall-Winter semester 《The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, Textbooks 80486, Pentium, and Pentium Pro Processor Architecture, Programming, and Interfacing》 Prerequisites 《Computer Organization & Design》,《C Programming》 This course focuses on assembly language programming and microcomputer I/O peripheral interface. That includes the structure of micro processor, ram addressing, microcomputer instructions and Course Description programming. The topics will also cover the main chips introduction on microcomputer I/O system. Those are 82c55, 8254, 16550, 8259A and DMA. And introduce the mechanism of 32-bit microprocessor. Teaching Program

Course Code: 21120500

Course Name: Assembly Language and Microcomputer Interface

Weekly Hours: 2-1 Credits: 2.5

Teaching Goal and Basic Requirements: This course focuses on assembly language programming and microcomputer I/O peripheral interface. That includes the structure of micro processor, ram addressing, microcomputer instructions and programming. The topics will also cover the main chips introduction on microcomputer I/O system. Those are 82c55, 8254, 16550, 8259A and DMA. And introduce the mechanism of 32-bit microprocessor. Content of Courses & Hours Allocation: (each for 2 hours) 1 The structure of microprocessor. Registers introduction. 2 Memory addressing. Dos debug command 3 Data transfer instructions 4 Arithmetic and logic instructions 5 Program control instruction 6 Assembly language programming. Keyboard & display 7 Binary & decimal, disk file r/w 8 Use assembly instructions in C/C++. Programming in protected mode. 9 Basic knowledge about I/O system. I/O ports addressing. 10 8255A--a programmable peripheral interface, keyboard interface 8279 11 8254 Timer programming 12 16550 serial adapter 13 Basic interrupt processing 14 Initialization of 8259A interrupt controller and interrupt processing programming. 15 Direct memory access(DMA) 16 80386/80486 microprocessor. Exercises and Review. 17 Examination. Teaching Plan: 1. hours of lectures per week. 2. homework, and Assembly programming Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, and Pentium Pro Processor Architecture, Programming, and Interfacing》( sixth edition) Barry B.brey;Prentice Hall;August 15, 2002

Theory of Computation

Course Name Theory of Computation Course Code 21120520 Weekly Hours 2.0 Credits 2.0 Offered Semester Fall-Winter semester Elements of The Theory of Computation (Second Edition) Harry R. Textbooks Lewis, Christos H. Papadimtriou Prentice Hall 1998. Prerequisites Discrete Mathematics, Data Structure This is a theoretical course designed for undergraduated students. There are 32 academic hours in total. This course covers the theory of automata and formal languages, computability by Turing machines and recursive functions, uncomputability, computational complexity, and mathematical Course . This term is devoted to establishing a foundation for the formal study of computation. This foundation consists of tools from mathematics such as set theory, logic, and graph theory, and concepts from theoretical computer science, such as formal languages, abstract machines, problem transformations, and computational complexity.

Teaching Program

Course Code: 21120520

Course Name: Theory of Computation

Weekly Hours: 2.0 Credits:2.0

Teaching Goal and Basic Requirements: A study of the formal relationships between machines, languages and grammars; we will cover regular, context-free, context-sensitive, recursive and recursive enumerable languages along with undecidability and intractability. Content of Courses & Hours Allocation: 1.Introduction (2 hours) 2.Sets, Relations and Language(4 hours) Sets and Relations, Finite and infinite sets, Three fundamental proof techniques, Alphabets and languages 3. Regular Language and Finite Automata (8 hours) Finite automata and Nondeterministic finite automata, Equivalence of finite automata and regular expressions, Languages that are and are not regular 4. Context-free Languages (8 hours) Context-free grammars, Pushdown automata, Equivalence of Pushdown automata and context-free grammars, Languages that are and are not context-free 5. Turing machine (8 hours) The definition of Turing machines, Computing with Turing machines, Primitive recursive functions and Recursive functions 6. Undecidability(4 hours) Church-Turing thesis, Universal Turing machines, The halting problems, Unsolvable problems about Turing machines Teaching Plan: 1. 4 quizs after evry chapter 2. Lecture Notes, Solutions to homeworks, and past examinations are available online. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time)

Textbook:

Elements of The Theory of Computation (Second Edition) Harry R. Lewis, Christos H. Papadimtriou Prentice Hall 1998. References:

1.Introduction to the Theory of Computation Michael Sipser PWS, 1997.

2. Introduction to Automata Theory, Languages, and Computation John E.Hopcroft, Rajeev Motwani, Jeffrey D.Ullman, Addison-Wesley, 2001.

Numerical Analysis

Course Name Numerical Analysis Course Code 21190640 Weekly Hours 2.5-1.0 Credits 3 Offered Semester Fall-Winter semester Numerical Analysis, 7th Edition, Richard L. Burden & J. Douglas Faires, Textbooks Thomson Learning, Inc. 2001 Prerequisites Calculus, Linear Algebra, Fundamentals of C Programming Problems solving by numerical methods has now become one of the fundamental means of research in the physical sciences and engineering, and also in social sciences and humanities. This course is an introduction to numerical computation employed so widely in industry and research. We will discuss errors in numerical computation, roots of nonlinear Course Description equations, systems of linear equations, algebraic eigenvalue problems, function approximations by polynomial interpolation and cubic spline interpolations, quadratures, numerical differentiation. Students will learn from lectures and a series of projects the basic theories and how to program for solving practical problems. Teaching Program

Course Code: 21190640

Course Name: Numerical Analysis

Weekly Hours: 2.5-1.0 Credits: 3

Teaching Goal and Basic Requirements: This course is an introduction to numerical computation employed so widely in industry and research. We will discuss some classical numerical methods for solving engineering problems, and analyze the related errors. Based on knowledge of Calculus, Linear Algebra and Programming Languages, the students are supposed to understand methods in numerical computation, roots of nonlinear equations, systems of linear equations, algebraic eigenvalue problems, function approximations by polynomial interpolation and cubic spline interpolations, quadratures, and numerical differentiation. Students will learn from lectures and a series of projects the basic theories and how to program for solving practical problems. Content of Courses & Hours Allocation:

Mathematical Preliminaries 4 hrs Roundoff Errors and Computer Arithmetic Algorithms and Convergence Solutions of Equations in One Variable 5 hrs The Bisection Method Fixed-Point Iteration Newton's Method Error Analysis for Iterative Methods Accelerating Convergence Direct Methods for Solving Linear Systems 4 hrs Linear Systems of Equations Pivoting Strategies Matrix Factorization Special Types of Matrices Iterative Techniques in Matrix Algebra 4 hrs Norms of Vectors and Matrices Eigenvalues and Eigenvectors Iterative Techniques for Solving Linear Systems Error Bounds and Iterative Refinement Approximating Eigenvalues 2 hrs The Power Method Interpolation and Polynomial Approximation 5 hrs Interpolation and the lagrange Polynomial Divided Differences Hermite Interpolation Cubic Spline Interpolation Approximation Theory 5 hrs Discrete Least Squares Approximation Orthogonal Polynomials and Least Squares Approximation Chebyshev Polynomials and Economization of Power Series Numerical Differentiation and Integration 5 hrs Numerical Differentiation Elements of Numerical Integration Composite Numerical Integration Romberg Integration Richardson's Extrapolation Adaptive Quadrature Methods Gaussian Quadrature Initial-Value Problems for Ordinary Differential Equations 6 hrs The Elementary Theory of Initial-Value Problems Euler's Method Higher-Order Taylor Methods Runge-Kutta Methods Multistep Methods Higher-Order Equations and Systems of Differential Equations Stability Teaching Plan:

1.Use multi-media classrooms. 2.Laboratory Projects: 8 projects, 1 lab hour/week. 3.Homework: 2~3 hours/week. Recommended Textbooks and Other References: Textbook: Numerical Analysis, Seventh Edition, Richard L. Burden & J. Douglas Faires, Thomson Learning, Inc. 2001 Reference Books: [1] 《数值方法》,金一庆、陈越 编著,机械工业出版社, 2000 年 2 月 [2] 《现代数值分析》,李庆扬、易大义、王能超 编著,高等教育出版社

Operating System Principles

Course Name Operating System Principles Course Code 21120050 Weekly Hours 3.0-0.0 Credits 3.0 Offered Semester Fall-Winter semester Abraham Silberschatz,etc. Operating System Concepts (7th edition). John Textbooks Wiley&Sons. 2006. Computer Organization, Data Structure, C Programming, Assembly Prerequisites Language Understanding the operating system as to a computer system. Studying the resource management technologies used by modern OSes. The course Course Description includes sessions of introduction, process management, memory management, file system management, I/O system management, and some selected advanced topics. Teaching Program

Course Code: 21120050

Course Name: Operating System Principles

Weekly Hours: 3.0-0.0 Credits: 3.0

Teaching Goal and Basic Requirements:

Content of Courses & Hours Allocation: §1 Introduction [2 hours] §2 Processor and Process Management [18 hours] §2.1 Basics and the preliminary of processor management §2.2 Process ▲ §2.3 Processor scheduling §2.4 Process synchronization ▲ §2.5 Deadlock §2.6 Case study §3 Memory Management [10 hours] §3.1 Introduction §3.2 Contiguous allocation ▲ §3.3 Paging ▲ §3.4 Segmentation ▲ §3.5 Case study §4 Virtual Memory ▲ [10 hours] §4.1 Introduction §4.2 Demand paging §4.3 Page replacement §4.4 Demand Segmentation §4.5 Case study §5 File System [3 hours] §5.1 Introduction §5.2 File §5.3 File operations §5.4 File access §5.5 Directory §5.6 File protection §6 File System Implementation [3 hours] §6.1 File system structure §6.2 File space allocation §6.3 Free space management §6.4 Case study §7 Device Management [2 hours] Teaching Plan: This is primarily a lecture based course. Some Linux kernel projects are designed to help understanding OS principles and their applications. The Web site, http://os.zju.edu.cn, will be heavily engaged in terms of discussion, Q&A, homework, and information sharing. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Abraham Silberschatz,etc. Operating System Concepts (7th edition). John Wiley&Sons. 2006.

Human-Computer Interaction Engineering

Course Name Human-Computer Interaction Engineering Course Code 22190900 Weekly Hours 2.0-4.0 Credits 2.0 Offered Semester Spring semester 1: ,Alan Dix,Publishing house of Electronics Industry. Textbooks 2: ,Dong Jianming,Tsinghua University Press. (For Reference) Prerequisites None According to study of HCI and corresponding course experiments, students are expected to learn:

 The development and future trend of HCI, and the relationship between HCI and courses related to HCI.

Course Description  Design and development of User Interface  HCI Design based on user experiments

 Evaluation of User-Centered-Design

 User Interface Design of different industry fields

Multi-Modal Interaction Teaching Program

Course Code: 21120680

Course Name: Human-Computer Interaction Engineering

Weekly Hours: 2.0-4.0 Credits: 2.0

Teaching Goal and Basic Requirements:

Content of Courses & Hours Allocation: Week 1: Introduction & Basic of HCI  Course Introduction.  Basic concepts of HCI.  Development of HCI. Different cases of so-called HCI. Exercise 1: Give your definition of HCI and provide several successful examples of HCI. Week 2: Related courses  Introduction of courses related to HCI, especially ergonomics and cognitive psychology. Week 3: User Interface Design 1  Basic introduction  Detailed contents of UI design  Corresponding Case Study Exercise 2: Interpret the checklists of UI design standard of Xerox. Week 4: User Interface Design 2  Tools for UI design  Study to design UI and algorithm separately  QT programming Exercise 3: UI design by tools Week 5: User Experience Design-User Model  User Classification  User Investigation and Research Exercise: Questionnaire design by interviewing. Week 6: UED- Task Model  Introduce user task model.  Subdivision of user task Exercise 4: User task subdivision Week 7: UED – Usability Design  Usability design of UED  Emotion design of UED Exercise: writing a paper about selected advanced security topics Week 8: Multi-modal Interaction  Basic of Multi-model Interaction  Current MMIs  The future trend of HCI Teaching Plan: Integrate Case Study,6-8 homework after the class. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 1. ―Human-Computer Interaction-(Third Edition)‖,Alan Dix,Publishing house of Electronics Industry, 2006. 2. ―Human-Computer Interaction-User Centered Design and Evaluation-(Second Edition)‖,Dong Jianming,Tsinghua University Press, 2007.

Introduction to Human-Computer Interaction

Course Name Introduction to Human-Computer Interaction Course Code 21120680 Weekly Hours 2 Credits Offered Semester Spring semester 1. Jennifer Preece, Yvonne Rogers, Helen Sharp. Interaction design: Beyond human-computer interaction. Wiley Press, 2002. Textbooks 2. Doug A. Bowman, Ernst Kruijff, Joseph J. LaViola, Ivan Poupyrev. 3D User Interfaces : Theory and Practice. Addison-Wesley Professional (July, 2004) Prerequisites Computer Graphics Human-computer interaction (HCI) is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. This course covers the fundamental concepts, principles and key Course Description knowledge for human-computer interaction. The main contents include: brief introduction to HCI, user-centered design, usability analysis, user evaluation, foundation of 3d user interfaces and 3d interaction techniques, user interfaces for ubiquitous computing, and HCI-related hot topics. Teaching Program

Course Code: 21120680

Course Name: Introduction to Human-Computer Interaction

Weekly Hours: 2 Credits:

Teaching Goal and Basic Requirements: Teaching Objectives: To let students have an overview of HCI and be aware of HCI issues through lectures and demonstrations. Demands: Students are expected to master the basic concepts, principles and key knowledge of HCI (including design principles, usability analysis, cognition model, task analysis, design evaluation, and foundations for 3D interaction), and know the basics of multi-modal interfaces in ubiquitous computing environments. Content of Courses & Hours Allocation: Introduction 4 hours 1.1 The definition 1.2 The development 1.3 The contents 1.4 Related subjects: Psychology, Human Factors, etc (2). User-centered design 4 hours 2.1 User understanding 2.2 Cognition model 2.3 Task analysis (3). Usability, experience design and evaluation 8 hours 3.1 Usability 3.2 Design Principles 3.3 User experience design 3.4 Metaphors 3.5 Evaluation (4). Foundations of 3D user interfaces and 3D interaction techniques 8 hours 4.1 Introduction to 3D user interfaces 4.2 History and roadmap 4.3 Hardware technologies for 3D user interfaces 4.4 3D selection and direct manipulation 4.5 3D navigation 4.6 System control and typical examples (interactive toy, voice input, vision-based interaction) (5). User Interface for ubiquitous computing environments 4 hours 5.1 Interface prototyping 5.2 Internet-based interaction 5.3 Pen-based interaction 5.4 Game interaction design 5.5 Hand-hold facilities interface design (6). Open topics 4 hours 6.1 The future of human-computer interaction 6.2 Other hot topics (Tangible UI, BCI, etc. ) Teaching Plan: (1) 2 hours per week, 16 weeks (2) Using multimedia courseware, bilinguistic Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbooks: 1. Jennifer Preece, Yvonne Rogers, Helen Sharp. Interaction design: Beyond human-computer interaction. Wiley Press, 2002. 2. Doug A. Bowman, Ernst Kruijff, Joseph J. LaViola, Ivan Poupyrev. 3D User Interfaces : Theory and Practice. Addison-Wesley Professional (July, 2004) References: 3. Alan Dix, Janet E. Finlay, Gregory D. Abowd, Russell Beale, Human-Computer Interaction (3rd Edition). Prentice Hall. December, 2003. 4. R. J. Torres. User interface design and development. Prentice Hall PTR, NJ, 2002. 5. Mary Beth Rosson, John M. Carroll. Usability engineering. Morgan Kaufmann Publishers, CA, 2002. 6. 罗仕鉴,朱上上,孙守迁. 人机界面设计. 北京:机械工业出版社,2002 7. 董士海,王坚,戴国忠. 人机交互和多通道用户界面.北京:科学出版社,1999

Multimedia Technologies

Course Name Multimedia Technologies Course Code 21190740 Weekly Hours 4 Credits 2 Offered Semester Spring semester Textbooks Fundamentals of Multimedia Prerequisites This course aims at introducing the basic ideals in multimedia to students. The main content covered in this course is multimedia data compression. Data compression turns out to be an important enabling technology that makes modern multimedia system possible. We will introduce both lossless and lossy compression methods and several common used Course Description compression standards, including still JPEG image compression standards, video compression standards such as MPEG-1,MPEG-2,MPEG4 and beyond. We also consider some basic audio compression techniques such as MP3.At the last part of this course, we go on to briefly introduce some network technologies and protocols that make interactive multimedia applications possible.

Teaching Program

Course Code: 21190740

Course Name: Multimedia Technologies

Weekly Hours: 4 Credits: 2

Teaching Goal and Basic Requirements: This course is for students who want to learn basic concepts of multimedia technologies. The main contents of these concepts include how to present image, audio and video data. Students will learn several popular lossless compression algorithms and commonly used Image and video compression standards, such as JPEG,JPEG2000,MPEG-1,MPEG-2,MPEG-4,H.26x. Students will be required to finish their homework seriously in order to digest and consolidate what they learn. Teacher will assign sufficient homework at each teaching stage and give feedback to students in time. The grades of homework account for a certain proportion of the final score.

Content of Courses & Hours Allocation: This course aims at introducing the basic ideals in multimedia to students. The main content covered in this course is multimedia data compression. Data compression turns out to be an important enabling technology that makes modern multimedia system possible. We will introduce both lossless and lossy compression methods and several common used compression standards, including still JPEG image compression standards, video compression standards such as MPEG-1,MPEG-2,MPEG4 and beyond. We also consider some basic audio compression techniques such as MP3.At the last part of this course, we go on to briefly introduce some network technologies and protocols that make interactive multimedia applications possible. Teaching Plan: 2007.11.19~2007.11.25 Chapter 1 Introduction 2 hours chapter 2 Basic Knowledge of Images 2 hours 2007.11.26-2007.12.2 Chapter 3 Fundamentals of Colors 2 hours Chapter 4 Fundamentals of Video 2 hours 200.7.12.3-2007.12.9 Chapter 5 Fundamentals of Audio 2 hours Chapter 6 Direction of Exercises 2 hours 2007.12.10-2007.12.16 Chapter 7 Lossless Compression 2 hours Chapter 8 Lossy Compression 2 hours 2007.12.17-2007.12.23 Chapter 9 Image Compression Standards 2 hours Chapter 10 Basic Concepts of Video Compression 2 hours 2007.12.24-2007.12.30 Chapter 11 MPEG Video Compression (Part 1)2 hours Chapter 12 MPEG Video Compression (Part 2)2 hours 2007.12.31-2008.1.6 Chapter 13 Audio Compression 2 hours 2008.1.7-2008.1.13 Chapter 14 Exercises 2 hours Chapter 15 Multimedia Network Compression and Applications 2 hours Teaching Process The process of teaching mainly includes teaching and homework. Teacher will assign sufficient homework at each teaching stage so as to improve the effect of teaching and learning and the grades of homework accounts for a certain proportion of the final score. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Fundamentals of Multimedia, Ze-Nian Li Mark S.Drew, China Machine Pub,Aug.2004 Some reference website: http://www.jpeg.org/jpeg2000/ http://www.chiariglione.org/mpeg/index.htm http://www.m4if.org/ http://bmrc.berkeley.edu/

Principle of Compilers

Course Name Principle of Compilers Course Code 21120470 Weekly Hours 2.0-0.0 Credits 2.0 Offered Semester Spring semester 《Modern Compiler Implementation in C》 Andrew W. Appel, Posts & Textbooks Telecom PRESS,2005.9 Prerequisites Data structure 、Assemble Language,A programming language Compiler Principle introduces major components of a compiler including: preprocessor, scanner, parser, symbol table. Code generator, semantic analyzer and target code optimizer will also be introduced simply. Course Description Students are assumed to learn the following fundamentals: regular expression, automation, context-free grammars and etc, and they are supposed to grasp the lexical analyzer basing automation, the parser of top-down parsing, bottom-up parsing and the syntax-directed translation. Teaching Program

Course Code: 21120470

Course Name: Principle of Compilers

Weekly Hours: 2.0-0.0 Credits: 2.0

Teaching Goal and Basic Requirements: Compiler Principle introduces major components, basic principle and important technology of a compiler. Students are assumed to learn, understand and grasp the compiler. Students learn the following fundamentals: regular expression, automation, context-free grammars and etc, and they are supposed to grasp the lexical analyzer automatically, the parser of top-down parsing, bottom-up parsing and the syntax-directed translation. Content of Courses & Hours Allocation: 1. basic concept of the compiler 2.5 periods the basic meaning of the compile, basic structure of a compiler, other concepts relevant to a compiler. 2. lexical analysis 6.5 periods regular expressions representing patterns of strings of characters and definitions of NFA, DFA are introduced. Methods from a regular expression to an NFA, from an NFA to a DFA are introduced. The students will understand how to fulfill a scanner (lexical analysis) automatically. 3. a context free grammar and analysis 7 periods some basic concepts in the context-free grammar are discussed, including programming language grammar designing, syntax tree, parse tree, ambiguity in grammar removing, left recursion removing and left factoring. 4. LL(1) grammar and parser 7 periods Recursive-descent parsing and LL(1) parsing are discussed. We introduce top-down parsing techniques basing table-driven methods, constructing LL(1) parsing table, designing LL(1) grammar and fulfilling parsing program basing LL(1) table-driven. Some methods about error repairing and recovering are discussed simply. 5. LR grammar and parser 7 periods LR parsing techniques and methods are introduced including the parsing methods and algorithms. The finite automata and parsing algorithms of LR(0),SLR(1),LALR(1) and LR(1) are discussed. 6. symbol table arrangement and code generation 4 periods the structure of symbol table and some concept relevant to symbol table are introduced. The semantic analysis, attributes , attribute grammars and intermediate code are discussed simply. Teaching Plan: 2 hours homework per week. TA (a graduate student) checks the homework and mark. The courseware(ppt) can be download from the FTP. The teaching with multimedia The final examination is the written examination. The score includes three parts: attend class 15%, homework 15%, The final examination 75% Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《Modern Compiler Implementation in C》, Andrew W. Appel, Posts & Telecom PRESS, 2005.9 《Compiler Construction Principles and Practice》, Kenneth C. Louden,China Machine PRESS, 2002,8

Principles of Information Security

Course Name Principles of Information Security Course Code 21190850 Weekly Hours 2.0-0.0 Credits 2.0 Offered Semester Spring Semester ―Computer Security: Art and Science", Matthew Bishop, Addison-Wesley, Textbooks 2002. Prerequisites Computer Network Help students understand various issues of information security, such as confidentiality, integrity, availability; authentication models; protection models; security kernels; secure programming; audit; intrusion detection Course Description and response; policy formation and enforcement; access controls; information flow; identification and authentication in local and distributed systems; classification and trust modeling; risk assessment.

Teaching Program

Course Code: 21190850

Course Name: Principles of Information Security

Weekly Hours: 2.0-0.0 Credits: 2.0

Teaching Goal and Basic Requirements: Help students understand various issues of information security, such as confidentiality, integrity, availability; authentication models; protection models; security kernels; secure programming; audit; intrusion detection and response; operational security issues; physical security issues; personnel security; policy formation and enforcement; access controls; information flow; legal and social issues; identification and authentication in local and distributed systems; classification and trust modeling; risk assessment. The students are required to understand basic concept of information security and security infrastructure. Besides, they are required to know how to use certain security products. Content of Courses & Hours Allocation: This course help students understand various issues of information security, such as confidentiality, integrity, availability; authentication models; protection models; security kernels; secure programming; audit; intrusion detection and response; operational security issues; physical security issues; personnel security; policy formation and enforcement; access controls; information flow; legal and social issues; identification and authentication in local and distributed systems; classification and trust modeling; risk assessment. Week 1: Introduction & Basic of Information Security  Course Introduction.  Basic concepts of information security: trust, security, threat, countermeasure, etc. Week 2: Cryptography  Cryptography: History  Single key Crypto-system  Public Key Crypto-system Exercise: try to decrypt a given ciphertext. Week 3: OS Security  Authentication, authorization and identification.  Access Control Matrix Model. Bell-LaPadula model, and more formal policy models.  Information flow. Week 4: Malicious Code  Concept and classification of malicious code  Trojan horses  Computer viruses and worms  Defenses techniques Week 5: Trusted Computing & Trusted OS  Concept of TCG (Trusted Computing Group)  The Core Component - TPM  System Layout based on TCG  Secure design principles.  TCB and security kernel construction. Week 6: Network Security 1  Web Security & Browser Security.  Network Phishing & Online Identity Management Week 7: Network Security 2  TCP/IP Security.  Typical attacks and possible countermeasures  Botnets and Denial of Service Exercise: writing a paper about selected advanced security topics Week 8: Network Security 3  Firewall: concept and classification  Misuse and intrusion detection: host, network, distributed, application.  Pattern and behavior detection.  Distributed attacks and defenses. Teaching Plan: Integrate Case Study and Discussion into the class. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) [1]―Computer Security: Art and Science", Matthew Bishop, Addison-Wesley, 2002. [2] “计算机安全:艺术与科学”, Matthew Bishop, 清 华 大 学 出 版 社 , 2004.http://www.china-pub.com/computers/subject/huodong/sanshe/sale.asp

Overview of Digital Communication Systems and Networks

Course Name Overview of Digital Communication Systems and Networks Course Code 22190780 Weekly Hours 4 Credits 2.0 Offered Semester Spring semester William Stallings, Wireless Communications and Networks, Prentice Hall, Textbooks 2002 Analog Circuits, Digital Circuits, Probability and Random Processes, Prerequisites Signals & Systems Introduction to the basic principles of the design and analysis of modern digital communication systems. Topics include source coding; information theoretic techniques; analog and digital modulation techniques; block, convolutional, and trellis coding techniques; multiuser communications Course Description and spread spectrum; multi-carrier techniques and FDM. This course also provides a comprehensive introduction of the development of modern communication systems, including the first generation analog, the second generation TDMA and CDMA, and some representative examples of the third generation systems ⎯ WCDMA and UMTS.

Software Architecture

Course Name Software Architecture Course Code 21190840 Weekly Hours 4.0-0.0 Credits 2.0 Offered Semester Spring semester Software Architecture in Practice,2/e, L. Bass, P. Clements, and R. Textbooks Kazman, Tsinghua University Press, 2003 Prerequisites Software Engineering As the software component of systems becomes larger and more complex, the need to understand them at a higher level of abstraction becomes more important. The software architecture of a computing system describes the overall structure of the system in terms of the software components, the externally visible properties of those components, and the relationships among them. For large software system like traffic management systems, Course Description process control systems, and command-and-control systems, the choice of software architecture is becoming more crucial within the overall development process. This course will discuss different software architecture styles, their properties and the types of problems for which they are most appropriate, it will examine different formalisms for specifying software architecture, and it will explore the role of software architecture throughout the software development life cycle.

Project Management and Case Study

Course Name Project Management and Case Study Course Code 21120710 Weekly Hours 4.0-2.0 Credits 2.5 Offered Semester Spring-Summer semester Information Technology Project Management, Schwalbe, Kathy, 4nd ed., Textbooks Course Technology, Prerequisites Software Engineering As the important part in software engineering, the course gives the students some capability of project and process management techniques and organization operation. the case and practice provide an understanding and application of project management conception and processes. It Course Description includes project concept, project development life cycle, project selection, project planning, resource management, cost-benefit analysis, time management, quality management. Students learn the importance of effective communication and integration.

Software Engineering

Course Name Software Engineering Course Code 21120261 Weekly Hours 2.0-1.0 Credits 2.5 Offered Semester Spring-Summer semester Software Engineering – A Practitioner‘s Approach, 6th Edition, Roger S. Textbooks Pressman, Tsinghua University Press, 2006 Prerequisites Fundamentals of C Programming Teaching Program

Course Code: 21120261

Course Name: Software Engineering

Weekly Hours: 2.0-1.0 Credits: 2.5

Teaching Goal and Basic Requirements: Teaching Objective: ―Software Engineering‖ is for senior undergraduate students majored in Computer Science. This course guides the students to understand the significance of some fundamental concepts of software engineering. The frame works are introduced, such as the fundamental principles and concepts of software engineering, and its methods and tools. Projects are assigned to help students experience the life-cycle of a large-scaled software during practice. Basic Requirements: Students are supposed to 1. Understand the fundamental principles and concepts of software engineering. Software management, system modeling, requirement analysis, system design, component-level design, coding, testing, maintenance are covered; 2. Learn to use some basic methods and tools such as project management, data flow diagrams, data dictionary, conventional and object-oriented analysis methods, testing methods, and project measurements; 3. Master the methods and tools by experiencing practice of developing a large-scaled project. Content of Courses & Hours Allocation:

Ch.1 Introduction -- 2 hrs Ch.2 -3 The Process -- 2 hrs Ch.21 Project Management; Ch.5 + 6 System Engineering -- 2 hrs Ch.7 Requirement Engineering -- 2 hrs Ch.8 Analysis Model -- 2 hrs Ch.26 SQA; Ch.27 Change; Ch.9 Design Engineering -- 2 hrs Ch.10 Architectural Design -- 2 hrs Ch.13 Testing Strategies -- 2 hrs Ch.14 Testing Tactics -- 2 hrs Ch.11 Component-level Design; Ch.12 UI Design -- 2 hrs Ch.16 ; Ch.17 WebApp Project -- 2 hrs Ch.18 Analysis; Ch.19 Design -- 2 hrs Ch.20 Testing for WebApp; Ch.24 Scheduling; Ch.25 Risk -- 2 hrs Ch.4 Agile; Ch.15 Product Metrics; Ch.22 Project Process Metrics -- 2 hrs Ch.23 Estimation -- 2 hrs Review -- 2 hrs

Teaching Plan: 1. Use multi-media classrooms. 2. Homework: 1~2 hours/week. 3. Laboratory Project: Students will be partitioned into 6 ~10 teams to develop a large-scaled system. The assessment includes Requirement Specification report, System Design presentation, Testing Plan report, Version 1.0 Release, Version 2.0 Release, System Integration, and Web Design presentation. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbook: Software Engineering – A Practitioner‘s Approach, 6th Edition, Roger S. Pressman, Tsinghua University Press, 2006 Reference Books: 1.《 Software Engineering, Theory and Practice》Shari Lawrence Pfleeger Prentice-Hall, Inc. (1998) 2.《软件工程导论》(第三版),张海藩,清华大学出版社(1997) 3.《实用软件工程》(第二版),郑人杰、殷人昆、陶永雷,清华大学出版社(1996) 4.《 Fundamentals of Software Engineering》Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Prentice-Hall, Inc. (1991)

Computer Architecture

Course Name Computer Architecture Course Code 21191061 Weekly Hours 2.5-1.0 Credits 3.0 Offered Semester Spring-Summer semester 《Computer Architecture--A Quantitative Approach》, Fourth Edition, Textbooks John L. Hennessy,David A. Patterson,China Machine Press Prerequisites Computer Organization, Operating System This course focuses on introduction of fundamental concepts of computer architecture, the task of computer design, quantitative principles of computer design, and performance evaluation of computer systems. The topics will cover quantitative principles of computer design, instruction set Course Description principles and examples, characteristics of CISC and RISC machines, basic and intermediate concepts for pipelining, causes and resolutions for pipeline hazards, memory hierarchy, improvement of cache performance, basic concepts for multiprocessors. Teaching Program

Course Code: 21191061

Course Name: Computer Architecture

Weekly Hours: 2.5-1.0 Credits: 3.0

Teaching Goal and Basic Requirements: Teaching Objectives:To learn the basic concepts and principles of computer architecture. To know how to design a computer using the quantitative approaches. To learn the methods evaluating the performance of a computer system. Requirements: We learn this course to know how to design a computer via trade-off. How the computer works, which involves architecture at many levels through algorithm, compiler, machine code to instruction set architecture level and micro-architecture level. Students are expected to learn the processor pipeline, pipeline hazards, memory hierarchy and methods to improvement cache performance, memory technology and optimizations, virtual memory and virtual machines, and multiprocessors. Content of Courses & Hours Allocation: Introduction to the course ( 1 credit-hour ) Chapter 1:Fundamentals of Computer Design (5 credit-hours) 1.1 Introduction 1.2 Classes of Computers 1.3 Defining Computer Architecture 1.4 Trends in Technology 1.5 Trends in Power in integrated circuits 1.6 Trends in cost 1.7 Dependability 1.8 Measuring, reporting and summarizing performance 1.9 Quantitative principles of computer design 1.10 Performance and price-performance 1.11 Answer to assignments Chapter 2:Instruction Set Principles and Examples ( 5 credit-hours) 2.1 Introduction 2.2 Classifying instruction set architecture 2.3 Memory addressing 2.4 Type and size of operands 2.5 Operation in the instruction set 2.6 Instruction s for control flow 2.7 Encoding an instruction set 2.8 The role of compilers 2.9 The MIPS architecture 2.10 Answer to assignments Chapter 3:Pipelining: Basic and Intermediate Concepts ( 12 credit-hours) 3.1 Introduction 3.2 The Major hurdles of pipelining-pipeline hazards 3.3 How is pipelining implemented ? 3.4 What makes pipelining hard to implement? 3.5 Extending the MIPS pipeline to handle multicycle operations 3.6 The MIPS R4000 pipeline 3.7 Survey of Instruction Level Parallelism 3.8 Answer to assignments Chapter 4 : Memory Hierarchy Design 10 hours 4.1 Introduciton 4.2 Cache performance 4.3 Six Basic cache optimizations 4.4 Eleven advanced optimizations of cache performance 4.5 Memory technology and optimizations 4.6 Virtual memory 4.7 Protection and examples of virtual memory 4.8 Virtual memory and virtual machines 4.9 The design of memory hierarchies 4.10 AMD opteron memory hierarchy 4.11 Answer to assignments Chapter 5: Multiprocessors ( 2 credit-hours) 5.1 Introduciton 5.2 Symmetric Shared-Memory Architecture 5.3 Performance of Symmetric Shared-Memory Architecture 5.4 Distributed shared memory and directory-based coherence Chapter 6:Perspective of computer architecture ( 2 credit-hours) Overview of the course:( 3 credit-hours) Lab assignments: 1. Understand how to design a simple and to know the MIPS instructions to be implemented. 2. Learn to install and use MaxPlus II. 3. Use MaxPlusII to design CPUs and perform function simulation step by step according to the project tutorial. a) Function Unit design, including Multiplexers、Adder、Shifter、ALU、Register file b) Single-cycle CPU c) Multiple-cycle CPU d) Pipelined CPU Teaching Plan: 1. Class teaching with lecture notes in PowerPoint files. 2. At least two pop quizzes. 3. Homework for each chapter. 4. Lab assignments, about 32 credit hours. 5. Lab assignments includes: 1) basic function units design; 2) single-cycle CPU design; 3) multiple-cycle CPU design; 4) pipelined CPU design. 6. Lecture notes and instructions for lab assignments can be downloaded via FTP. 7. Course website providing learning materials. 8. Bonus can be added to one‘s final grade if his lab assignments are finished extremely well done. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 1. ―Computer Architecture-A Quantitative Approach‖, Fourth Edition,John L. Hennessy,David A. Patterson,China Machine Press. ISBN: 7-111-20378-X, Jan. 2007. 2. ―Computer Architecture-A Quantitative Approach(3rd edition)‖(in Chinese) , John L. Hennessy , David A. Patterson , Translated by Zheng-Weimin, Tang-Zhizhong,Wang-Dongsheng, Publishing House of Electronics Industry,ISBN: 7-5053-9916-0, July,2004.

Fundamentals of Computer Networks

Course Name Fundamentals of Computer Networks Course Code 21120850 Weekly Hours 3-1 Credits 3.5 Offered Semester Spring-Summer semester Computer Networks (Fourth Edition) , Andrew S. Tanenbaum, Tsinghua Textbooks University Press, 2004. Prerequisites Computer Structure, C++ Language From the perspective of network architecture, network principles and related fundamental concepts and methods in digital communication, internetworking and advanced protocols are introduced in this course. Some significant functions and relative protocols in network architecture together with recent developments of network and their technologies are Course Description also introduced. Students can get familiar with fundamental computer network principles and basic knowledge of the field through the course learning. And a thorough understanding of commonly used network and network security technology can be obtained with intimate knowledge of network architecture, functional principles and various of network protocols (especially that of TCP/IP). Teaching Program

Course Code: 21120850

Course Name: Fundamentals of Computer Networks

Weekly Hours: 3.0-1.0 Credits: 3.5

Teaching Goal and Basic Requirements:

Teaching Objective: From the perspective of network architecture, network principles and related fundamental concepts and methods in digital communication, internetworking and advanced protocols are introduced in this course. Some significant functions and relative protocols in network architecture together with recent developments of network and their technologies are also introduced. Basic Requirements: Students can get familiar with fundamental computer network principles and basic knowledge of the field through the course learning. And a thorough understanding of commonly -used network and network security technology can be obtained with intimate knowledge of network architecture, functional principles and various of network protocols (especially that of TCP/IP and Internet). Content of Courses & Hours Allocation: Week Lecture Outline Hour 1 The history and actual of computer networks. Concepts of protocols. 3 Network architectures. Network standardization. Reference models. Comparison of the OSI and TCP/IP reference models. Example networks, such as Internet, Ethernet, Frame Relay, ATM, WLAN and so on. 2 Physical Layer: The theoretical basis for data communication. Guided 3 transmission media (Coaxial cable, twisted pair and fiber optics). Wireless transmission. 3 Physical Layer: Communication satellites. The PSTN (Modem, xDSL). The 3 mobile telephone system. Cable television (Broadband technology, cable modem). 4 Data Link Layer: Design issues. Error detection and correction. Elementary 3 Data link protocols. 5 Data Link Layer: Sliding window protocols. Protocol verification. Example 3 data link protocols(HDLC and PPP). 6 MAC Sublayer: The Channel Allocation Problem. Multiple Access 3 Protocols. Ethernet. (Switched Ethernet, Fast Ethernet, Gigabit Ethernet, etc.) 7 MAC Sublayer: Wireless LANs. Broadband Wireless. Bluetooth. Data Link 3 Layer Switching technologies(Spanning tree bridges, Repeaters, Hubs, Bridges, Switches, Routers, Gateways and VLANs) 8 Network Layer: Design issues. Routing algorithms (Distance vector routing 3 and Link state routing). 9 Network Layer: Congestion control algorithms. Quality of service. 3 Internetworking. IP protocol, ICMP protocol. The migrating technology from IPv4 to IPv6. MPLS technology. 10 Network Layer: Interior gateway routing protocols (RIP, OSPF), Exterior 3 gateway routing protocols (BGP), IP Multicasting, DHCP protocol , Network Address Translation(NAT). 11 Transport Layer: The transport service. Elements of transport protocols. 3 The Internet Transport Protocols: UDP. 12 Transport Layer: The Internet transport protocols: TCP. Performance issues. 3 13 Application Layer: The domain name system (DNS). Electronic mail 3 (SMTP, POP3). File transfer protocol (FTP, TFTP). 14 Application Layer: The World Wide Web (Static pages, Dynamic pages, 3 Enhanced performance, HTTP, HTTPS, Wireless WEB). IP network and Multimedia. 15 Network Security: Cryptography. Symmetric-Key Algorithms (DES,AES). 3 Public-Key Algorithms (RSA and so on). Digital Signatures. Management of Public Keys (Digital certificates, X.509). 16 Network Security: Communication security (IPsec, Firewall and VPN). 3 Authentication protocols. E-Mail Security (PGP and so on). Web Security. 17 Final Exam. 3 Teaching Plan: 1. Use multi-media classrooms. 2. Laboratory Practice: 1 hours/week. Team work with 3 projects. 3. Homework: 3~5 hours/chapter. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbook: Andrew S. Tanenbaum,Computer Networks, 4/E,Tsinghua University Press,2004 Reference Books: [1].Computer Networks and With Internet Applications --Third Edition,Douglas E.Comer, Tsinghua University Press,2002 [2].Computer Networks,4/E, XIE Xiren, Electric Industry Press, 2003

Network Programming

Course Name Network Programming Course Code 21191200 Weekly Hours 1.0-2.0 Credits 2.0 Offered Semester Summer semester 《UNIX Network Programming Volume 1, Third Edition: The Sockets Textbooks Networking API》,W.Richard Stevens, Bill Fenner, Andrew M. Rudoff, 机 械工业出版社,2004 Prerequisites Fundamentals of Computer Networks, Object Oriented Programming This course is designed to provide students with and understanding about the standards, implementations, and techniques of network programming. Course Description The students will learn the technique details of the sockets, included TCP and UDP. This course guidance for building robust, high-performance networked systems. Teaching Program

Course Code: 21191200

Course Name: Network Programming

Weekly Hours: 1.0-2.0 Credits: 2.0

Teaching Goal and Basic Requirements: This course is designed to provide students with and understanding about the standards, implementations, and techniques of network programming. The students will learn the technique details of the sockets, included TCP and UDP. This course guidance for building robust, high-performance networked systems. Content of Courses & Hours Allocation: Lesson 1 Introduction and TCP/IP 2 hours Lesson 2 Sockets Introduction 1 hour Lesson 3 Elementary TCP Sockets 1 hour Lesson 4 I/O Multiplexing 1 hour Lesson 5 Socket Options 1 hour Lesson 6 Elementary UDP Sockets 1 hour Lesson 7 Elementary SCTP Sockets 1 hour Lesson 8 Name and Address Conversions 1 hour Lesson 9 Advanced I/O Functions 1 hour Lesson 10 Nonblocking I/O 1 hour Lesson 11 ioctl Operations 1 hour Lesson 12 Broadcasting and Multicasting 1 hour Lesson 13 Advanced UDP Sockets 1 hour Lesson 14 Out-of-Band Data 1 hour Lesson 15 Raw Sockets 1 hour Laboratory Projects: TELNET Protocol Programming 8 hours TFTP Protocol Programming 12 hours P2P Programming 12 hours Teaching Plan:

Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《UNIX Network Programming Volume 1, Third Edition: The Sockets Networking API》, W.Richard Stevens, Bill Fenner, Andrew M. Rudoff, 机械工业出版社,2004

Algorithm Design and Analysis

Course Name Algorithm Design and Analysis Course Code 22120011 Weekly Hours 2.0-4.0 Credits 1.0-2.0 Offered Semester Summer semester Introduction to algorithms, Second Edition. Textbooks Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. The MIT Press. ISBN: 0262032937. 2001. Prerequisites One programming language; Data Structure 《Algorithm design and analysis》is the fundamental course of theoretical computer science. This course covers the basic knowledge of algorithm designing and analysis, includes many practice problems, such as many problems appear in ACM/ICPC. Mainly, this course is to offer the Course Description institution of algorithms and the techniques of algorithm designing and analyzing. The outcomes of the course are: 1) Understand the concepts and skills of algorithm design; 2) Implement some well-known algorithms; 3) Could roughly analyze the performance of algorithms. Teaching Program

Course Code:

Course Name: Algorithm Design and Analysis

Weekly Hours: 2.0-4.0 Credits: 1.0-2.0

Teaching Goal and Basic Requirements: 《Algorithm design and analysis》is the fundamental course of theoretical computer science. This course covers the basic knowledge of algorithm designing and analysis, includes many practice problems, such as many problems appear in ACM/ICPC. Mainly, this course is to offer the institution of algorithms and the techniques of algorithm designing and analyzing. The outcomes of the course are: 1) Understand the concepts and skills of algorithm design; 2) Implement some well-known algorithms; 3) Could roughly analyze the performance of algorithms. Content of Courses & Hours Allocation: 1. Mathematical Fundament 1.1 Fundamental of algorithms 1.2 SUMS, Sets 1.3 Special Numbers (Stirling numbers, Harmonic numbers, Eulerian numbers et al.) 2. Fundamental Algorithms 2.1 Divide-and-Conquer 2.1.1 Mergesort 2.1.2 Multiplication 2.1.3 Matrix multiplication 2.1.4 Discrete Fourier transform and Fast Fourier transform 2.2 Dynamic Programming 2.2.1 Longest increasing subsequence 2.2.2 Sequence alignment 2.2.3 Longest common subsequence 2.3.4 Matrix-chain multiplication 2.3.5 Independent sets in tree * 2.3 Greedy method 2.3.1 Interval scheduling 2.3.2 Set cover 2.3.3 Matroids * 2.4 NP problem and NP-completeness 2.4.1 The classes P and NP 2.4.2 NP-completeness and reducibility 2.4.3 NP-complete problems 2.5 Approximate Algorithm 2.5.1 Vertex cover 2.5.2 Load balancing 2.5.3 Traveling salesman problem 2.5.4 Subset sum problem 2.6 Amortized Analysis * 3. Applications of Algorithms 3.1 Local Search 3.1.1 The Metropolis Algorithm and Simulated Annealing 3.1.2 Local Search to Hopfield Neural Networks(Nash Equilibria) 3.1.3 Maximum Cut Approximation via Local Search 3.2 Graph Theorem 3.2.1 Fundamental of Graph theorem 3.2.2 Simple introduction to Linear Programming 3.3 Computational Geometry 3.3.1 Notation and Line-segment 3.3.2 Properties of line 3.3.3 Convex hull 3.3.4 Closest pair problem 3.3.5 Polygon Triangulation 3.4 String Matching* 3.4.1 Simple algorithm for string matching 3.4.2 The Karp-Rabin algorithm 3.4.3 Finite automata, The Knuth-Morris-Pratt algorithm 3.5 Randomized Algorithm 3.5.1 Random variables and expectations 3.5.2 A Randomized MAX-3-SAT 3.5.3 Randomized Divide-and-Conquer 3.6 Number-Theoretic * 3.7 BigNums * 3.8 Advance Data Structure* Skip list, Fibonacci Heaps, Data Structures for Disjoint Sets 3.9 Matrix operations* 3.10. Online Algorithms 3.10.1 General lower bounds 3.10.2 Doubling Technique for upper bounds *:Optional contents Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbooks: Introduction to algorithms, Second Edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. The MIT Press. ISBN: 0262032937. 2001. References: 1. Concrete Mathematics Ronald L. Graham, Donald E. Knuth, Oren Patashnik. Addison-Wesley Publishing Company. ISBN: o-201-14236-8.2005. 2. Algorithm Design Jon Kleinberg, Eva Tardos, Addison Wesley. ISBN: 0-321-29535-8 2005. 3. Algorithms S. Dasgupta, C.H. Papadimitriou, and U. V. Vazirani. May 2006. 4. Combinatorial Algorithms Jeff Erickson. University of Illinois, Urbana-Champaign. Lecture Notes. Fall 2002.

Capability Maturity Model

Course Name Capability Maturity Model Course Code 22120011 Weekly Hours 2.0-1.0 Credits 2.5 Offered Semester Summer semester 《CMMI: Guidelines for Process Integration and Product Improvement》, Textbooks Mary Beth Chrissis, Mike Konrad, Sandy Shrum, Tsinghua University Press, ISBN: 7-302-07868-8/TP·5715, 2004-11。 Prerequisites The course introduces basic concepts of CMMI, including process areas and relationships among process areas, process institutionalization, continuous and staged representations, how to use CMMI models, etc. Process areas concerning software process management will be introduced and discussed in detail, including requirements management, project Course Description planning, , project monitoring and control, measurement and analysis, process and product quality assurance, configuration management, etc. Students will also be organized into several development teams to finish separate projects and present their achievements in the class.

Teaching Program Course Code: 22120011

Course Name: Capability Maturity Model

Weekly Hours: 2.0-1.0 Credits: 2.5

Teaching Goal and Basic Requirements: The students are expected to understand the basic principles and components of software process management and CMMI, and that successful software development can be achieved by software process improvement. The students are required to first set up a goal targeting a specific capability level or maturity level, then select and tailor a realistic CMMI model to implement a practical software project. Content of Courses & Hours Allocation: 1. CMMI Introduction (2 hours) Evolution of CMMI; Process improvement concept; Source models of CMMI; Two different representations of CMMI. 2. Process Area Introduction (2 hours) Required, expected and information components of process area; Numbering scheme and typographical conventions in the process area. Categorization of process areas. Students are assigned with different process areas to start research. 3. Process Institutionalization (2 hours) Different levels of process, i.e., performed, managed, defined, quantitatively managed and optimized process; Generic goals and generic practices relating to different levels of process. 4. Relationships among process areas (4 hours) Four categories of CMMI process areas; Process area relationship in the same category as well as among different categories. Students are organized into separate teams and assigned with several projects. 5. Comparison of two different representations of CMMI (4 hours) Understanding capability levels and maturity levels; Comparison and equivalent staging of the two representations. 6. Using CMMI (2 hours) Two different aspects of using CMMI. One is for appraisals and benchmarking, the other is for process improvement. 7. Introduction of process areas in maturity level 2 (6 hours) Introduce software specific process areas in maturity level 2. Students are require to present their research achievements in requirement management, project planning, project monitoring and control, and configuration management. 8. Introduction of process areas in maturity level 3 (4 hours) Introduce software specific process areas in maturity level 3. Students are require to present their research achievements in integrated project management, requirement development, and risk management. 9. Introduction of process areas in maturity level 4 and 5 (2 hours) 10. Project presentation and level appraisal (4 hours) Every team presents their software process management achievements in the project development. Students are encouraged to give their comments on the maturity levels of different teams or capability levels of different processes. Teaching Plan:

Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《CMMI: Guidelines for Process Integration and Product Improvement》, Mary Beth Chrissis, Mike Konrad, Sandy Shrum, 清华大学出版社, ISBN: 7-302-07868-8/TP·5715

Compiler Design

Course Name Compiler Design Course Code 21190960 Weekly Hours 1.0-1.0 Credits 1.5 Offered Semester Summer semester 《Modern Compiler Implementation in C》 Andrew W. Appel, Posts & Textbooks Telecom PRESS,2005.9 Data structure 、Assemble Language,A programming language, Compiler Prerequisites Principle This course assumes the students are familiar with major components of a compiler including: preprocessor, scanner, parser and symbol table. Compiler Design mainly introduces two program, LEX: a scanner Course Description generator and YACC: a parser generator. Also Compiler Design mainly introduces source code optimizer,syntax analyzer, code generator and target code optimizer. They are supposed to be able to design and implement a small full compiler after finishing the course. Teaching Program

Course Code: 21190960

Course Name: Compiler Design

Weekly Hours: 1.0-1.0 Credits: 1.5

Teaching Goal and Basic Requirements: Compiler design introduces major components of a compiler and how to design and accomplish a compiler. Students are assumed to learn, understand and grasp the basic methods and tools for fulfilling a compiler. Students learn the major component of a compiler: syntax analysis, code generation, code optimize and etc, and they are supposed to grasp the major tools LEX and YACC. Then they can finish a complier or parts of a compiler. Content of Courses & Hours Allocation: 17 periods, experiment classes are not included. 7. LEX and YACC 3 periods A LALR(1) parser generator (YACC) generating a parser automatically and a LEX generating a scanner automatically are introduced. 2. semantic analysis 4 periods Additional information needed for compilation are discussed. Attributes and attribute grammars are introduced. Also the data types and type checking relevant to semantic analysis are mainly introduced. 3. runtime environments 4 periods Memory organization during program execution is introduced: fully static runtime environment, stack-based runtime environment and dynamic memory and parameter passing mechanisms. 4. code generation 6 periods The main contents are intermediate code and data structure in code generation. Basic code generating technique including control statements, logical expressions, procedure and function calls. Some code optimization techniques are introduced. Teaching Plan: 1 hours homework per week. A project: the design and implementation of some modules of compiler. TA (a graduate student) checks the homework and mark. The courseware(ppt) can be download from the FTP. The teaching with multimedia The final examination is the written examination. The score includes four parts: attend class 10%, homework 5%, the project 25%, The final examination 60%. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) 《Modern Compiler Implementation in C》, Andrew W. Appel, Posts & Telecom PRESS, 2005.9 《Compiler Construction Principles and Practice》, Kenneth C. Louden,China Machine PRESS, 2002,8

Design and Project of Network System

Course Name Design and Project of Network System Course Code 21190901 Weekly Hours 0.5-2 Credits 1.5 Offered Semester Summer semester 《Cisco Networking Academy Program CCNA 3 and 4 Companion Textbooks Guide》Third Edition,Cisco systems, Inc., Cisco Press; June 25, 2003; Prerequisites Fundamentals of Computer Networks This course introduces the practical technologies concerned switches, routers, CSU/DSU and Modems, analyses network structures of local area network and wide area network, and introduces configuration methods of static routing, RIP and OSPF protocols. And also the course introduces Course Description switching technology, LAN design, VLAN and point-to-point protocols. The goal of this course is to enhance practical skills of students on configuring network protocols, such as RIP、OSPF、DHCP、DNS、CHAP、 FTT and NAT, accumulate practical experience of network design and maintenance. Teaching Program

Course Code: 21190901

Course Name: Design and Project of Network System

Weekly Hours: 0.5-2.0 Credits: 1.5

Teaching Goal and Basic Requirements:

Teaching Objective: From the perspective of network architecture, technologies and related project design methods, students are required to do a lot of experiments on network installation, configuration and debugging for switches and routers in this course. Basic Requirements: Students can get familiar with fundamental computer network principles and common used protocols via theory teaching and experiment. After this course, they can configure most of switches and routers, and can also design simple network systems. Content of Courses & Hours Allocation: Content of Teaching: Content of Teaching Week Lecture Outline Hour 1 Introduce laboratory environment, routers, switches and network OS and 1 network commands 2 Introduce the principle and usage of switch 1 3 VLAN design and use 1 4 Introduce the principle and usage of router, and static route configuration 1 5 Introduce the principle, command and configuration of dynamic route 1 protocol(RIP) 6 Introduce the principle, command and configuration of dynamic route 1 protocol(OSPF) 7 Introduce the setup and usage of DNS,DHCP and WWW servers 1 8 Review and Exam. 1 Content of Experiment Week Lecture Outline Hour 1 To be familiar with laboratory hardware and software environment, 4 To be familiar with multi-modes and commands of routers and switches, To configure routers as telnet server. 2 To be familiar with laboratory hardware and software environment, 4 To be familiar with multi-modes and commands of routers and switches, To configure routers as telnet server. 3 To remove password of router and switch 4 To install and upgrade IOS of router and switch via TFTP server 4 To configure switch and VLAN 4 5 To configure and analyses static route protocol 4 6 To configure and analyses dynamic static route protocol(RIP) 4 7 To configure and analyses dynamic static route protocol(OSPF) 4 8 To configure a router as a DHCP server 4 Teaching Plan: 1. Use multi-media classrooms. 2. Laboratory Practice: 4 hours/week. Team work with 7 projects. 3. To finish at least 5 experiment reports Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Textbook: Cisco Networking Academy Program CCNA 3 and 4 Companion Guide,Cisco systems, Inc., Cisco Press,2003 Reference Books: [1]. Network Practice Guide: Based on Cisco Routers and Switches, Lu Kui Jun, Tsinghua University Press,2007 [2]. CCNA Experiment Guide, Gary Heap,Lynn Mayness,[Translated by] Yuan Ai Ping, Posts and Telecom Press, 2002 [3]. Cisco Networking Academy Program: First-Year Companion Guide,2nd Edition, Cisco systems, Inc.,Cisco Press,2001

Mutual Fund Management and Services

Course Name Mutual Fund Management and Services Course Code 21190980 Weekly Hours 2.0-0.0 Credits 2 Offered Semester Summer semester ‗How Mutual Fund Works‘, Albert J. Fredman & Russ Wiler, Prentice Hall Textbooks Press, 1997 Prerequisites None This course will illustrate the basic concepts and operational business knowledge of mutual fund. Mainly it will cover the topics as mutual fund setup, mutual fund management and operation, and services for mutual Course Description fund business such as custody, pricing, and reporting. Different roles within the mutual fund business such as investor, investment manager, transfer agent, custodian, and settlement will also be introduced.

Teaching Program

Course Code: 21190980

Course Name: Mutual Fund Management and Services

Weekly Hours: 2.0-0.0 Credits: 2

Teaching Goal and Basic Requirements: This course will illustrate the basic concepts and operational business knowledge of mutual fund. Mainly it will cover the topics as mutual fund setup, mutual fund management and operation, and services for mutual fund business such as custody, pricing, and reporting. Different roles within the mutual fund business such as investor, investment manager, transfer agent, custodian, and settlement will also be introduced. Content of Courses & Hours Allocation: 1. Introduction 4 hours Basic concept of mutual fund and structure of fund management company; 2. Establishment and Distribution of Mutual Fund 4 hours How mutual fund is set up and distributed? The roles of investor, investment manager, investment advisor, and transfer agent; 3. Investment of Mutual Fund 4 hours Investment strategy and portfolio 4. Mutual Fund Return of Investment Analysis 4 hours Calculation of mutual fund net asset value and investment income 5.Mutual Fund Custody and Pricing 4 hours The concept of mutual fund custody and pricing 6. Mutual Fund Compliance and Risk Management 4 hours Risk analysis, mitigation, and mutual fund compliance 7. Fund Information Delivery and Reporting 4 hours Information delivery and reporting system and mechanisms 8. Fund Performance Analysis and Evaluation 4 hours Mutual fund performance analysis and evaluation Teaching Plan: 1. Multi-media teaching mode 2. Courseware and exercises can be downloaded from ftp server。 Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) ‗How Mutual Fund Works‘, Albert J. Fredman & Russ Wiler, Prentice Hall Press, 1997 ‗Mutual Fund‘, Hu Meng, Yu Lu, and Xiang Xinhua, China Financial Press, 2002

Middleware Technology

Course Name Middleware Technology Course Code Weekly Hours 2.0-1.0 Credits 2.5 Offered Semester Winter semester Middleware Technology Principle and Application, Yunyong Zhang etc, Tsinghua University Press, ISBN:7-302-09399-7, Publication Date:2004 Web Services: Concepts, Architectures and Applications, Gustavo Alonso etc, Springer Press, ISBN:3-540-44008-9, 2004-08(manifold) Textbooks Distributed Event-Based Systems, Gero Muhl etc, Springer Press, ISBN: 3-540-32651-0, Publication Date: 2006-09(manifold) Distributed Computing: Principles, Algorithms, and Systems, Ajay Kshemkalyani etc, Cambridge University Press, ISBN: 978-0-521-87634-6, Publication Date: 2008-04(manifold) Prerequisites Java, Data Structures, Database, Computer Network The middleware, database and the operating system are called the three carriages of the enterprise‘s foundation application software. This course introduce the basic concept and theory, technology, the realization of the kernel and the latest progress of the new technology, middleware. And it will make students grasp the knowledge of rapid application development Course Description based on the middleware technology by introducing the self-developed Jtang Middleware Series. The content of this course mainly includes the Web server and AJAX technology, EJB object middleware technology, Event Middleware technology, JNDI technology, security middleware, workflow management technology, SOA and so on. Teaching Program

Course Code:

Course Name: Middleware Technology

Weekly Hours: 2.0-1.0 Credits: 2.5

Teaching Goal and Basic Requirements: The middleware, database and the operating system are called the three carriages of the enterprise‘s foundation application software. This course introduce the basic concept and theory, use method, the realization of the kernel and the latest progress of the new technology, middleware. And it will make students grasp the knowledge of rapid application development based on the middleware technology by introducing the self-developed Jtang Middleware Series. Content of Courses & Hours Allocation: Ch1: Introduction: Middleware Technology‘s background, content, advancing 2 hrs front and course arrangement Ch2.1:WebTechnology :Web Server kernel analysis and system development 2 hrs Ch2.2:Web Technology : JSP application development、Form、Report system 2 hrs application Ch2.3:Web Technology : AJAX technology introduction 2 hrs Ch3.1: Object Middleware: EJB‘s background, usage and kernel 2 hrs Ch3.2: Object Middleware: Spring+Hibernate+data source 2 hrs Ch4.1:Event Middleware: MQ‘s background, usage and kernel 2 hrs Ch4.2: Event Middleware: content-based release subscription system, matching 2 hrs routing algorithm Ch5.1: JNDI+JMX: Directory service usage and the kernel 2 hrs Ch5.2: JNDI+JMX: JMX‘s usage and kernel Ch6.1: Security +Eclipse: PMI、JACC、JAAS 2 hrs Ch6.2: Security +Eclipse: Eclipse‘s integrating Ch7:Workflow Management Technology: Background, Workflow Mode, 2 hrs Engine, Usage Ch8.1: SOA Technology : Background、SOAP、UDDI、WSDL、WSFL 2 hrs Ch8.2: SOA Technology : SOA‘s usage、ESB Technology 2 hrs Ch8.3: SOA Technology : Semantic Web 2 hrs Ch9: Other Middleware Technology: J2ME、Cluster、Memory、Component、 2 hrs SAAS、Business Ch10:Report of team work : Every team descript the team‘s task 2 hrs Teaching Plan: 1.Grouping: No more than 6 students one group. 2. Use multi-media classrooms. 3. Use FTP to upload and download the courseware and the course homework. Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Middleware Technology Principle and Application, Yunyong Zhang etc, Tsinghua University Press, ISBN:7-302-09399-7, Publication Date:2004 Web Services: Concepts, Architectures and Applications, Gustavo Alonso etc, Springer Press, ISBN:3-540-44008-9, 2004-08(manifold) Distributed Event-Based Systems, Gero Muhl etc, Springer Press, ISBN : 3-540-32651-0, Publication Date: 2006-09(manifold) Distributed Computing: Principles, Algorithms, and Systems, Ajay Kshemkalyani etc, Cambridge University Press, ISBN:978-0-521-87634-6, Publication Date: 2008-04(manifold)

Operating Systems: Analysis and Projects

Course Name Operating Systems: Analysis and Projects Course Code 21120360 Weekly Hours 6 Credits 2 Offered Semester Winter semester Textbooks Learning With Practice – Instruction of Linux Kernel Prerequisites C programming, Computer organization Through the learning and practice of this course, the students are required to be familiar with the Linux environment, to deeply understand the concepts, principles, methods, and techniques of the operating system. Furthermore, 4 experiments are required to carry out:

Course Description 1. Recompiling the Linux kernel;

2. Adding a new system call (integrated experiment);

3. State the page fault number of the system (integrated experiment);

4. Adding a new file system (integrated experiment).

Teaching Program

Course Code:21120360

Course Name: Operating Systems: Analysis and Projects

Weekly Hours: 6 Credits: 2

Teaching Goal and Basic Requirements: Through the learning and practice of this course, the students are required to be familiar with the Linux environment, to deeply understand the concepts, principles, methods, and techniques of the operating system. Furthermore, 4 experiments are required to carry out: 1. Recompiling the Linux kernel; 2. Adding a new system call (integrated experiment); 3. State the page fault number of the system (integrated experiment); Adding a new file system (integrated experiment). Content of Courses & Hours Allocation: 1. Instruction on the course (16 hours); 2. Experiments (32 hours); (a) Recompiling the Linux kernel; (b) Adding a new system call (integrated experiment); (c) State the page fault number of the system (integrated experiment); (d ) Adding a new file system (integrated experiment). Teaching Plan: (1) Linux environment and basis kernel structure(4 hours); (2) Shell programming skills(2 hours); (3) Linux initialization and process management(4 hours); (4) Linux memory management(2 hours); (5) Linux File System(2 hours) (6) Linux device driver and kernel module(2 hours). Recommended Textbooks and Other References: (books, editors, publishing company, publishing time) Learning With Practice – Instruction of Linux Kernel, Li Shanping, Zhejiang University Press, 2002.

Software Quality Assurance/Testing

Course Name Software Quality Assurance/Testing Course Code 21120550 Weekly Hours 4-2 Credits 2.5 Offered Semester Winter semester Software Engineering – A Practitioner‘s Approach (5th ED), Roger S. Textbooks Pressman, Tshinghua Press, 2001 Prerequisites Students after this course could understand the effectively strategies of testing, the methods and technologies of software testing; design test plan and test cases; do automatic testing; establish a testing group and manage Course Description the whole testing project; clearly and correctly report the software defectives; asses the software product correctly; distinguish relationship between the software testing and the quality assurance.

Teaching Program

Course Code: 21120550

Course Name: Software Quality Assurance/Testing

Weekly Hours: 4-2 Credits: 2.5

Teaching Goal and Basic Requirements: Students after this course could understand the effectively strategies of testing, the methods and technologies of software testing; design test plan and test cases; do automatic testing; establish a testing group and manage the whole testing project; clearly and correctly report the software defectives; asses the software product correctly; distinguish relationship between the software testing and the quality assurance. Content of Courses & Hours Allocation: 1. Introduction 4 hrs 2. Overview of software quality 4 hrs Basic concept of software quality, criteria or system of quality asses 3. software testing throughout the testing process 4 hrs The lifetime of software, procedures of testing, test planning Homework: make a test plan in practice examples. 4. Testing strategies 4 hrs The concept of testing strategies Homework: make testing strategies in practice examples. 5. Testing methods 8 hrs Test cases, white-box testing, black-box testing, and gray-box testing, and so on. Homework: Apply all the methods in practice. 6. Testing tools 4 hrs Unit testing, interface testing, performance testing, manage testing Homework: utilize the tools in practice 7. The strategies and methods of quality assurance 4 hrs The fundamental, strategies, and methods of quality assurance 8. Presentation of homework 2 hrs Each group should present their homework. Teaching Plan: 1. Students are partitioned into several groups, with one group at most 6 students. 2. Multimedia used in teaching. 3. Lectures and homework are uploaded or download via ftp. Recommended Textbooks and Other References: Software Engineering – A Practitioner‘s Approach (5th ED), Roger S. Pressman, Tshinghua Press, 2001. Software quality assurance, Daniel Galin, China Machine Press, ISBN:711116787, 2005. Software testing, R. Patton, China Machine Press, ISBN:7111185269, 2006.