Download Syllabus of Operating System A

Document related concepts

Database model wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Transcript
Zhejiang Sci-Tech University
计算机科学与技术专业课程教学大纲
Teaching Syllabi of
Computer Science and Technology Major
信息学院
School of Information
教
务
处
Division of Academic Affairs
June, 2013
Zhejiang Sci-Tech University
计算机科学与技术专业课程教学大纲
Teaching Syllabi of
Computer Science and Technology Major
Chief Editor:Weiqiang Xu
Editors:
(names are arranged in no particular order)
Yubo Jia, Xiaomin Bao, Jin Huang,
Mingfeng Jiang, Ting Shu
Proofreader:Jie Yang
Foreword
The teaching syllabus is the written document that sets the outline of the planning,
managing and evaluating of a course. It is also the authoritative guidance for choosing and
compiling textbooks. The Division of Academic Affairs supervises the general
revision/compiling of the teaching syllabi for the purposes of implementing the principles of
the “30 Opinions on Promoting Quality of Tertiary Education” (Jiaogao [2012] No.4) and of
meeting the demand of social economic development, the growth and prospect of the students,
globalization of higher education and the development of information technology. Therefore,
the teaching syllabi can be comployed to deep on further education reform and to better
achieve the objectives mentioned in the Edition 2012 of Undergraduate Programs of each
major to fosters specialized professionals of all fields.
This revision is major-based and this is the compilation of the course syllabi of each
major in ZSTU. Each volume contains the syllabi of the courses of general studies, basic
discipline-related courses, major-related courses, internship and practical training.
The revision and compilation is achieved by the joint effort of deans of each school and
department and the executives of teaching affairs. Participation of many teachers and support
from the leaders of ZSTU guarantee its successful completion. Their effort and support is
hereby acknowledged.
The teaching syllabus only defines the general requirements of the course. The teacher is
expected to experiment new teaching contents and approaches and to update the teaching
with frontier knowledge in order to make the course a high-quality one with its own feature.
Compilation of the teaching syllabi is only the first step. The further education reform is
to boost innovation of the courses system for each major. Opinions and suggestions
concerning this compilation will be greatly valued, since it is always necessary to promote
teaching practices and to achieve higher standard of education quality.
June, 2013
Content
Syllabus of Basic Course for Information Technology .............................................................. 1
Syllabus of Introduction to Electronic Information as a Discipline ........................................... 4
Syllabus of C Programming ....................................................................................................... 7
Syllabus of Circuits and Electronics ........................................................................................ 12
Syllabus of Discrete Mathematics B ........................................................................................ 17
Syllabus of Special Lectures on Disciplines ............................................................................ 21
Syllabus of Digital Electronic Technology A ........................................................................... 22
Syllabus of Object-Oriented Programming A .......................................................................... 26
Syllabus of Data Structure and Algorithm ............................................................................... 29
Syllabus of Assembly Language A........................................................................................... 38
Syllabus of Computer Network ................................................................................................ 42
Syllabus of Computer Architecture Principles ......................................................................... 46
Syllabus of Database Principles and Application A ................................................................. 50
Syllabus of Operating System A .............................................................................................. 58
Syllabus of Visual Programming Technology B ...................................................................... 64
Syllabus of C# Programming ................................................................................................... 67
Syllabus of Java Programming ................................................................................................. 71
Syllabus of Database System and Its Application Design ........................................................ 75
Syllabus of Analysis and Design of Algorithms....................................................................... 78
Syllabus of Basic Course for Information Security ................................................................. 83
Syllabus of Technology of Human-Computer Interaction ....................................................... 85
Syllabus of Software Engineering A ........................................................................................ 87
Syllabus of Principles of Compilation ..................................................................................... 91
Syllabus of Introduction to Service Outsourcing ..................................................................... 95
Syllabus of Trust and Reputation for Electron Service-oriented Environments ...................... 98
Syllabus of Software Testing and Quality Management ........................................................ 101
Syllabus of Computer English................................................................................................ 104
Syllabus of Project Management............................................................................................ 107
Syllabus of Software system design and architecture ............................................................ 111
Syllabus of Principles and Design of Embedded System ...................................................... 115
Syllabus of Web programming and database applications ..................................................... 119
Syllabus of Basic Experiments on Information Technology .................................................. 123
Syllabus of Curriculum Design for Digital Electronic Technology ....................................... 126
Syllabus of Curriculum Design for Data Structure and Algorithm ........................................ 131
Syllabus of Curriculum Design for Object-Oriented Programs ............................................. 135
Syllabus of Curriculum Design for Assembly Language ....................................................... 137
Syllabus of Curriculum Design for Computer Architecture Principles .................................. 140
Syllabus of the Subject Practice ............................................................................................. 143
Syllabus of Practice of Database System ............................................................................... 146
Syllabus of Computer English Training ................................................................................. 148
Syllabus of Field practice in embedded system ..................................................................... 150
Syllabus of Web Project Practice ........................................................................................... 155
Syllabus of Basic Course for Information Technology
Course Name/Title:信息技术基础
Course code:62950
Course Type:General Course,Compulsory Course
Total Teaching Hours: Classroom Hours: 16
Course Credit:1
Ⅰ Course Objective
As the first specialized basic course, the objective of Introduction to Information Technology is to
give the students major in computer a systematic and comprehensive introduction to the basics of
computer science and technology.
The primary goal of this course is to provide an introduction to the fundamental concepts found
throughout the field of computer system with taking a holistic view of a computer system as
comprising hardware, operating software, application software and user interface elements. As an
overview of the discipline, the course covers a breadth of topics including hardware issues such
number systems and computer architectures; and software issues such as operating systems,
programming languages, compliers, networks, and human-computer interaction. Students who
complete this course can gain fundamental skills of using and maintaining computer systems in an
Internet environment, and important knowledge that will help them effectively communicate with the
IT personnel they will meet in the workplace, as well as understand more about security issues and the
environment in which their software systems will reside.
And at the same time the international, innovative and application-oriented personnel of the students,
who can have international perspective, cross-cultural communication capabilities, is being cultivated.
Ⅱ Course Content
Unit 1: Introduction
Credit hours: 2
Content:

Course Overview

Concept of Computer, John Von Neuman Architecture

Evolution of Computer Systems

Characteristics and Classification of Computer

Computational Thinking
Unit 2: Information Representation
Credit hours: 2
Content:

Concept of Positional Number System

Decimal System, Binary System, Hexadecimal System, Octal System
1

4-bit Binary Coded Decimal Systems, 8-bit BCD Systems, 16-bit Unicode

Conversion Of Numbers
Unit 3: Computer System
Credit hours: 2
Content:

Components of Computer System

Computer Hardware(Configuration, Development)
Unit 4: Computer Software
Credit hours: 2
Content:

Types of Computer Software

System Management Programs, System Development Programs, Standard Application
Programs, Unique Application Programs

Problem Solving
Unit 5: Operating Systems
Credit hours: 2
Content:

History of Operating Systems

Functions of Operating Systems(Process Management, Memory Management, File
Management, Device Management, Security Management)

Types of Operating Systems

Popular Operating Systems
Unit 6: Database
Credit hours: 2
Content:

Concept of Database

Relational Database

Database Design
Unit 7: Computer Network
Credit hours: 2
Content:

Concept of Computer Network

Network Topologies

Network Protocols and Software

Applications of Network

Internet and World Wide Web
Unit 8: Algorithms
Credit hours: 2
2
Content:

Concept of Algorithms

Introduction to Programming Language
Ⅲ Practice Plan and Requirement
None
Ⅳ Autonomous Learning
In order to improve the students' self-learning ability, it is required that students write a course thesis
on the basis of consulting information by using the Internet or any other way. The instructor will suggest
several ideas for the thesis. Students are welcome to come up with their own ideas (subject to the
instructor’s approval).
Ⅴ Assessment
1 On the basis of the data referred to, a course thesis is required with the minimum of five references
given. And the thesis should be well organized and have the view of the students themselves.
2 The grading of the course includes three parts, namely ordinary achievement, course thesis and term
examination.
Ⅵ Textbooks and References
1 Textbook
E Balagurusamy. Fundamentals of Computers. Tsinghua University Press. June 2010
2 References
1)
Ross A. Malaga. Information Systems Technology. Prentice Hall, December 2006
2)
G.Michael Schneider, Judith L.Gersting.Introduction to Computer Science(Fifth Edition).
Tsinghua University Press. September 2010
Written by:Jin Rong, Na Zhang
Reviewed by: Lican Huang, Yubo Jia
Date:2013.4.11
3
Syllabus of Introduction to Electronic Information as a Discipline
Course Name/Title:电子信息类学科导论
Course code:60903
Course Type:Basic Course ,Compulsory Course
Total Teaching Hours:16 hours (Classroom Hours:16 hours Laboratory Hours or Tutorial
Hours:0 )
Course Credit:1
ⅠCourse Goals
The goal of this course is to introduce general knowledge of computer science to general students.
Topics cover the concepts of computer science, the role of algorithms , the history of computing , data
manipulation, operating systems, networking and the internet, the concept of an algorithm, programming
languages, software engineering, data abstraction, database systems, the scope of computer graphics,
artificial intelligence, theory of computation.
After completing the study of this course, students are required to have an overview of the basic
concepts of computer science.
ⅡCourse Contents
Unit 1:Introduction
Hours:2
1 the role of algorithms
2 the history of computing
3 the science of algorithms
Unit 2:data manipulation
Hours:2
1 computer architecture
2 machine language
3 program execution
Unit 3:operating systems
Hours:2
1. the history of operating systems
2 operating system architecture
3 coordinating the machine’s activities
4
Unit 4:networking and the internet
Hours:2
1 network fundamentals
2 the internet
3 the world wide web
Unit 5:algorithms
Hours:2
1 the concept of an algorithm
2 algorithm representation
3 algorithm discovery
Unit 6:programming languages
Hours:2
1 historical perspective
2 traditional programming concepts
3 procedural units
Unit 7:database systems
Hours:2
1 database fundamentals
2 the relational model
3 maintaining database integrity
Unit 8:artificial intelligence
Hours:2
1 intelligence and machines
2 perception
3 reasoning
ⅢCourse Hours and Teaching Methods
Course Hours::
5
Methods
discussi
hours
Therory
excises
note
sum
on
Contents
Introduction
2
2
data manipulation
2
2
operating systems
2
2
networking and the internet
2
2
algorithms
2
2
programming languages
2
2
database systems
2
2
artificial intelligenc
2
2
16
16
Total
ⅣLean by self
1. Students can learn through Internet.
ⅥTest modes
1. The exam score is consisted of Excises (30%) and Final Exam (70%).
2. The types of final exam may include the exam types such as “writing a report”, etc.
ⅦReference books
Textbook:
Computer Science: An Overview,(计算机科学导论 (英文版 ), BrookSheer
Reference Books:
:
1.董荣胜,等编著:
《计算机科学与技术方法论》
,人民邮电出版社,2005 版出版
2.David Reed[美]著:张玉芳/ 孙思 译:
《新编计算机科学导论》,清华大学出版社,2005 年出
版。
Written by:Lican Huang, Ping Zhou
Reviewed by:Wei Shen
Date:2013.4.11
6
Syllabus of C Programming
Course Name/Title:C Programming
Course code:02908
Course Type:Basic Course , Compulsory Course
Total Teaching Hours:(Classroom Hours: 32
Laboratory Hours:32 )
Course Credit:4.0
ⅠCourse Objective
Academic institutions have a mission to teach technologies that are widely used in the real world so
that students have the skills and knowledge that employers need. Writing computer programs to solve
problems is a fundamental skill all students must master.
C is the most commonly used programming language in industry. More than 90 percent of the
programs running on our desktops, from operating systems and e-mail clients to Web browsers and
word processors, are written in C or its relative, C++ which has extensions to C. Most games and
underlying robot control software are written in C or C++.
The Course focuses on systematic software design approach in C for applications in engineering and
science following the latest standard developed by the ANSI and ISO C Standard Committees called
C99, which resolved many deficiencies of C89 for applications in engineering and science.
ⅡCourse Content
Chapter 1 Getting Started
Credit hours: 2
Content:

The First C Program

Editing and Executing C Programs in ChIDE

Using Portable Commands to Handle Files in a Command Shell

Executing C Programs, Statements, and Expressions in Ch

Compiling, Linking, and Executing C Programs in a Command Shell

Editing, Compiling, Linking, and Executing C Programs in ChIDE
Chapter 2 Number Systems, Scalar Types, and Input/Output
Credit hours: 3
Content:

Integer Number Systems

Character Set

Comments

Declaration

*32-Bit and 64-Bit Programming Models
7

Integer Types

Boolean bool Type in C99

Character char Type

Real Floating-Point Types

*Complex Types in C99

The Pointer Type

*Typedefs

*Determining the Programming Data Model of a Computer

Initialization

Introduction to Formatted Input and Output
Chapter 3 Operators and Expressions
Credit hours: 3
Content:

Assignment Operator

Arithmetic Operators

Implicit Type Conversions

Precedence and Associativity of Operators

Relational Operators

Logical Operators

Bitwise Operators

Compound Assignment Operators

Increment and Decrement Operators

Cast Operators for Type Conversions

Sizeof Operator

Conditional Operator

Comma Operator
Chapter 4 Statements and Control Flow
Credit hours: 4
Content:

Flowcharts for Algorithm Development

Simple and Compound Statements

Null and Expression Statements

Selection Statements

Repetition Statements

Jump Statements
Chapter 5 Functions
Credit hours: 4
Content:
8

Function Definitions

Function Prototypes

Calling Functions: Call-by-Value versus Call-by-Reference

Standard C Header Files and Libraries

Mathematical Functions and Type Generic Functions in C99

Functions for Mathematical Formulas

Plotting Functions for Graphical Display

Recursive Functions
Chapter 6 Processing Directives
Credit hours: 1
Content:

Macro Replacement

*Source File Inclusion

*Conditional Inclusion

*Pragma Directive
Chapter 7 Storage Classes and Program Structure
Credit hours: 1
Content:

Global and Local Variables

Storage Classes

External Variables and Functions
Chapter 8 Arrays
Credit hours: 4
Content:

Declaration of Arrays

How Arrays Are Stored in Memory

Initialization of Arrays

Processing Data in Arrays

Passing Arrays to Functions

Plotting Data in Arrays for Graphical Display
Chapter 9 Pointers
Credit hours: 4
Content:

Pointer Variables

Pointer Arithmetic

Calling Functions by Reference Using Pointers

Relation Between Pointers and Arrays

Using Pointers to Pass One-Dimensional Arrays to Functions
9

Pointers to Pointers

Arrays of Pointers
Chapter 10 Characters and Strings
Credit hours: 2
Content:

Character Code

Character Input and Output

Character-Handling Functions

Strings

String Input and Output

The Continuation Character

Converting Strings to Numerical Values

String Manipulation
Chapter 11 Structures, Enumerations, Unions, and Bit Fields
Credit hours: 2
Content:

Structure Definition

Declaration of Structure Type

Pointer to Structures

Accessing Structure Members

Structure Initialization

Size of Structures

Assigning and Comparing Structures

Arrays of Structures

Passing Structures as Function Arguments

Functions Returning Structures

Functions Returning a Pointer to Structures

Handling Members of Pointer Type

Nested Structures

*Enumerations
Chapter 12 File Processing
Credit hours: 2
Content:

Opening and Closing Files

Reading andWriting Sequential Files

Design of a GPA Library Using Data Files and Its Applications
10
ⅢPractice Plan and Requirement
Experimentation 1. Processing、Ch environment, vi
Experimentation 2. Scalar types、operators and expressions(1)
Experimentation 3. Scalar types、operators and expressions(2)
Experimentation 4. Simple C program
Experimentation 5. Logical structured programming
Experimentation 6. Iteration statements
Experimentation 7. arrays and sorting
Experimentation 8. two dimension arrays and strings
Experimentation 9. Functions
Experimentation 10. Functions
Experimentation 11. Preprocessing Directives
Experimentation 12. Pointers(1,2,3)
Experimentation 13. Pointers(4,5,6)
Experimentation 14. Structure and union
Experimentation 15. File operating
ⅣAutonomous Learning
Two-and Three-Dimensional Plotting in Ch
ⅤAssessment
Written and computer homework 30%
Midterm examination 20%
Final examination 50%
ⅥTextbooks and References
C for Engineers and Scientists: An Interpretive Approach
By Harry H. Cheng, published by McGraw-Hill, 2009
ISBN: 978-0-07-337605-9
Programming in ANSI C
Fourth Edition
By E Balagurusamy
Written by:Desheng Huang
Reviewed by: Yu Zhang
Date:2013.4.11
11
Syllabus of Circuits and Electronics
Course title:电路与电子学
Course code:61997
Course type: Basic Course,Compulsory Course
Total Teaching Hours:80(Classroom Hours: 64 Laboratory Hours 16)
Course Credit:5
ⅠCourse Objective
Circuits and Electronics serves as a first course in an undergraduate electronic engineering (EE), or
electrical engineering and computer science (EECS) curriculum. The course introduces the fundamentals
of the lumped circuit abstraction. Topics covered include: resistive elements and networks; independent
and dependent sources; switches and MOS transistors; digital abstraction; amplifiers; energy storage
elements; dynamics of first- and second-order networks; design in the time and frequency domains; and
analog and digital circuits and applications. Design and lab exercises are also significant components of the
course.
After successfully studying this course, students will be able to:

Understand the basic electrical engineering principles and abstractions on which the design of
electronic systems is based. These include lumped circuit models, digital circuits, and operational
amplifiers.

Use these engineering abstractions to analyze and design simple electronic circuits.

Formulate and solve differential equations describing the time behavior of circuits containing
energy storage elements.

Use intuition to describe the approximate time and frequency behavior of circuits containing
energy storage elements.

Understand the concepts of employing simple models to represent non-linear and active
elements-such as the MOSFET-in circuits.

Build circuits and take measurements of circuit variables using tools such as oscilloscopes,
multimeters, and signal generators. Compare the measurements with the behavior predicted by mathematic
models and explain the discrepancies.

Understand the relationship between the mathematical representation of circuit behavior and
corresponding real-life effects.

Appreciate the practical significance of the systems developed in the course.
ⅡCourse Content
16 out of 80 class hours are for lab exercises. In the rest of class hours, the following tentative topics will
be covered in lecture form.
12
LEC #
TOPICS
Class hours
1
Introduction and lumped abstraction
2
2
Basic circuit analysis method
2
3
Superposition, Thévenin and Norton
2
4
The digital abstraction
2
5
Inside the digital gate
2
6
Nonlinear analysis
2
7
Incremental analysis
2
8
Dependent sources and amplifiers
2
9
MOSFET amplifier large signal analysis
2
10
Amplifiers – small signal model
3
11
Small signal circuits
3
12
Capacitors and first-order systems
3
13
Digital circuit speed
2
14
State and memory
2
15
Second-order systems
3
16
Sinusoidal steady state
3
17
The impedance model
3
18
Filters
3
19
The operational amplifier abstraction
3
20
Operational amplifier circuits
3
21
Op-amps positive feedback
3
22
Energy and power
3
23
Energy, CMOS
3
24
Power conversion circuits and diodes
3
25
Violating the abstraction barrier
3
ⅢPractice Plan and Requirement
Students are required to complete all the following experiments.
LABS #
TOPICS
Class hours
1
Familiar with measuring instruments
2
2
Verification of KCL & KVL
2
3
Verification of Superposition and Thévenin
2
4
MOSFET amplifier and first order circuits
2
5
Second-order networks
2
6
Impedance mesurement
2
7
Active RC filters
2
8
Miscellaneous OP-AMP circuits
2
13
ⅣAutonomous Learning
This section includes the course’s reading assignment which should be completed by autonomous learning.
The materials are all from the required textbook. Readings with an asterisk (*) provide key intuitive
analyses.
SES #
TOPICS
READINGS
1
Lumped abstraction relationship to physics, KVL, KCL
Chapter 1
2
KVL, KCL resistive network analysis
Chapter 2.1-2.5, 2.4*
3
KVL, KCL example, nodal analysis
Chapter 3.1-3.3
4
Nodal analysis, examples
Chapter 3.1-3.3
5
Linearity, superposition, Thevenin's equivalences
Chapter 3.5-3.6
6
Thevenin and Norton equivalences
Chapter 3.5-3.6
7
Digital abstraction
Chapter 5.1-5.4
8
Boolean logic, comb. gates review, examples
Chapter 5.1-5.4, 5.6-5.7
9
Digital logic, gates, examples
Chapter 5.1-5.4, 5.6-5.7
10
MOS switch, S and SR model, MOS gate design
Chapter 6.1-6.8
11
MOS switch resistor (SR) model (cont.)
Chapter 6.1-6.8
12
Nonlinear resistors, networks
Chapter 4.1-4.3
13
Static power in dig ckts, nonlinear resistors, examples
Chapter 4.1-4.3
14
Nonlinear resistors, small signal analysis
Chapter 4.5
15
Nonlinear resistors, small signal examples
Chapter 4.5
16
Dependent sources, analog amplification
Chapters 2.6, 7.1-7.2
17
18
Dependent sources, amplifiers, operating point analysis,
biasing
MOS SCS model and MOS amplifier
Chapters 2.6, 7.1-7.2
Chapter 7.3-7.5
14
19
Review MOS SCS model, MOS ckts, MOS amplifier
Chapter 7.3-7.5
20
MOS amplifier review
Chapter 7.5
21
Amplifier large signal analysis
Chapter 7.6-7.7
22
Review
3-term
device
representations,
amplifier
input-output curves
Chapter 7.6-7.7
23
Amplifier small signal analysis
Chapter 8.1-8.2
24
Amplifier small signal analysis examples
Chapter 8.1-8.2
25
Amplifier small signal circuit models
Chapter 8.2.1-8.2.4
26
27
28
Amplifier small signal circuit models and analysis
examples
Capacitors, first order circuits, examples
Inductors and their physics, first order step response,
examples
Chapter 8.2.1-8.2.4
Chapters 9.1, 10.1
Chapter 10.2
29
Intuitive analysis of first order systems, examples
Chapter 10.3*, 10.4
30
Ramp, step, impulse, superposition
Chapters 9.4.2-9.4.3, 10.6
31
Digital memory, state
Chapter 10.5.3, 10.6.3-10.6.4*
32
Impulse response examples, digital memory arrays
Chapter 10.5.3, 10.6.3-10.6.4*
33
Transients in second order systems
Chapter 12.1
34
35
36
37
First order examples
Chapter 12.1
Second order examples
Second order examples
Chapter 12.2, 12.5, 12.7*
Second order systems with damping
Second order systems with damping, intuitive analysis
Damped second order system examples
Preview of frequency response
15
Chapter 12.2, 12.5, 12.7*
Chapter 12.2, 12.5, 12.7*
38
Sinusoidal steady state analysis, frequency response
Chapter 13.1-13.2
39
Impedance methods
Chapter 13.3-13.4.2, 13.4.2*
40
Filters, Q factor, radio tuner
Chapter 13.5, 14.5
41
Time and frequency domain responses, Q
Chapter 13.6
42
43
44
45
46
Op-amp abstraction, concept of feedback, noninverting
amplifier
Op-amp abstraction, examples and review, inverting
amplifier
Multiple
inputs
and
superposition,
integrators,
differentiators
First and second order op-amp filters
Chapter 15.1-15.4
Chapter 15.1-15.4
Chapter 15.5-15.6.2
Chapter 15.6.3-15.6.5
Op-amp abstraction, feedback, stability, oscillators,
clocking
Chapter 15.7-15.8
47
Special op-amp circuits
Chapter 15.5-15.8
48
Energy and power
Chapter 11.1-11.3
49
Examples, CMOS, energy and power
Chapter 11.5
ⅤAssessment
Activity
Percentage
Homework
10%
Labs
20%
Quiz (optional)+Exam
70%
ⅥTextbooks and References
The course uses the required textbook Foundations of Analog and Digital Electronic Circuits. Agarwal,
Anant, and Jeffrey H. Lang. San Mateo, CA: Morgan Kaufmann Publishers, Elsevier, July 2005. ISBN:
9781558607354.
A good reference book may be: Charles K. Alexander and Matthew N. O. Sadiku, Fundamentals of
Electric Circuits, 4th edition, McGraw Hill, 2009 (AS). 3rd edition
Written by: Qingjiang Shi, Junxiu Yang
Reviewed by:Xiaomin Bao
Date: April 8th 2013
16
Syllabus of Discrete Mathematics B
Course name in Chinese:离散数学 B
Course code:62911
Course type:basic course,subject course
Total Teaching hours:forty eight hours(include forty eight hours for teaching)
Course Credit:3
ⅠCourse Teaching Aims
Discrete mathematics is a core curriculum of basic theory in computer science, with a study of discrete
structure and relationships as the main target. The course is designed to cultivate students’ abstract
thinking and strict logic reasoning ability and construct a good foundation of mathematics for computer
application, information management and scientific research. Simultaneously, the course aims to help
students to understand the inner relationship between abstract thinking and practice in computer science,
and then gain the ability to apply these ideas to solve practical problems.
(1)Knowledge Aims
After completing the study of this course, students are required to have an overview of the basic concepts
of Discrete Mathematics, and know what and how about Discrete Mathematics, especially in the following:
1. Making a correct judgment of many problems through learned concepts, familiar with reasoning
process.
2.Knowing about theorem content and results.
3.Learning about proof technique.
(2)Ability Aim
The purpose of this lecture is to develop the ability of independent thinking through introductions of
various methods. And after completing the study of this course, students are required to master logical
thinking, reasoning and formal logical thinking mode.
(3)Quality Aims
The quality aims of the lecture is to master the basic theory and method of information and computation
science; grasp preliminary knowledge of scientific research and solve practical problems through learned
knowledge and proficient skills in computer.
ⅡTeaching Contents and Learning Objectives
Theory teaching contents and learning objectives
The first unit of knowledge: mathematical logic
Reference hours:eighteen hours
Learning Objectives:
1. Learn about the concepts of propositional logic and can use them
2. Learn about the reasoning theory of propositional logic
3. Learn about the concepts of first-order logic and can use them
4. Learn about the reasoning theory of first-order logic
17
Learning Contents:
Proposition, connective, propositional formula, equivalent calculation, conjunction normal form,
disjunction normal form, a formula of first-order logic, interpretation, quantifier, prenex normal form
Key point:
1. Proposition and propositional formula
2. equivalent calculation
3. disjunctive normal form and conjunctive normal form
4.
a formula of first-order logic and prenex normal form
Difficult point:
disjunctive normal form and conjunctive normal form
The second unit of knowledge: set theory
Reference hours:fifteen hours
Learning Objectives:
1. Learn about the concepts of set, representation of set and the relationship between sets
2. Learn about relevant operation of set
3. Learn about the definition of relations and representation,the basic operations of relations
4. Grasp the definition of relations and discriminant methods
5. Grasp Equivalence relations and partial order relations
6. Learn about the definition of functions, discriminant methods of function Properties and the basic
operations
Learning Contents:
Properties of relations, Equivalence relations, Operations on relations, closure and Warshall’s
Algorithm, Partially ordered sets, Extremal elements of partially ordered sets, Functions for computer
science, Growth of functions, Permutation Functions
Key point:
1. Equivalence relations and Operations on relations
2. closure and Warshall’s Algorithm
3. Partially ordered sets and Extremal elements of partially ordered sets
4. Permutation Functions
Difficult point:
Equivalence relations, closure, Partially ordered sets
The third unit of knowledge: Graphs
Reference hours:nine hours
Learning Objectives:
1. Learn about the concepts of graphs and representation of graphs
2. Learn about Connectivity and classification of graphs
3. Knowing about several special graphs
4. Knowing about the concepts of trees and its application
18
Learning Contents:
Graphs, Euler paths and circuits, Hamiltonian paths and circuits; matching problems, coloring graphs,
Trees, Labeled Trees, Tree searching, Undirected Trees, Minimal spanning trees
Key point:
1. Euler paths and circuits
2. Hamiltonian paths and circuits
3. matching problems
4. Tree searching
5. Undirected Trees
6. Minimal spanning trees
Difficult point:
Euler paths and circuits, Hamiltonian paths and circuits
Ⅲcourse assignment and teaching methods
Class table of theoretical teaching content
teching
method
class hours
Theoretical
Exercise
instruction
Class
seminar
comment
Sub-total
teaching content
(knowledge section)
The first unit of knowledge:
mathematical logic
Twenty
eighteen
two
one
fifteen
one
one
The second unit of knowledge:
set theory
–one hours
seventeen
hours
The third unit of knowledge:
Ten hours
nine
Graphs
Total
Forty two
one
three
three
Forty eight
hours
(3)Instructions
1. Teaching Methods
In this course, teacher should lecture in English at around 100 percentages. It is better to use case
teaching. Teacher should adopt “question –result” mode to give students strong impression.
2. Teaching Means
Teacher should use multimedia classroom to teach this course. The amount of time should be left to
19
discussion for all students. The discussion class can be grouped. One group may quest; the other may
answer the question.
ⅣIndependent study
Students can install Linux operating system and learn about shell commands
ⅤCourse assessment method
1. The exam score is consisted of Experiment (20%), Excises (10%) and Final Exam (70%).
2. The types of final exam may include the exam types such as ‘selection’,’completion’,’short answer
question’ and ‘integrated question’.
ⅥRecommended Textbook and reference books
Textbook:
Kenneth H.Rosen 著,Discrete Mathematics and Its Applications,China Machine Press,Published in 2012.
reference books:
1.Qu wan-ling etc: 《Discrete Mathematics》,Tsinghua University Press, Published in 2005.
2.Seymour Lipschutz , Marc Lipson:
《Discrete Mathematics》
(American Muze Inc)
,published in
2002.
Written by:Qiuhong Tian
Reviewed by: Desheng Huang, Qi Sun
Date:2013.4.11
20
Syllabus of Special Lectures on Disciplines
Course Name/Title:学科专题讲座 Course code:62999
Course Type: Specialized Course,Optional Course
Total Teaching Hours:
(Classroom Hours: 16 Laboratory Hours or Tutorial Hours 0)
Course Credit:1
ⅠCourse Objective
To enable students to understand the developmental frontier of his discipline, to broaden the horizons
of the students 'academic, to enable students to extract important knowledge from the discipline
academic reports, to develop students' organization abilities of scientific and technological materials
and to deepen students’ thinking way for scientific issues.
ⅡCourse Content
Chapter 1. General Introduction
Chapter 2. Internet of Things and e-commerce
Chapter 3. The technologies of network and information security
Chapter 4. Cloud computing, high performance computing, green computing and social computing
Chapter 5. Embedded systems and pervasive computing
Chapter 6. Mobile Internet and intelligent terminal
Chapter 7. Data warehouse, data mining and data fusion technology
Chapter 8. Cognitive science and mental calculation
Chapter 9(optional). Introduction to industrial design and CAx
ⅢPractice Plan and Requirement
There are no specific practice plans and requirements.
ⅣAutonomous Learning
The report content will be issued by teacher for the next class, out of the class the students collect
related materials, and after the class students are required to summit academic report for the related
disciplines.
ⅤAssessment
According to the degree of class’s attendance, involvement and the quality of the academic report, the
student will be given a mark of. A, B, C and D level.
ⅥTextbooks and References
There are no textbooks, and according to certain specific topic the academic paper will be provided
for reference.
Written by:Liu Yanfei, Wenshu Li
Reviewed by: Huang Lican, Lili He
Date:Apr 12, 2013
21
Syllabus of Digital Electronic Technology A
Course Name/Title:数字电子技术 A Course code:61918
Course Type: Basic Course, Compulsory Course
Total Teaching Hours:64
(Classroom Hours: 48, Laboratory Hours or Tutorial Hours 16)
Course Credit:4
ⅠCourse Objective
Digital Circuits is one of the core courses designed for sophomores in all curricular relating to electrical
engineering and computer science. The overall goals are to analyze and design digital logic circuits which
constitute the foundation for preparing a student to take follow-on courses, develop skills required to solve
engineering problems.
ⅡCourse Content
(1) Basic Concepts of digital Logic (Lecture: 4 hours)

Understand the difference between analog and digital quantities.

Understand number systems, operations, and codes.

Understand logic variables, logic constants, logic circuits, and logic functions.
(2) Basic Concepts of Logic Gates (lecture: 2 hours)

Understand the basic logic operations implemented by logic gates: NOT gates (inverters), AND
gates, OR Gates, NAND gates, NOR gates, etc.
(3) Operations and Simplification of Logic Functions (Lecture: 8 hours; Problem-solving skills: 1 hour)

Understand the concepts of Boolean algebra, truth tables, minterms, and maxterms.

Express logic functions in basic forms

Apply commonly used formulas, i.e., the basic properties, theorems, and rules governing logic
operation.

Apply Boolean algebra to simplify logic expressions.

Find minimal sum-of-products expressions using Karnaugh maps.
(4) Combinational Logic Circuits (Lecture: 7 hours; Problem-solving skills: 2 hours)

Analyze combinational logic circuits using the general approach.

Design combinational logic circuits using the general approach.

Understand combinational logic hazards and the elimination of glitches.
22

Understand the functions and applications of commonly used MSI circuits such as full adders,
encoders, decoders, magnitude comparators, data selectors (multiplexers), and parity
generators/checkers.

Express combinational logic functions using Hardware Description Languages (HDLs) such as
Advanced Boolean Expression Language (ABEL).
(5) Programmable Logic Devices (Lecture: 2 hours)

Understand the basic structure of programmable logic devices.

Implement a sum-of-products expression in a PAL, PLA, or GAL.
(6) IC Flip-Flops and Related Devices (Lecture: 3 hours; Problem-solving skills: 1 hour)

Understand the functions and structures of various types of flip-flops.

Understand the functions of Schmitt triggers, monostable multivibrators (one-shots), and astable
multivibrators oscillators).

Connect a 555 timer to operate as a Schmitt trigger, one-shot, or astable multivibrator.
(7) Sequential Logic Circuits (Lecture: 11 hours; Problem-solving skills: 1 hour)

Recognize the difference between combinational and sequential logic circuits

Analyze sequential logic circuits using the general approach.

Understand the functions and applications of counters

Understand the functions and applications of registers

Design synchronous sequential circuits using the general approach.

Design simple asynchronous counters.

Implement counters and shift registers using PLDs. (optional)
(8) Large-Scale Integrated Circuits (Lecture: 3 hours)

Understand the main operational and performance characteristics of TTL and CMOS devices.

Understand the basic organization of semiconductor memory.

Understand how RAMs and ROMs work.
(9) Analog-to-Digital and Digital-to-Analog Converters (Lecture: 3 hours)

Understand how A/D and D/A converters work.

Understand quantization error.

Calculate quantization error.

Describe commonly used D/A converters

Describe commonly used A/D converters
23
ⅢPractice Plan and Requirement
Hour
s
Students/
each group
Experimen
t
Attributes
Compulso
ry/Option
al
Project Item
Content
Environmen
t
Experiment
1.Digital
circuit
experiment
base
Basic
requirements,
Rules of Use,
common fault
Software
Laboratory
3
1
basic
Compulso
ry
Experiment
2
:
Integrated
logic gates
Parameter
Test,
Logic
function test
Software
Laboratory
3
1
basic
Compulso
ry
Experiment
3
:
combinatio
nal
logic
circuit
Circuit
Design , Data
selection and
its application
design,
Decoder and
its application
design
Software
Laboratory
3
1
Comprehe
nsive
Compulso
ry
Experiment
4
:
Sequential
logic
circuits
Trigger
function tests,
The counter
and
its
application
design
Software
Laboratory
3
1
Comprehe
nsive
Compulso
ry
Experiment
5 : Hybrid
circuits
555 timer, D /
A converter
and A / D
converter
Software
Laboratory
4
1
Comprehe
nsive
Compulso
ry
Experiment
6
:
Multisim
Simulation
applications
in
digital
circuits
Course design
Software
Laboratory
3
1
basic
Optional
Note : the total is 16 hours
24
IV Autonomous Learning
(1) Course Web site: The School’s Course Management System(developing).
(2) Requirements cited from University’s rules: Keep silence when the instructor is presenting his/her
teaching materials. Late submission of homework assignments is not accepted. Cheating is not allowed on
home works, projects, and exams.
(3) Featured requirements: None.
V Assessment:
Assessment is conducted mainly through home work, experiment, final exams.
Home work: 10%
Experiment: 20%
Exam: 70%
VI Textbooks and References
Textbook:
Thomas L. Floyd, Digital Fundamentals, Science Press & Person Education, 2002.
Reference:
John M. Yarbrough, Digital Logic Applications and Design, China Machine Press & Thomson Learning,
2002.
Written by:Xiaowei Gu
Reviewed by:
Xiaomin Bao, Jia Bao
Date:Apr. 10, 2013
25
Syllabus of Object-Oriented Programming A
Course Name/Title:面向对象程序设计 A
Course code:62906
Course Type: Basic,Compulsory Course
Total Teaching Hours:48 (Classroom Hours: 39
Laboratory Hours or Tutorial Hours:9)
Course Credit:3
ⅠCourse Objective
The goal of this course is to introduce Object Oriented Programming (OOP) to Computer Science students.
Topics cover the concept of the OOP, classes, objects, libraries, input and output streams, inherit, overload
and templates. In this course, the programming language is C++ .
After completing the study of this course, students are required to have an overview of the OOP
programming, and can use C++ to write codes based on OOP technical view.
ⅡCourse Content
Unit 1:Introduction
Reference period:3 class hours
Learning contents:
1) principles of object-oriented programming
2) beginning with c++
Unit 2:The basics
Reference period:6 class hours
Learning contents:
1) tokens, expressions and control structures
2) function in c++
Unit 3:classes and objects
Reference period:9 class hours
Learning contents:
1) classes and objects
2) constructors
3) class members
4) constructors and destructors
26
5) static class members
Unit 4:Overloading
Reference period:6 class hours
Learning contents:
1)
overloading
2)
operator overloading
3)
type conversions
Unit 5:inheritance
Reference period:6 class hours
Learning contents:
1)
derived classes
2)
virtual base classes
3)
abstract classes
4)
constructors in derived classes
Unit 6:polymorphism
Reference period:6 class hours
Learning contents:
1)
pointes
2)
virtual functions
3)
polymorphism
4)
pure virtual functions
Unit 7:i/o operations
Reference period:3 class hours
Learning contents:
1)
c++ streams
2)
managing input and output
3)
file stream operations
Unit 8:templates & exception handling
Reference period:3 class hours
Learning contents:
1) templates
2) exception handling
27
ⅢCourse Hours and Teaching Methods
Course Hours::
Methods
hours
discussio
Therory
excises
note
sum
n
Contents
Introduction
3
The basics
6
classes and objects
6
Overloading
6
inheritance
6
polymorphism
6
i/o operations
3
templates & exception handling
3
Total
39
3
18
3
21
3
9
9
48
ⅣAutonomous Learning
1.
Students can visit the following Web: http://bbs.csdn.net/ , to get various materials.
ⅤAssessment
1.
The exam score is consisted of Experiment (20%), Excises (10%) and Final Exam (70%).
2.
The types of final exam may include the exam types such as
“single choice
question”、”completion”、”short answer question”、and ”programming question”.
ⅥTextbooks and References
1.
Textbook:
E Balagurusamy, Object Oriented Programming With C++ Fourth Edition. 清华大学出版社. 2009.9.
2.
References:
1)(美)李普曼(Lippman,S.B.), (美)拉乔伊(Lajoie,J.), (美)默 Moo,B.E.), C++ Primer Fifth Edition, 电
子工业出版社,2013.5。
2)(美)Bruce Eckel, Thinking in C++ Second Edition Volume One: Introduction to Standard C++,机
械工业出版社, 2002-9-19
Revised by: Shenwei, Qiaoli Zhuang
Reviewed by: Desheng Huang
Date:April 9, 2013
28
Syllabus of Data Structure and Algorithm
Course Name/Title:数据结构与算法
Course code:62947
Course Type: Basic Course , Compulsory Course
Total Teaching Hours:64(Classroom Hours: 56
Laboratory Hours or Tutorial Hours: 8)
Course Credit:4
ⅠCourse Objective
When developing software it is important to know how to solve problems in a computationally efficient
way. Algorithms describe methods for solving problems under the constraints of the computers resources.
Often the goal is to compute a solution as fast as possible, using as few resources as possible. To solve a
problem efficiently it may be necessary to use data structures tailored for the particular problem(s) at hand.
A data structure is a specific way of organizing data that supports efficient performance of the relevant
operations on that data. For instance there are data structures for organizing large numbers of records
where records already present can be quickly found and/or deleted, and new records can be inserted and
found fast.
Acquire an in-depth understanding of a broad set of computer science techniques to solve algorithmic
problems. These techniques are fundamental building blocks that re-occur in many areas of computer
science. Become familiar with the design and analysis of divide and conquer algorithms. Learn how to
be precise and mathematically rigorous when designing and verifying algorithms. The goal of the course
is to give the student a basic understanding of fundamental algorithms and data structures so that the
student:

Is able to describe the basic data structures, algorithms and programming techniques, including
lists, stack, queues, search trees, hash tables, different sorting algorithms, search algorithms for graphs,
and dynamic programming.

Can apply the techniques from the course when solving programming/algorithm problems.
These techniques include methods for sorting and searching, basic graph algorithms, recursion,
dynamic programming, and time and space analysis of programs, both basic techniques and amortized
analysis.

Is able to select the best algorithm and/or data structure when solving a given programming
problem.

Is able to analyze time and space required for the execution of a program, as well as the
correctness of a program.

Is able to formulate a given programming task as an algorithmic problem, in order to select the
best method for solving it.
29

Is able to combine and modify algorithms and data structures, in order to design an efficient
program.
ⅡCourse Content
(1) INTRODUCTION (2Hr)
We discuss the aims and goals of this text and briefly review programming concepts and discrete
mathematics. We will

See that how a program performs for reasonably large input is just as important as its performance on
moderate amounts of input.

Review good programming style.

Summarize the basic mathematical background needed for the rest of the book.

Briefly review recursion
(2) ALGORITHM ANALYSIS (6Hr)
An algorithm is a clearly specified set of simple instructions to be followed to solve a problem. Once an
algorithm is given for a problem and decided (somehow) to be correct, an important step is to determine
how much in the way of resources, such as time or space, the algorithm will require. An algorithm that
solves a problem but requires a year is hardly of any use. Likewise, an algorithm that requires a gigabyte of
main memory is not (currently) useful. In this chapter, we shall discuss

How to estimate the time required for a program.

How to reduce the running time of a program from days or years to fractions of a second.

The results of careless use of recursion.

Very efficient algorithms to raise a number to a power and to compute the greatest common divisor of
two numbers.
(3) LISTS, STACKS, AND QUEUES (6Hr)
This chapter discusses three of the most simple and basic data structures. Virtually every significant
program will use at least one of these structures explicitly, and a stack is always implicitly used in your
program, whether or not you declare one. Among the highlights of this chapter, we will

Introduce the concept of Abstract Data Types (ADTs).

Show how to efficiently perform operations on lists.

Introduce the stack ADT and its use in implementing recursion.

Introduce the queue ADT and its use in operating systems and algorithm design.
(4) TREES (8Hr)
For large amounts of input, the linear access time of linked lists is prohibitive. In this chapter we look at a
simple data structure for which the running time of most operations is O(log n) on average. We also sketch
a conceptually simple modification to this data structure that guarantees the above time bound in the worst
case and discuss a second modification that essentially gives an O(log n) running time per operation for a
long sequence of instructions. The data structure that we are referring to is known as a binary search tree.
30
Trees in general are very useful abstractions in computer science, so we will discuss their use in other,
more general applications. In this chapter, we will

See how trees are used to implement the file system of several popular operating systems.

See how trees can be used to evaluate arithmetic expressions.

Show how to use trees to support searching operations in O(log n) average time, and how to refine
these ideas to obtain O(log n) worst-case bounds. We will also see how to implement these operations
when the data is stored on a disk.
(5) HASHING (6Hr)
The implementation of hash tables is frequently called hashing. Hashing is a technique used for performing
insertions, deletions and finds in constant average time. Tree operations that require any ordering
information among the elements are not supported efficiently. Thus, operations such as find_min, find_max,
and the printing of the entire table in sorted order in linear time are not supported. The central data
structure in this chapter is the hash table. We will

See several methods of implementing the hash table.

Compare these methods analytically.

Show numerous applications of hashing.

Compare hash tables with binary search trees.
(6) PRIORITY QUEUES (HEAPS) (6Hr)
The operating system scheduler must decide which of several processes to run. Generally a process is only
allowed to run for a fixed period of time. One algorithm uses a queue. Jobs are initially placed at the end of
the queue. The scheduler will repeatedly take the first job on the queue, run it until either it finishes or its
time limit is up, and place it at the end of the queue if it does not finish. This strategy is generally not
appropriate, because very short jobs will seem to take a long time because of the wait involved to run.
Generally, it is important that short jobs finish as fast as possible, so these jobs should have preference over
jobs that have already been running. Furthermore, some jobs that are not short are still very important and
should also have preference. This particular application seems to require a special kind of queue, known as
a priority queue. In this chapter, we will discuss

Efficient implementation of the priority queue ADT.

Uses of priority queues.

Advanced implementations of priority queues.
(7) SORTING (8Hr)
We discuss the problem of sorting an array of elements. To simplify matters, we will assume in our
examples that the array contains only integers, although, obviously, more complicated structures are
possible. For most of this chapter, we will also assume that the entire sort can be done in main memory, so
that the number of elements is relatively small (less than a million). Sorts that cannot be performed in main
memory and must be done on disk or tape are also quite important. This type of sorting, known as external
sorting, will be discussed at the end of the chapter. Our investigation of internal sorting will show that
31

There are several easy algorithms to sort in O (n2), such as insertion sort.

There is an algorithm, Shellsort, that is very simple to code, runs in o(n2), and is efficient in practice.

There are slightly more complicated O (n log n) sorting algorithms.

Any general-purpose sorting algorithm requires (n log n) comparisons.
(8) THE DISJOINT SET ADT (4Hr)
It is an optional chapter. We describe an efficient data structure to solve the equivalence problem. The data
structure is simple to implement. Each routine requires only a few lines of code, and a simple array can be
used. The implementation is also extremely fast, requiring constant average time per operation. This data
structure is also very interesting from a theoretical point of view, because its analysis is extremely difficult;
the functional form of the worst case is unlike any we have yet seen. For the disjoint set ADT, we will

Show how it can be implemented with minimal coding effort.

Greatly increase its speed, using just two simple observations.

Analyze the running time of a fast implementation.

See a simple application.
(9) GRAPH ALGORITHMS (8Hr)
We discuss several common problems in graph theory. Not only are these algorithms useful in practice,
they are interesting because in many real-life applications they are too slow unless careful attention is paid
to the choice of data structures. We will

Show several real-life problems, which can be converted to problems on graphs.

Give algorithms to solve several common graph problems.

Show how the proper choice of data structures can drastically reduce the running time of these
algorithms.

See an important technique, known as depth-first search, and show how it can be used to solve
several seemingly nontrivial problems in linear time.
(10) ALGORITHM DESIGN TECHNIQUES (4Hr)
It is an optional chapter. We switch our attention from the implementation of algorithms to the design of
algorithms. Most of the algorithms that we have seen so far are straightforward and simple. Chapter 9
contains some algorithms that are much more subtle, and some require an argument (in some cases lengthy)
to show that they are indeed correct. In this chapter, we will focus on five of the common types of
algorithms used to solve problems. For many problems, it is quite likely that at least one of these methods
will work. Specifically, for each type of algorithm we will

See the general approach.

Look at several examples (the exercises at the end of the chapter provide many more examples).

Discuss, in general terms, the time and space complexity, where appropriate.
32
Ⅲ、Practice Plan and Requirement
Lab Hours
8 hours
Lab Venue
In the software lab of building 10#
Students are required to work out their projects outside of class, and lab hours are
Lab Approach
mainly used for discussions on common problems met by students in finishing the
projects.
Additional
Tutoring
Practices / Labs
N/A
#include <time.h>
clock_t start, stop; /* clock_t is a built-in type for processor time (ticks)
*/
double duration; /* records the run time (seconds) of a function */
int main ( )
{……
/* clock() returns the amount of processor time (ticks) that has elapsed
since the program began running */
start = clock(); /* records the ticks at the beginning of the function call
*/
function(); /* run your function here */
stop = clock(); /* records the ticks at the end of the function call */
duration = ((double)(stop - start))/CLK_TCK;
/* CLK_TCK is a built-in constant = ticks per second */
Students are required to work out 4 programming projects.
……
1;
(1) Projectreturn
#1 List
We }can make the experiment by selecting one of two projects.
1.1 complexity analysis
Given a list of ordered N integers, numbered from 0 to N−1, checking to see
that N is not in this list provides a worst case for many search algorithms.
Consider two algorithms: one is called “sequential search” which scans
through the list from left to right; and the other is “binary search” which is
given on page 30 of your textbook. Your tasks are:
(1) Implement an iterative version and a recursive version of sequential
search;
(2) Analyze the worst case complexities of the above two versions of
sequential search and that of binary search;
33
(3) Measure and compare the worst case performances of the above three
functions for N = 100, 500, 1000, 2000, 4000, 6000, 8000, 10000.
To measure the performance of a function, we may use C’s standard library
time.h as the following:
1.2 Desk Calculator
This project requires you to write a program that imitates a simple desk
calculator. Your calculator must be able to accept an infix expression which
b
at least includes (, ), +, -, *, /, %, and ^ (exponentiation operator, a^b = a ).
If the expression is legal, output its value, else output an error message.
(2) Project #2 Queue
The beginning of a winter break near Spring Festival is always the
beginning of a peak period of transportation. If you have ever tried to get a
train ticket at that time, you must have witnessed the endless queues in front
of every ticket box window. If a guy has seen his friend in a queue, then it is
very much likely that this lucky guy might go straight to his friend and ask for
a favor. This is called "jumping the queue". It is unfair to the rest of the people
in the line, but, it is life. Your task is to write a program that simulates such a
queue with people jumping in every now and then, assume that, if one in the
queue has several friends asking for favors, he would arrange their requests in
a queue of his own.
(3) Project #3 Sort
This project requires you to implement an optimized version of quicksort,
and compare the performances of the following combinations:
(1) Cutoff values from 0 to 20;
st
(2) Take pivot to be the 1 element, median of three, and median of five.
The tests must be done on the following three kinds of inputs:
(1) sorted input;
(2) reverse-ordered input;
(3) random input.
The size of input can be taken from 1000 to 10000. The run times must be
plotted with respect to the sizes to illustrate the difference.
(4) Project #4 Graph
We can make the experiment by selecting one of two projects.
34
4.1 electric wiring
Bill is designing electric wiring for his new house. First of all, he has fixed
the positions of several electrical outlets on the walls. To neatly connect any
pair of outlets, he would make sure that the wire is always imbedded in the
walls or the floor, and is parallel to at least one side of the wall. Naturally he
wants to minimize the total length of wire he must buy to have all the outlets
connected.
Figure 1 a possible setting for electric wiring in a room
4.2 James Bond 007
This time let us consider the situation in the movie "Live and Let Die" in
which James Bond, the world's most famous spy, was captured by a group of
drug dealers. He was sent to a small piece of land at the center of a lake filled
with crocodiles. There he performed the most daring action to escape -- he
jumped onto the head of the nearest crocodile! Before the animal realized
what was happening, James jumped again onto the next big head. Finally he
reached the bank before the last crocodile could bite him (actually the stunt
man was caught by the big mouth and barely escaped with his extra thick
boot).
Assume that the lake is a 100×100 square one. Assume that the center of the
lake is at (0, 0) and the northeast corner at (50, 50). The central island is a
disk centered at (0, 0) with the diameter of 15. A number of crocodiles are in
the lake at various positions. Given the coordinates of each crocodile and the
distance that James could jump, you must tell him a shortest path to reach one
of the banks. The length of a path is the number of jumps that James has to
make.
Operating System: Microsoft Windows
Platforms
Skill
Development
Programming Language and Compiler: C/VC
None
35
ⅣAutonomous Learning
Lectures and exercises with assignments. The assignments are a very important part of the course. Each
week an assignment has to be solved. After the exercise class you have one week to solve the assignment
and hand it in at the beginning of the next exercise class (or send it by mail/fax). Late hand-ins is not
accepted. The assignments will be checked. A number of assignments involve programming in C. Although
the programming language is not a crucial part of this course it is strongly recommended that you
implement and run all programming exercises. The recommended way to do this is to use the server of the
university. The details on The outlook to teaching and studying will be explained as follows:

Learning by doing ;

International view ;

Innovating and Exploring;

knowledge integration ;
 Human-centric values ;
ⅤAssessment
Students will complete written homework assignments, programming projects, a midterm and a final.
Each will be assigned a point value. Homework and program averages will be computed as total points
earned divided by total points possible. These grading components will be weighted as follows. Letter
grades for the course will be subject to my evaluation of your overall class performance. Please keep your
own record of your grades so that you will know your standing in the course and can double-check my
records. All grades will be available on web of our School. The specific contents are showed as follows:
Grading
Class Participation
10%
Weekly Written Assignments
20%
Midterm Examination
0%
Final Examination
40%
Programming Assignments
30%
Total
100%
ⅥTextbooks and References
6.1 Textbook

Mark Allen Weiss, Data Structures and Algorithm Analysis in C, Addison-Wesley,2010
6.2 References

维斯(美国)(冯舜玺译),数据结构与算法分析:C 语言描述(原书第 2 版). 北京:机械工业出
版社, 2004

Clifford A.Shaffer.A Practical Introduction to Data Structures and Algorithm Analysis(影印版),
第 2 版.北京:电子工业出版社,2002
36

Horowitz E,Sahni S.Fundamentals of Data Structures.Pitmen Publishing Limited,1976

Thomas H.Cormen.算法导论[英文版],第 2 版.北京:高等教育出版社,2002

Robert Sedgewick.算法 V(C 实现)
:图算法(第三版·影印版)
.北京:中国电力出版社,2003

Donald E. Knuth.计算机程序设计艺术:英文版,第 1 卷.北京:机械工业出版社,2008

李文书, 王松, 贾宇波, 安立新, 董建民, 王根岭、马国兵等编著. 数据结构与算法应用实践教程
[M]. 北京:北京大学出版社. 2012

李文书, 贾宇波, 桂江生等编著. 数据结构重点难点问题剖析[M].
浙江:浙江大学出版社.
2010
Written by:Wenshu LI, Qi Sun
Reviewed by: Wei Sheng
Date:2013/04/07
37
Syllabus of Assembly Language A
Course Name/Title:汇编语言 A
Course code:62909
Course Type:Specialized Course,Compulsory Course
Total Teaching Hours:48 (Classroom Hours: 39, Laboratory Hours: 9)
Course Credit:3
ⅠCourse Objective
This is a course in assembly language programming for IBM PCs and compatibles. This course
introduces assembly language including basic instructions, number systems, information move, integer
arithmetic, subroutine linkage, memory allocation, bit manipulation, floating point arithmetic, macro
definition and conditional assembly, the program status word, interrupt and I/O structure. This supplements
the student's knowledge of high-level programming in C and Java.
After successfully completing this course, the student should be able to: explain the 80x86 architecture,
including registers and segment: offset addressing; describe different ways data are represented in a
computer and work with binary and hexadecimal numbers; describe the functions of an assembler;
implement program designs in 80x86 assembly language, including: writing, documenting, testing and
debugging a program in PC assembly language; manipulating strings; coding basic algorithms such as
searching and sorting in assembly language; calling and passing parameters to subroutines; utilizing DOS
functions; and interfacing with a high level language; explain how the underlying hardware affects software
design and performance; appreciate the factors that contribute to program efficiency.
ⅡCourse Content
Knowledge Unit 1: Basic Theories
Reference Teaching Hour: 3
Teaching Content:
1. Basic Concepts:
Application of assembly language, basic concepts of virtual machine, machine language, boolean
operations, and data representation.
2. IA-32 Processor Architecture
General concepts of IA-32 processor family and its host computer system, basic microcomputer
design, instruction execution cycle, IA-32 processor architecture, IA-32 memory management,
components of a microcomputer, and the input-output system.
Knowledge Unit 2: Programming Tools of Assembly Language
Reference Teaching Hour: 15
Teaching Content:
38
1. Basic Fundamentals
Introduction to assembly language, linking and debugging, and defining constants and variables.
2. Data Transfers, Addressing, and Arithmetic
Simple data transfer and arithmetic instructions, data-related operators and directives, expressions,
JMP and LOOP instructions, and indirect addressing.
3. Integer Arithmetic
Shift and rotate instructions with useful application, multiplication and division, extended
addition and subtraction, and ASCII and packed decimal arithmetic.
4. String and Arrays
String primitives, manipulating arrays of characters and integers, two-dimensional arrays, sorting
and searching.
Knowledge Unit 3: Programming Methodology of Assembly Language
Reference Teaching Hour: 15
Teaching Content:
1. Conditional Processing
Boolean and comparison instructions, conditional jumps and loops, high-level logic structure, and
finite state machines.
2. Procedures
Linking to an external library, stack operation, defining and using procedures.
3. Structures and Macros
Structures, macros, conditional assembly directives, and defining repeat blocks.
Knowledge Unit 4: Advanced Programming Topics
Reference Teaching Hour: 6
Teaching Content:
1. MS-DOS Programming
Calling MS-DOS interrupts for console and file input-output, runtime program structure, and
interrupt handling.
2. MS-Windows Programming
Win32 console programming, writing a graphical windows application, and dynamic memory
allocation
3. Disk Fundamentals
Disk storage systems, sectors, clusters, directories, file allocation tables, and drive and directory
manipulation.
4. BIOS-Level Programming
Keyboard input, video text, graphics, and mouse programming.
ⅢPractice Plan and Requirement
1. Theoretical Teaching Plan
39
Teaching
Methods
Teaching Hours
Lecture
Teaching
Content(Knowledge Uint)
Unit 1: Basic Theories
Exercise
Discussion
Class
Class
Total
3
3
of
15
15
Unit 3: Programming Methodology
15
15
6
6
39
39
Unit
2:
Programming
Tools
Assembly Language
of Assembly Language
Unit 4: Advanced Programming Topics
Total
2. Experimental Teaching Plan
Number
Experiment
Experiment
Name
Content
Laboratory
Hours
of People
Experiment
of Each
Property
Requirement
Group
Experiment
Verifying
the
1: Debugging
Functions
of
Programs
Instructions
Software
3
1
Fundamental
3
1
Programming
Laboratory
of
School
of
Informatics
Experiment
Designing
2: Branches
Programs
and
Conditional Jumps
of
and Loops
of
Loops
Programming
Software
Using
Laboratory
School
Compulsory
Informatics
Experiment
Designing
3: Procedures
Programs
Programming
Procedures
Software
Using
3
1
Programming
Laboratory
of
School
of
Informatics
ⅣAutonomous Learning
Students are required to master the basic methods of programming during teaching hours, and
corresponding 80 extracurricular hours are necessary to digest and grasp the knowledge of assembly
40
language at an inside and outside class hours ratio of 1:2.
ⅤAssessment
Assessment Method: Closed-book Examination
Grades will be assigned based on the following weights: the final exam score as 60%, homework as
15%, experiments as 15%, and usual performance as 10%.
ⅥTextbooks and References
Textbooks:
Assembly Language for x86 Processors, Sixth Edition (English reprint edition), by Kip R..Irvine,
Pearson Education Asia Limited and Tsinghua University Press, 2011.
References:
IBM PC Assembly Language and Programming, Fifth Edition (English reprint edition), by Peter
Abel, Pearson Education Asia Limited and Tsinghua University Press, 2006.
Written by:Feng Fu, Yubo Jia
Reviewed by: Wenshu Li
Date:2003.4.11
41
Syllabus of Computer Network
Course Name/Title:计算机网络
Course code:62917
Course Type: Specialized Course,Compulsory Course
Total Teaching Hours: 48
9
(Classroom Hours: 39 Laboratory Hours or Tutorial Hours
)
Course Credit:3
ⅠCourse Objective
This is an undergraduate level course on computer networking. The goal is to teach the fundamental
concepts and principles of networking, focusing particularly on how they apply to the Internet. We will
cover the technologies supporting the Internet, from Ethernet and WiFi through the routing protocols that
govern the flow of traffic, and the web technologies that are generating most of it. A major concern is
understanding the protocols used on the Internet: how they work, their shortcomings, what the issues are,
and what improvements are on the horizon.
ⅡCourse Content
The following table describes the material to be covered in the lectures.
Topic
Unit 1
Introduction. Overview and motivation. Resource sharing; time-division
Introduction
multiplexing, statistical muxing. Protocols and standards.
6 Teaching Hours
Layering, OSI reference model, encapsulation. End-to-end argument.
Protocol design issues.
Unit 2
the theoretical basis for data communication, such as Fourier analysis, the
Physical Layer
maximum data rate of a channel, guided transmission media, wireless
6 Teaching Hours
transmission. Digital modulation and multiplexing.
Unit 3
Data Link layer design issues.
Links Layer
Error detection and correction, CRC, Internet Checksum
6 Teaching Hours
MAC protocols, CSMA/CD, Ethernet, Addressing
Bridges, Spanning Tree, Flooding/Multicasting
Unit 4
The channel allocation problem.
The Media Access
Multiple access protocols
Control Sublayer
Ethernet
42
3 Teaching Hours
Unit 5
ARP, IP. The best effort service model. IP header structure.
TheNetwork Layer
IP delivery review, options and encapsulation. ICMP.
6 Teaching Hours
Routing protocols: distance vector vs link-state routing
The Network layer in the Internet.
Unit 6
Transport
Transport introduction. Port numbers, service models, UDP. Intro to
and
reliability
Reliable Delivery
Intro to TCP. Flow control vs. congestion control. Congestion collapse.
6 Teaching Hours
Window-based and rate-based congestion control.
Congestion control model, packet scheduling and buffer management,
Unit 7
DNS, the domain name system,
Congestion and TCP
Electronic mail
6 Teaching Hours
The world wide web
Streaming audio and video
ⅢPractice Plan and Requirement
Experiment 1: LAN set up and be familiar with common TCP/IP commands
Reference period:3 class hours
Learning targets:
1) Understand the common TCP/IP commands, their meaning and functions.
2) Learn the skills to make network cable.
3) Learn to construct a LAN.
Learning contents:
1) Learn to make and test two different standard network twisted cable using proper tools and
materials.
2) Using the result cables, try to set up and configure a small Local Area Network through a hub or
switch.
3) be familiar with common TCP/IP commands.
Experiment 2:Observation network using packet catching software
Reference period:3 class hours
Learning targets:
1) Learn to capture and interactively browse the traffic running on a computer network.
2) Understand the packet format and their analysis method.
Learning contents:
Learn to install and use packet analysis software to interception of Ethernet packets, and observer
43
Ethernet packet frame structure and data reported in the head. Try to capture the ARP,ICMP protocol
packets in LAN environment and analyze the captured series of packets.
Experiment 3: program using TCP sockets: date and time server
Reference period:3 class hours
Learning targets:
TO implement date and time display from local host to server using TCP
Algorithm: client
1.start the program
2. To create a socket in client to server.
3. the client connection accept to the server and replay to read the system date and time.
5. Stop the program.
Algorithm: server
1.start the program
2. To create a socket in server to client.
3. To display the current date and time to client
5. Stop the program.
ⅣAutonomous Learning
1. Students can visit the following Web: http://www.pearsonhighered.com/tanenbaum/,download
various materials.
2. Students can install Packet Capture Software such like WireShark to learn to capture and
interactively browse the traffic running on a computer network and practice them in their own PCs.
ⅤAssessment
The final grade for the course will be based on the following weights:
•20% Homework and performance in the class
•20% Experiments
•60% Final Exam
Final Exam will cover material from lecture, sections and the readings. The purpose of these different
instruments is to have a positive learning experience, critical thinking about computer networking issues,
and some sound grasp of fundamentals.
ⅥTextbooks and References
Text
Andrew S.Tanenbaum. Computer Networks (Fifth Edition), China Machine Press.2012
References
44
J. F. Kurose, K. W. Ross, Computer Networking, A Top-Down Approach Featuring the Internet,
Addison-Wesley.
Dimitri Bertsekas and Robert Gallager, Data Networks, 2nd edition or later
W. Stallings, Data and Computer Communications, Prentice Hall, Sixth Edition, 2000, or later.
Resources:
1.http://www.net130.com/
2.http://www.edu.cn
3. http://www.ipv6.net.edu.cn/
4. http://www.nic.edu.cn/
5. http://www.ietf.org/rfc.html/
Written by:XiaJinsong
Reviewed by: HuangLiCan, Zhiyu Zhou
Date:2013.04.11
45
Syllabus of Computer Architecture Principles
Course Name/Title:计算机组成原理
Course code:62921
Course Type:Basic Course,Compulsory Course
Total Teaching Hours: 64 hours
Hours
(Classroom Hours: 56 hours
Laboratory Hours or Tutorial
8 hours )
Course Credit:4
ⅠCourse Objective
This course is designed to introduce computer science students to the basics of computer organization and
architecture. Topics include an overview of computer evolution and performance, bus, memory, I/O,
computer arithmetic, instruction set, RISC and parallel processing, microprogrammed control unit. This
course is a major core course for computer science students.
The successful student will exhibit competence in a wide variety of topics pertaining to computer
organization and architecture, including: Understanding all basic performance characteristics of computer
systems (including processor, memory, interconnection parts etc.) Recognize the relationship between
various components and their interconnection Understand the organization and structure of modern-day
computers Become more aware of the recent developments in computer technology
ⅡCourse Content
1. Introduction (4 teaching hours)
1.1 Organization and Architecture
1.2 Structure and Function
1.3 A Brief History of Computers
1.4 Designing for Performance
1.5 The Evolution of the Intel x86 Architecture
1.6 Performance Assessment
2. A Top-LevelView of Computer Function and Interconnection (4 teaching hours)
2.1 Computer Coruponents
2.2 Computer Function
2.3 Interconnection Structures
2.4 Bus Interconnection
2.5 PCI
46
3. Computer Arithmetic (10 teaching hours)
3.1 The Arithmetic and Logic Unit (ALU)
3.2 Integer Representation
3.3 Integer Arithmetic
3.4 Floating-Point Representation
3.5 Floating-Point Arithmetic
4. Cache Memory and Internal Memory Technology (12 teaching hours)
4.1 Computer Memory System Overview
4.2 Cache Memory Principles
4.3 Elements of Cache Design
4.4 Pentium 4 Cache Organization
4.5 Semiconductor Main Memory
4.6 Error Correction
4.7 Advanced DRAM Organization
4.8 Memory Management
5. Instruction Sets (6 teaching hours)
5.1 Machine Instruction Characteristics
5.2 Types of Operands
5.3 Addressing
5.4 Instruction Formats
5.5 Assembly Language
5.5 Reduced Instruction Set Architecture
6. Processor Structure and Function (8 teaching hours)
6.1 Micro-operations
6.2 Register Organization
6.3 The Instruction Cycle
6.4 Instruction Pipelining
6.5 The x86 Processor Family
7. Control Unit Operation (12 teaching hours)
7.1 Processor Organization
7.2 Control of the Processor
7.3 Hardwired Implementation
7.4 Microprogrammed Control
7.5 Microinstruction Sequencing
47
7.6 Microinstruction Execution
ⅢPractice Plan and Requirement
Experiment
project name
Content
Needed
facilities or
experimental
environment
Laboratory
Hours
Number
of Team
members
Experiment
nature
(basic/
comprehensive/
design/ research
innovation)
Experiment
1:ALU
Familiar with the
TEC-2
experimental
device,the function
and the specific
usage of AM2901
calculator,
the
series and parallel
methods using 4
AM2901 and 1
AM2902
Hardware
laboratory,
TEC-2
experiment
box
4
1
basic
Experiment
2 : Main
Memory
Main
memory
capacity expansion,
the
composition
and control of main
memory
Hardware
laboratory,
TEC-2
experiment
box
2
1
comprehensive
Experiment
3 : Control
Unit
Operation
MCU principle and
implementation,
microprogram
design technology
and
dynamic
microprogramming,
the
relationship
between instruction
and
microinstruction,
the role of control
store
Hardware
laboratory,
TEC-2
experiment
box
2
Requirement
(compulsory
/optional)
compulsory
1
design
ⅣAutonomous Learning
1. According to the textbook recommendation, students can access the related materials from website,
read these materials by self-studying to consolidate knowledge learned in class.
2. Students can independently learn interactive simulations software, complete the relevant operation
and analyze the results.
ⅤAssessment
The end of term exam counts for 70% of the course grade, while the experiment, assignments counts
and the rates of attendance for 30% of the course grade.
48
ⅥTextbooks and References
Textbook:
William Stallings, Computer Organization and Architecture Designing for Performance (Eighth
Edition), Pearson Education, 2010
References:
1. Carl Hamacher, Computer Organization(Fifth Edition), McGraw-Hill, 2002
2. Arnold S.Berger, Hardware and Computer Organization, Elsevier, 2005
Written by:Junsong Li, Jianlong Xu
Reviewed by: Desheng
Huang
Date:2013/4/11
49
Syllabus of Database Principles and Application A
Course Name/Title:数据库原理与应用 A
Course code:62940
Course Type:Basic,Compulsory Course
Total Teaching Hours:48 (Classroom Hours: 39
Laboratory Hours or Tutorial Hours:9)
Course Credit:3
ⅠCourse Objective
The goal of this course is to introduce relational database systems to Computer Science students. Topics
that will be covered include: the relational Model, Relational Operations, relational query languages; SQL
language; Object-Relational SQL; Embedded SQL; Database design; Integrity, Views, Security, and
Indexing.
After completing the study of this course, students are required to have an overview of the basic concepts
of database theory including the major features of databases and database management systems, data
models, different categories of database languages, the different categories of people who interact with
databases, three level architecture, data independence, the basic structure of the relational model, integrity
constraints in relational model, master the use of the basic relational algebra operations, use SQL skillfully,
learn how to use E-R diagram to represent conceptual data model and translate the E-R model to logical
model, learn how to normalize the form to improve the quality of the database, learn how to maintain and
protect the database and so on.
1) Knowledge objects
Through this course study, students are supposed to understand the concepts of Database systems,
the relational database models, SQL language, E-R design, security, integrity, and so on. After the
course study, the students must grasp the fundamental knowledge about database in order to study
database programming in further course.
2) Ability objects
After this course study, the students supposed have the abilities to use language of SQL to retrieve
the information from Databases. They can write the correct SQL statements for practical cases. They
can use E-R methods to design tables. They can insert, update and delete databases. They can create
tables with integrities. They can know how to create and use views.
3) Overall quality objects
After this course study, the students should feel good taste for English version of text books. They
50
should have an insight of thinking information as organized tables in RDBMS.
ⅡCourse Content
Unit 1:Introduction
Reference period:2 class hours
Learning target:
1) Learn about the concepts of database system.
2) Learn about the history of database systems.
3) Having an impression on relational database example.
4) Know about the overview of the contents of the chapters.
Learning contents:
3) Fundamental Database Concepts
Key points: what are database management systems (DBMS)? History of database systems
4) Database Users
Key points: concepts of End users (casual users, naïve users); application programmers; Database
Administrators
5) Overview of Relational and Object Relational DBMS
Key points: brief about the relational model, basic SQL query language, the object-relational model,
programs to access a database, database design, integrity, view and security
Difficult points:
1) History of database systems
2) Definitions of database management systems
Open questions:
1) Explain history of database systems.
2) Illustrate the simple example of relational databases.
3) Who are most likely naïve users of database systems?
Who are .most likely casual users of
database systems?
Unit 2:Relational Model
Reference period:7 class hours
Learning targets:
1) Understand relational models of database.
2) Learn about table consisting column names which have types and domains, keys, super keys,
candidate keys, null values.
3) Learn about relational algebra on relational database.
Learning contents:
3) CAP Database
51
Key points: The meaning and contents of the illustrated CAP systems. CAP’s tables and their
definitions
4) Naming the parts of a Database
Key points: Domains and Data types, Tables and Relations
5) Relational Rules
Key points: First normal form rule, access rows by content only rule, the unique row rule, Entity
Integrity rule
6) Keys, super keys, and null values
Key points: definition of Table Key, Super key, Primary Key; Theorem—every table has at least one
key; meaning of null values
7) Relational Algebra
Key points: Union, Intersection, Difference and Product operations; Project, Select, Join, Division
operations; the interdependence of Operations; Outer join, Theta Join
Difficult points:
1) Concepts of key, relational rules
2) Relational algebra
Main points:Relational algebra
Open questions:
1) Why the relational model introduces Union, Intersection, Difference, Product, Project, Select, Join,
Division operations?
2) Discuss the Join and Division operations can be substituted by the combinations of other
operations.
Unit 3:Basic SQL Query Language
Reference period:12 class hours
Learning targets:
1) Learn about basic form of the database language as SQL, and its history.
2) Lean about SQL statement syntax.
3) Understand how to use SQL statements to query information from relational databases.
Learning contents:
6) SQL history
Key points: SQL capabilities, SQL history and dialects.
7) Select statement
Key points: standard typographical conventions for SQL statement syntax; simple select statement
8) Sub queries
Key points: The IN predicate, The Quantified Comparison Predicate, The EXISTS Predicate
9) Advanced SQL Syntax
Key points: INTERSECT, UNION, EXCEPT operators; JOIN forms
10) Set Functions in SQL
52
Key points: set functions such as COUNT, SUM, AVG, MAX, and MIN
11) Groups of Rows in SQL
Key points: Group by, having search_condition
12) Create , Insert, Update, and Delete Statements
Key points: Create table, insert rows, update rows and delete rows statements
Main points:select statement, sub queries
Difficult points:group by, having search_condition, sub queries
Open questions:
1) Create Student table, insert data into, update data on and delete rows from student table
2) Create various queries in SQL to answer the requests in Student table
Unit 4:Object-Relational SQL
Reference period:3 class hours
Learning targets:
1)
Learn about the object-relational model for database management systems (ORDBMS).
2)
Understand the difference between ORDBMS and RDBMS.
3)
Learn about Procedure SQL.
Learning contents:
4)
ORSQL Capabilities and Object-Relational History
Key points: Collection types, methods and UDFs.
5)
Objects and Tables
Key points: Object types in ORACLE, Definitions of the REF object reference, INFORMIX Row
types for Objects, Type inheritance.
6)
Collection Types
Key points: Collection Types in ORACLE, SQL Syntax for Collections in ORACLE, Collection
Types in INFORMAX.
7)
Procedural SQL, User-Defined Functions (UDFs), and Methods
Key points: PL/SQL, Using PL/SQL to implement Methods in ORACLE, INFORMAX User-Defined
Functions, SPL, Using SPL to implement UDFs in INFORMAX.
Main points:ORACLE Object, PL/SQL
Difficult points:PL/SQL
Open questions:
1)
Why ORACLE use object-relational model other than just object model?
2)
What are advantages for ORACLE methods?
Unit 5:Programs to Access a Database
Reference period:3 class hours
Learning targets:
1) Learn about Embedded SQL in C.
53
2) Understand Programming for transactions.
3) Learn about dynamic SQL.
Learning contents:
5)
Embedded SQL in C
Key points: declare section for host variables, SQL Connect and Disconnect, Cursor, scope and flow
of control
6)
2. Programming for Transactions
Key points: The concept of a Transaction, Transaction example.
7)
3. Dynamic SQL
Key points: Prepare, Execute, and Using for SQL statements, Scrollable Cursors.
Main points:Embedded SQL in C, Dynamic SQL
Difficult points:Cursor
Open questions:
1)
Analysis the example codes in the text book.
Unit 6:Database Design
Reference period:6 class hours
Learning targets:
1)
Learn about E-R model.
2)
Ability to know how to design database.
Learning contents:
5)
E-R Concepts
Key points: Entities, Attributes, and E-R Diagrams; Relationships among Entities
6)
2. Details of E-R Modeling
Key points: 1-1, N-1, N-N Relationship; Transformation rules.
7)
3. Case study.
Key points: Cardinality of attributes, Weak Entity; Case study of simple airline reservation database.
Main points:E-R model
Difficult points:cardinality of relationship, transformation rules
Open questions:
1)
Discuss a case ---student information management database; Using E-R model to design tables
in student database.
Unit 7:Integrity, View and Security
Reference period:3 class hours
Learning targets:
1) Learn about integrity constraints.
2) Understand View and its usage.
3) Know security of database management.
54
Learning contents:
4)
Integrity Constraints
Key points: Integrity constraints in Create table statement; primary keys, foreign keys and referential
integrity.
5)
2. Views
Key points: create and drop views; the value of view; the usage of views.
6)
3. Security
Key points: grant statement in SQL.
Main points:create views, integrity constraints.
Difficult points:Integrity constraints
Open questions:
1)
What is purpose to create view from tables?
2)
How to limit data scope? Explain data types, domains, and integrity constraints.
Unit 8:Indexing
Reference period:3 class hours
Learning targets:
1)Learn about indexing to enhance the performance.
Learning contents:
3) Concept of Indexing
Key points: database index. Create index statements
4) Disk storage of database
Key points: ORACLE create table space statement syntax; slow disk access.
5) The B-Tree Index
Key points: B-Tree structures.
6) Clustered and non-clustered Indexes
Key points: definitions of clustered and non-clustered indexes, and their difference.
Main points:Create index statement, B-Tree index
Difficult points:B-Tree structure
Open questions:
1) How to enhance the performance by creating an index on the table?
ⅢPractice Plan and Requirement
Unit 1:DBMS manipulation, creating database and tables
Reference period:3 class hours
Learning targets:
55
1)
Understand the E-R model in describing the object.
2)
Learn the skills to create database and tables in SQL language.
3)
Learn about the database directory structure.
Learning contents:
1)
Design an E-R model for the case of “student information management system”.
2)
Setup database with create, insert, update operation based on the given case of “student
information management system”.
Unit 2:query operation of DBMS
Reference period:3 class hours
Learning targets:
1)
Practice the query operation with SQL language.
2)
Understand the meaning of query with SQL language.
Learning contents:
1)
Query information with SQL language in the given table of “student”.
Unit 3:DBMS View, integrity and database design, hours
Reference period:3 class hours
Learning targets:
1) Learn about integrity constraints.
2) Understand View and its usage.
3) Know security of database management.
Learning contents:
1)
Create view, and add integrity constraints, and design a simple database.
ⅣAutonomous Learning
1.
Students can visit the following Web: http://www.cs.umb.edu/~poneil/dbppp/,download various
materials.
2.
Students can install SQL server or Mysql RDBMS in their own PC. They can learn examples in
text book by practicing them in their Pcs.
ⅤAssessment
1.
The exam score is consisted of Experiment (20%), Excises (10%) and Final Exam (70%).
2.
The types of final exam may include the exam types such as
“multiple choice
question”、”completion”、”short answer question”、and ”comprehensive question”.
56
ⅥTextbooks and References
1.
Textbook:
Patrick O’Neil and Elizabeth O’Neil, Principles, Programming, and Performance. Higher Education Press
and Morgan Kaufmann Publishers. 2001.
2.
References:
1)王珊、萨师煊,数据库系统概论(第四版)。高等教育出版社,2007 年。
2)A First Course in Database. Jeffrey D.Ullman, Jennifer Widom, China Machine Press. 2008.
3)Silberschatz, Korth and Sudarshan. Database System Concepts. China Machine Press and
McGraw-Hill. 1999.
Revised by: Li liu, Jianping Liu
Reviewed by: Wei Sheng, Lican Huang
Date:April 9, 2013
57
Syllabus of Operating System A
Course Name/Title: :操作系统 A
Course code:62903
Course Type:Specialized Course, Compulsory Course
Total Teaching Hours: 48
( Classroom Hours: 39
Laboratory Hours
9)
Course Credit:3
I Course Objective
The goal of this course is to introduce general knowledge of operating systems to Computer Science
students. Topics cover the concepts of operating systems, Operating System Structure, Process, CPU
Scheduling, Process Synchronization, Deadlocks, Memory Management, Virtual Memory, and File System
This course will teach students basic knowledge of operating system, basic theory and basic methods, and
enhance students’ practice skills.
After completing the study of this course, students are required to have an overview of the basic concepts
of operating system, and know what and how about operating system, especially in the following:
1. Understanding operating system history, its roles and features in the computer systems; familiar with
resource management and scheduling.
2.Knowing about memory management, especially paging and segmentation.
3.Learning about Unix、Windows NT, Linux operating systems, and their architectures.
II Course Content
Unit 1:Introduction
Hours:3
Object:
1. Learn about the concepts of operating system.
2. Learn about the history of operating systems.
3. Know about the overview of types of operating systems.
Contents:
1. Concepts of operating system
Key points: definitions of operating system, purpose of operating systems.
2. History of operating system
Key points: Batch systems, Multiprogrammed Systems, Time-Sharing Systems
3. Overview of types of operating systems
58
Key points: Mainframe Systems, Desktop Systems, Multiprocessor Systems, Distributed Systems,
Clustered Systems, Real-Time Systems, Handheld Systems.
Points:
1. History of operating systems.
2. Definitions of operating systems.
Discussion:
1. Why most of the operating systems are multi-programmed and time-sharing systems?
Unit 2:Operating System Structure
Hours:3
Object:
1. Understand operating system’s services, components and its structure.
Contents:
Key points: System Components,Operating System Services,System Calls,System Programs,
System Structure ,Virtual Machines,System Design and Implementation,System Generation.
Hard Points:
1. System Components.
2.System Calls
Points: System structure
Discussion:
1. What’s advantage of virtual machines?
2. Indicate which part of windows operating is corresponding to the components of operating system.
Unit 3:Process
Hours:3
Object:
4) Learn about process state and interprocess communications.
Contents:
1. Process State
Key points: process concept, Process State, Process Control Block
2. Process schedule
Key points: process scheduling, process scheduler, context switch.
3. Process operations
Key points: process creations, process termination.
4. Interprocess communications
59
Key points: direct message communication, indirect message message, Remote Procure call.
Hard Points:Process state
Points:Process state, Interprocess communications.
Discussion:
1. Analysis diagram of process state.
2. Explain Context switch step by step, and why those steps?
Unit 4:CPU Scheduling
Hours:6
Object:
1. Learn about scheduling algorithms and comparing them by scheduling criteria.
Contents:
1. Scheduling Criteria
Key points: Basic Concepts, CPU Scheduler, Dispatcher, Max CPU utilization, Max Throughput, Min
Turnaround time, Min Waiting time, Min Response time.
2. Scheduling Algorithms
Key points: First-Come, First-Served (FCFS) Scheduling, Shortest-Job-First (SJR) Scheduling,
Priority Scheduling, Round Robin (RR), Multilevel Queue Scheduling, Multilevel Feedback Queues.
Points:Scheduling Algorithms
Discussion:
1. What is the difference between Preemptive and Non-Preemptive scheduling?
Unit 5:Process Synchronization
Hours:6
Object:
1. Learn about background of synchronization, methods for solution to critical section problem.
Contents:
1. The concept of synchronization
Key points: background of synchronization, bounded buffer produce- consume problem,
Critical-Section Problem.
2. Solution to Critical-Section Problem
Key points: Dekker’s algorithm, Bakery Algorithm, Synchronization Hardware, Semaphores
Points:Critical-Section Problem, Semaphores.
Hard Points:Dekker’s algorithm, Bakery Algorithm.
Discussion:
1. Which conditions does a good solution to Critical-Section Problem require?
Unit 6:Deadlocks
Hours:6
Object:
60
1. Learn about the cause of deadlock and solution to deadlock.
Contents:
1. Deadlock concepts
Key points: Deadlock problems.
2. Deadlock Characterization
Key points: four conditions about deadlock.
3. Deadlock Prevention
Key points: breaking any of four conditions for deadlock.
4. Deadlock Avoidance
Key points: Safe State,Resource-Allocation Graph,Banker’s Algorithm.
5. Deadlock Detection
Key points: Detection-Algorithm,Recovery from Deadlock
Points:Deadlock Characterization,Deadlock Avoidance.
Hard Points:Banker’s Algorithm.
Discussion:
1. What are the differences between deadlock prevention, deadlock avoidance and deadlock
detection?
Unit 7:Memory Management
Hours:6
Object:
1. Learn about memory management with paging and segmentation
Contents:
1. Early memory management
Key points: Swapping, Contiguous Allocation.
2. Paging
Key points: logical page, frame, page table, hierarchical page tables.
3. Segmentation
Key points: segmentation table, segmentation architecture, segmentation hardware, Segmentation
with Paging
Points:Paging, Segmentation
Discussiob:
1. What is the difference between logical address and physical address?
Unit 8:Virtual Memory
Hours:3
Object:
2)Learn about how virtual memory works. Contents:
61
1. Demand Paging
Key points: concepts of virtual memory, page faults.
2. Page Replacement
Key points: page replacement steps, page replacement algorithms.
Points:page replacement algorithms.
Discussion:
2) Why Thrashing will happen sometimes?
Unit 9:File System
Hours:4
Object:
1. Learn about file system principles and implementation. Contents:
1. File-System Interface
Key points: File Concept, Access Methods, Directory Structure, File System Mounting, File Sharing,
Protection.
2. File System Implementation
Key points: File System Structure, File System Implementation, Directory Implementation, Allocation
Methods, Free-Space Management.
Points:Directory Structure, Directory Implementation, Allocation Methods.
Hard points:File System Implementation
Discussion:
1. Explain the advantages and disadvantages of Contiguous allocation, Linked allocation, indexed
allocation.
III Teaching methods and Practice Plan
1. Teaching methods
In this course, teacher should lecture in English at around 70 percentages. It is better to use case
teaching. Teacher should adopt “question –result” mode to give students strong impression.
2. Teaching Ways
Teacher should use multimedia classroom to teach this course. The amount of time should be left to
discussion for all students. The discussion class can be grouped. One group may quest; the other may
answer the question.
3. Experiments
This course should include Lab practice.
Experiment 1:process management
Linux shell commands, gcc. ,
fork(), process synchronizations.
Experiment 2 process communications
62
Pipe, process communications by memory sharing. Process communications by message.
Signals.
Experiment 3
memory management
Design a program to test number of page faults in various page replacement algorithms.
IV Autonomous Learning
1. Students can install Linux operating system and learn about shell commands.
V Assessment
1. The exam score is consisted of Experiment (20%), Excises (10%) and Final Exam (70%).
2. The types of final exam may include the exam types such as “choices”,” fill blankets ”,”simple
answer” and ”complicated test”.
VI references and textbook
Textbook:
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne :
《Operating System Concepts》 ,Higher
Education Press John Wiley & Sons, Inc
Reference Books:
1.Abraham Silberschatz, Peter Baer Galvin, Greg Gagne ,郑扣根 译:
《操作系统概念》(Sixth
Edition)
2.汤子瀛、哲风屏、汤小丹编著:
《计算机操作系统》(第二版)
,西安电子科技大学出版社,
2001 年出版。
Web Resource:
1.http://www.linux.org/
Written by:Lican Huang
Reviewed by: Wenshu Li, Yubo Jia
Date:2013.4.11
63
Syllabus of Visual Programming Technology B
Course Title:可视化编程技术 B
Course code:62923
Course Type:Basic Course, Optional Course
Total Teaching Hours:Classroom Hours:24
Laboratory Hours: 8
Course Credit:2
ⅠCourse Objective
Aims:

To make the students to understand the windows programming concepts including Microsoft
Foundation Classes.

To introduce the concepts of windows programming

To introduce GUI programming using Microsoft Foundation Classes

To enable the students to develop programs and simple applications using Visual C++
At course completion, students should have:

Experienced a fundamental level of success in using structured programming techniques.

Developed a familiarity with the Microsoft® Visual C++® programming environment.

Gained ability to intelligently discuss and develop using algorithms, data types, control structures,
functions, arrays, and strings.

Implemented numerous well-designed and efficient basic problem solutions in C++.
ⅡCourse Content
Unit 1: Windows Program
Credit hours: 3
Content:

Course Overview

Fundamentals of Windows Programming

Concept of Windows, Event, Handle, Windows Message
Unit 2: GDI & Windows Programming
Credit hours: 3
Content:

Concept of GDI & Device Context

Drawing Tools

GDI Drawing functions
Unit 3: Text Output & Setting
Credit hours: 2
Content:

Settings of device environment for the text

Functions of CreateFont & SetText
64

Method and Procedure of Windows Text Output
Unit 4: Windows Program’s Response to Mouse and keyboard
Credit hours: 3
Content:

Keyboard Message Handling

Mouse Message Handling
Unit 5: Application of Resource in Windows Programming
Credit hours: 3
Content:

Concept of Resource

Creations of Accelerator, Bitmaps, Dialog Boxes, Icons resources
Unit 6: Introduction to MFC
Credit hours: 2
Content:

Microsoft Foundation Class Library

MFC AppWizard
Unit 7: Application of Ordinary Controls in Visual Programming
Credit hours: 6
Content:

Types of Controls

Button Control, ScrollBar Control, Static Control, ListBox Control, Edit Control, Combo
Box Control
Unit 8: Resource Creation of Application in MFC
Credit hours: 2
Content:

Menu Class

ToolBar Class
ⅢPractice Plan and Requirement
No.
Project Title
1
Credit Hours
Creating the window, message loop and
Nature of Subject
2
Compulsory
2
Compulsory
4
Compulsory
window function by using the API functions
2
Programming with API functions that include
various resources
3
Programming with MFC library
Total
8
ⅣAutonomous Learning
In addition to the basic experiments completed in class, extra-curricular practice is required. In order
to consolidate knowledge acquired from the course, students can use the exercises in the course web site for
65
independent learning. It is convenient for the students to visit the website for course materials, homework
assignments and announcements.
ⅤAssessment
The grading of the course includes three parts, namely ordinary achievement (including class
participation, homework assignments) and final exam (The final exam is mandatory to receive a passing
grade and will not be subject to discarding.).
ⅥTextbooks and References
Textbooks
Jeff Prosise. Programming Windows with MFC(Second Edition). Peking University Press. December 2000
References:
Ivor Horton. Ivor Horton’s Beginning Visual C++ 2010. Wiley Publishing, Inc. 2010
Written by:Jin Rong, Junfu Ma
Reviewed by: Lican Huang, Minli Wang
Date:March 2013
66
Syllabus of C# Programming
Course Name/Title:C#程序设计
Course code:62980
Course Type:Basic Course ,Optional Course
Total Teaching Hours:48 (Classroom Hours : 32, Laboratory Hours : 16 )
Course Credit:3
ⅠCourse Objective
C# is one of the world’s fastest-growing object-oriented programming languages. The course will
introduce students to the fundamentals of object oriented programming and the implementation of object
oriented programs using C# programming language and the .NET Framework. Emphasis will be placed on
understanding not only the syntactical features of the language, but how to effectively use the design of the
language to develop robust software. The three-tier structure also will be introduced which is used
extensively in software development.
In this course, students will create C# programs based on the Microsoft .NET Framework, including
console applications, class libraries, Windows form-based applications and Web form-based applications,
using correct syntax and modern object-oriented programming techniques.
Upon the completion of this course students will be able to:

Understand the Microsoft .NET platform

Master basic syntax, data structures and control statements

Firm establish object-oriented programming concepts and apply them in C# programs, including
inheritance, encapsulation, polymorphism and generics

Create C# Windows Forms applications, and know how to apply design patterns in C# program

Create C# Web Forms applications, and understand three-tier structure
ⅡCourse Content
Unit 1: Introduction to C# and .NET framework (3 hours)
Objective: To know the state of popular programming languages; to understand Microsoft’s .NET
initiative; to understand the structure of simple C# program; to know the basics of Visual Studio IDE
Content: Course Introduction, Visual C# IDE, Creating Simple C# Programs, Create a Simple C#
Windows GUI Application
Key Points: Trend of programming language, .NET Framework, Common Language Runtime
Unit 2: C# Fundamentals (6 hours)
Objective: To know how to use the basic classes, control statements, array and collections
Content: 1)Value type, reference type, enumeration, structure; Arithmetic operators and statement;
String; Basic classes and structure; Control statements; 2)One-dimensional array and multidimensional
67
array; Class Array, ArrayList and List<T>
Key Points: Value type vs. reference type; Relationship between collections and interfaces
Unit 3: OOP in C#: Encapsulation, inheritance, polymorphism (12 hours)
Objective: To understand the basic concept of OOP in C#; to declare a class, implement it and use it;
to create a derived class that inherits attributes and behaviors from a base class; to use overridden methods
to effect polymorphism; to use delegates and events; to use exception handling.
Content:
1) classes and objects
concept of class and object; definition and instantiation of class; static members; properties;
overloaded constructors, methods and operators
2) delegates and events
3) inheritance and interfaces
inheritance; polymorphism; abstract classes; interfaces; interfaces for sorting
4) generics
generic classes, methods; how to apply generics
5) exception handling and debug
catching exception; garbage collection; user defined exception; debug
Key Points: constructors, polymorphism, overload, delegate, event, garbage collection
Unit 4: Windows forms (6 hours)
Objective: to create graphical user interfaces; to process events in response to user interactions with
GUI controls; to create and manipulate various controls
Content: 1)windows forms: types of windows forms; properties and methods of forms; control
properties and layout; event handling of forms; 2) graphical user interfaces: menus; dialogs; advanced
controls such as ListView, Treevies, ComboBox, etc.
Key Points: event handling in windows forms, control manipulation
Unit 5: ADO.NET and ASP.NET (9 hours)
Objective: To understand the relational database model of ADO.NET; to use database access objects;
to use DataGridView; to handle events from a Web Form’s controls; to create a data-driven web application
using ASP.NET and ADO.NET
Content: 1)ADO.NET: model of ADO.NET; data access objects; DataView; DataGridView;
2)ASP.NET: web application development using ASP.NET; basic and advanced Web Form’s controls;
data-driven web applications
Key Points: data binding using ADO.NET, three-tier structure, web app development
ⅢPractice Plan and Requirement
68
Project Name
Content
C#
Visual
Fundamentals
using Visual Studio; to
programming
create,
compile
and
simple
C#
execute
Environment
Duration
Number
Property
Software lab
3 hours
50
basic
Software lab
3 hours
50
basic
Software lab
3 hours
50
basic
Software lab
3 hours
50
comprehensive
Software lab
3 hours
50
comprehensive
programs that use basic
data
types,
arrays,
control flows
OOP in C#,
To create classes using
part 1
interfaces,
overload
operators and inheritance
OOP in C#,
To create classes using
part 2
generics, delegate, events
and exception handling
Windows
To create Windows forms
forms
using GUI controls
Web
To create Web app using
application
ADO.NET and ASP.NET
ⅣAutonomous Learning
Lectures and exercises with assignments. The assignments are a very important part of the course. Each
week an assignment has to be solved. After the exercise class you have one week to solve the assignment
and hand it in at the beginning of the next exercise class (or send it by mail/fax). Late hand-ins is not
accepted. The assignments will be checked. All assignments involve programming in C#. The
recommended way to do this is to use the server of the university.
ⅤAssessment
Attendance: 10%
Programs: (including any written homework) 30%
Final project: 60%
ⅥTextbooks and References
Textbooks:
Christian Nagel, Bill Evjen, Jay Glynn, et al. Professional C# 4 and .NET 4. Wiley Publising, Inc.
2010. EISBN: 978-0-470-50225-9.
69
References:
李春葆, 谭成予, 金晶等编,
《C#程序设计教程》,2010 年,第 1 版,清华大学出版社, ISBN9787302206484
http://www.csdn.net/
http://msdn.microsoft.com
Written by:Zheng Junhong, Wei Shen
Reviewed by: Desheng Huang
Date:2013-4-22
70
Syllabus of Java Programming
Course Name/Title:Java 程序设计
Course code:62987
Course Type:Specialized Course, Optional Course
Total Teaching Hours:48 (Classroom Hours: 32 Laboratory Hours or Tutorial Hours: 16 )
Course Credit:3
ⅠCourse Objective
Java programming is an optional course for undergraduate students majoring in computer science and
technology,which focuses on the basic method of object-oriented programming and the basic features of
Java language. Through this course, student are expected to understand the similarities and differences
between Java and C/C++ besides the basic Java language statements and grammars. This course covers
OOP, IO stream, exception, multithreading, database, graphics user interface programming and network
programming. Student can skillfully use JDK1.6 to programming, compiling and debugging a simple Java
program, and also can develop the complicated computer application system.
ⅡCourse Content
Chapter 1 An Introduction to Java
【Teaching hours】2
【Teaching aim】
1.
To get an overview of the development process of Java;
2.
To understand basic features of the Java language: simplicity, object-oriented, structure neutral,
multithreading, stability, safety etc.;
3.
To explore the Java virtual machine and Java running system;
4.
To establish Java develop-environment such as JDK ,JCreator, JBuilder and Eclipse;
5.
To create, compile and run Java application and Java applet.
Chapter 2 Elementary Programming
【Teaching hours】2
【Teaching aim】
1.
To get an overview of basic grammars of Java language, and distinguish similarities and
differences between Java and C/C++;
2.
To master package and Java common packages.
Chapter 3 Java Object-Oriented Design
【Teaching hours】3
【Teaching aim】
1.
To get an overview of encapsulation, inheritance and polymorphism;
2.
To demonstrate defining classes and creating objects;
71
3.
To develop a subclass from a superclass through inheritance ;
4.
To master abstract class, static properties and final properties;
5.
To explore the key word final;
6.
To write and debug a object-oriented programming of Java
Chapter 4 Common Data Structure
【Teaching hours】2
【Teaching aim】
1.
To declare, create, initialize and operate single-dimensional arrays, two-dimensional arrays and
multidimensional arrays;
2.
To declare, create, initialize and operate Vector class;
3.
To use the String class to process fixed strings, and use the StringBuffer and StringBuilder class
to process flexible strings
Chapter 5 Exception Handling
【Teaching hours】2
【Teaching aim】
1.
To get an overview of exceptions and Java exception abnormal classification;
2.
To distinguish exception types;
3.
To declare exceptions in a method header, throw exceptions in a method and write a
try-catch-finally block to handle exceptions;
4.
To define custom exception classes.
Chapter 6 Java Input and Output
【Teaching hours】3
【Teaching aim】
1.
To discover how I/O is processes in Java;
2.
To explore package java.io;
3.
To operate files using File class;
4.
To read and write files using bytes and character file stream classes;
5.
To use three standard stream of System class;
6.
To use buffer and data stream;
7.
To write data using PrintWriter class;
8.
To implement the Serializable interface to make objects serializable, store and restore objects
using object stream classes;
Chapter 7 Graphical User Interface Design
【Teaching hours】2
【Teaching aim】
1.
To get an overview of AWT and Swing;
2.
To use various common user-interface components of Swing;
3.
To create various types of layout;
72
4.
To create listeners for various types of events;
5.
To draw 2D graphics.
Chapter 8 Java Multithreading
【Teaching hours】6
【Teaching aim】
1.
To get an overview of thread and Multithreading;
2.
To create multithreading class using Thread class and Runnable Interface;
3.
To identify the life cycle of a thread;
4.
To transform in life cycle of thread using various methods of multithread;
5.
To solve synchronization and deadlock.
Chapter 9 Java Networking
【Teaching hours】4
【Teaching aim】
1.
To get an overview of networking;
2.
To learn TCP/IP protocol;
3.
To obtain IP address using InetAddress class;
4.
To read and write sources in the net using URL classes;
5.
To realize communication based on TCP and UDP protocols.
Chapter 10 Java Database Programming
【Teaching hours】6
【Teaching aim】
1.
To get an overview of JDBC and common database drives;
2.
To get an overview of MySQL database and operate it;
3.
To use classes in java.sql package;
4.
To operate MySQL database using JDBC .
ⅢPractice Plan and Requirement
This course highlights practice and do requirement 18 hours for experiments.
Experiment one:(2 hours)
Title: Java Simple Program Writing
Content:Establish Java develop-environment, then create, compile and run Java application and Java
applet, further write and debug a object-oriented programming of Java.
Experiment two:(2 hours)
Title: Java Exception Handling
Content:Define a custom exception classe, then throw and catch this exception.
Experiment three:(3 hours)
Title: Java Input and Output
Content: Design an user interface program, input five float numbers and a file name, store the five
numbers in this file, then read the five numbers from this file and sort them, finally write them to the end of
73
the file again.
Experiment four:(3 hours)
Title: Java Multithreading
Content: Design a user interface program to show a red bouncing ball. When the ball touch the
boundary of the window, the ball will bounce and run with angle 45°continually.
Experiment five:(3 hours)
Title: Java Networking
Content: 1. Design a program to access a webpage and store the information of this webpage to local
host. 2. Design a chat program.
Experiment six:(3 hours)
Title: Java Database Programming
Content: Design a simple staff wages database management system.
ⅣAutonomous Learning
Students access the Oracle website: http://www.oracle.com/technetwork/java/index.html,
download tools and write programs to consolidate the knowledge. Also Go to library and find other
software test resource. Try to other software test tools.
ⅤAssessment
Daily performance accounts for 10%, 20% for final exercise, and 70% for experiments.
ⅥTextbooks and References
Book: Yubo Jia, Qi Sun, Jing Shen, Chunxia Xu. Java Programming Foundation. Beijing People Posts and
Telecom Press. March 2013.
Reference book: John Lewis, William Loftus. Java program design. Publishing House of Electronics
Industry .August 2007.
Written by:Qi sun
Reviewed by: Wei Shen, Yanfei Liu
Date:2013/4/11
74
Syllabus of Database System and Its Application Design
Course Name/Title:数据库系统与应用设计
Course code:62913
Course Type:Specialized Course, Optional Course
Prerequisites: Programming in C, Probability and Statistics, Discrete Mathematics
Specialty: Computer Science and Technology, Electronic Information Engineering, Electronic
Science and Technology, Information and Communication Engineering, digital media
Total Teaching Hours:48 (Classroom Hours: 33, Laboratory Hours or Tutorial Hours: 15)
Course Credit:3
Department: Computer Science and Technology
ⅠCourse Objective
Database system and application design is a specialized course for undergraduate students majoring in
computer science and technology, which aims to improve their programming skills and broaden their
knowledge of database system. This course has a strong practicality and involves multidisciplinary
knowledge: database system, web service and programming language. Through this course, students are
expected to master and apply the knowledge of database design, including database structural design,
behavior design, outline design and integrated ER diagram. Besides, students are expected to grasp Java
programming skills in the environment of Eclipse.
ⅡCourse Content
Chapter 1 an Introduction to Database Programming
【Teaching hours】3
【Teaching aim】
To get an overview of the database system, and know the elementary knowledge and skills used in the
design and application of database system.
Key points: Database server system (SQL Server, MySql); Database structural design (E-R Model);
Functional design on database application system; Database connection drivers (ODBC, JDBC);
Programming language (Java, C++, VB, etc. + SQL); Integrated design.
Chapter 2 Database Design
【Teaching hours】3
【Teaching aim】
To get an overview of fundamental theory and methods used in database design
1.
Procedure of database design;
2.
Requirements analysis;
75
3.
Conceptual structural design;
4.
Logical structural design;
5.
Physical design and implementation.
Chapter 3 JDBC
【Teaching hours】3
【Teaching aim】
To understand and master JDBC API.
1. To know the features and usage of Database server systems, such as SQL Server and MySql;
2. To know the concept and configuration of ODBC;
3. To know the concept and configuration of JDBC, including fundamental concept, JDBC API,
JDBC driver and JDBC data source.
Chapter 4 Database Programming
【Teaching hours】15
【Teaching aim】
To learn the knowledge of database programming and exercise the skills of operating database system
by using Java.
Key points:
1.
Java development environment: Eclipse, J2EE;
2.
Classes of Java Swing: create window, menu, button, text box and event handler;
3.
Coding: connect database server system, create menus, write Sql statements,
4.
and create windows;Insert, update and delete data.
Chapter 5 Integrated Database Programming
【Teaching hours】6
【Teaching aim】
To learn and master the integrated programming skills of a database application system. To build a
small scale Java client/server or browser/server program within a team.
Key Points:
1. Choose the database server system and driver JCombox;
2. DatabaseMetaData: get the database meta-information JTree;
3. ResultSetMeteData: get the meta-information of table.
ⅢPractice Plan and Requirement
This course highlights practice and requires 15 hours for experiments.
Experiment one:(3 hours)
Title: Install and configure MySql
Content:Download, install and configure MySql.
Experiment two:(3 hours)
Title: ODBC and JDBC
76
Content:Install and configure ODBC and JDBC drivers. Know the key codes used by JDBC to
execute SQL statements.
Experiment three:(3 hours)
Title: Database application system programming I
Content: Grasp the functional design approaches of database application system. Be able to use the
classes of Java Swing to create window, menu, button, text box and event handler.
Experiment four:(3 hours)
Title: Database application system programming II
Content: Excise database operations including insert, update and delete by using MySql and Eclipse.
Experiment four:(3 hours)
Title: Integrated Database programming
Content: Build a small scale Java database application system in the form of client/server or
browser/server within a team.
ⅣAutonomous Learning
Students install the Java development environment; do excises to consolidate the knowledge learned
in classroom. Students can also improve their Java database programming capabilities by modify and
improve the codes provided in the textbook.
ⅤAssessment
Daily performance accounts for 30%, and 70% for experiments.
ⅥTextbooks and References
Book: Hongping Shu et al., Web Database Programming – Java, Xidian University Press, 2005.
Reference book: John O'Donahue,Java Database Programming Bible,John Wiley & Sons, 2002.
Web resources:
1.
http://www.java.com/
2.
http://www.eclipse.org/
Written by: Xianchuang Su
Reviewed by: Wenshu Li, Jianping Liu
Date:2013/4/22
77
Syllabus of Analysis and Design of Algorithms
Course Name/Title:算法分析与设计
Course code:62916
Course Type: Basic Course ,Optional Course
Total Teaching Hours:48(Classroom Hours: 33
Laboratory Hours or Tutorial Hours: 15)
Course Credit:3
ⅠCourse Objective
Algorithm design and analysis is one of core problems of computer science, and also an important
professional basic course for graduates of computer science & technology and related professional. This
course is designed to systematacially introduce computer algorithm design methods and analysis
technologies. Students study common algorithm design strategies in this course. Topics include sorting and
searching, advanced data structures, graph algorithm, numerical algorithm, distributed algorithms,
computational geometry string matching and NP-completeness. Students will comprehend and become
acquainted with basic skills of algorithm design and analysis by researching on common and representative
algorithms.
Special emphasis will be placed on problem solving, unifying ideas, proof techniques, the “scientific
method”, as well as striving for elegance, insights, and generalizability in developing algorithms and
proofs.
This course aims to cultivate students’ initial capacity to analyze the complexity of algorithms, exercise
their logical thinking ability and enable them to understand of the development of theory. Moreover,
students will be provided with independent research capability and ability to integrate theory with
practice. . Student will also learn to solve practical problems with algorithms.
ⅡCourse Content
We will cover as many selected topics from the following list as time permits:
2.1 Introduction (3Hr)
• Review of asymptotic Functions
• Review of basic data structures
• Review of basic algorithms
2.2 Sorting and searching (4Hr)
• Review of classical sorting
• Interpolation Search
78
• Specialized sorting methods
• Deterministic Kth selection
• Lower bounds on max & min
• Majority detection
• Meta algorithms
2.3 Advanced data structures (3Hr)
• Skip lists
• Amortized analysis
• Fibonacci heaps
• Perfect hashing, cuckoo hashing
2.4 Graph algorithms (4Hr)
• Lowest common ancestor
• Minimum spanning trees
• Shortest paths trees
• Radius-cost tradeoffs
• Steiner trees
• Minimum matchings
• Network flows
• Degree-constrained trees
2.5 Numerical algorithms (3Hr)
• Linear programming
• Matrix multiplication
• Karatsuba’s algorithm
2.6 Distributed algorithms (4Hr)
• Distributed models
• Asynchronous consensus impossibility
• Leader election in a ring
• Leader election in graphs
• Distributed MSTs
79
2.7 Computational geometry (6Hr)
• Lower bounds
• Chan's convex hull algorithm
• Segment intersection
• Planar subdivision search
• Voronoi diagrams
• Nearest neighbors
• Geometric minimum spanning trees
• Delaunay triangulations
• Minimum density trees
• Minimum bounding box
• distance between convex polygons
• Smallest Enclosing Circle
• Triangulation of polygons
• Collinear subsets
• Probabilistic analysis
2.8 String matching (3Hr)
• Knuth-Morris-Pratt
• Boyer-Moore
• Edit distance
• Longest increasing subsequence
• Smith-Waterman algorithm
2.9 NP-completeness (3Hr)
• Polynomial time and intractability
• Space and time complexity
• Problem reductions
• NP-completeness of satisfiability
• Independent sets
• Graph colorability
80
• Travelling salesperson problem
• Approximation heuristics
ⅢPractice Plan and Requirement
Lab Hours
15 hours
Lab Venue
In the software lab of building 10#
Students are required to work out their projects outside of class, and lab
Lab Approach
hours are mainly used for discussions on common problems met by
students in finishing the projects.
Additional
Tutoring
N/A
Students are required to work out 5 programming projects.
(1) Project #1
To realize sorting and searching, above all Interpolation Search;
(2) Project #2
To study and analysis Fibonacci heaps;
Practices / Labs
(3) Project #3
To work out Minimum spanning trees
(4) Project #4
To complete the Linear programming
(5) Project #5
To achieve Geometric minimum spanning trees
Operating System: Microsoft Windows
Platforms
Programming Language and Compiler: C/VC
Skill Development
None
ⅣAutonomous Learning
Lectures and exercises with assignments. The assignments are a very important part of the course. Each
week an assignment has to be solved. After the exercise class you have one week to solve the assignment
and hand it in at the beginning of the next exercise class (or send it by mail/fax). Late hand-ins is not
accepted. The assignments will be checked. A number of assignments involve programming in C. Although
the programming language is not a crucial part of this course it is strongly recommended that you
81
implement and run all programming exercises. The recommended way to do this is to use the server of the
university. The details on The outlook to teaching and studying will be explained as follows:

Learning by doing ;

International view ;

Innovating and Exploring;

knowledge integration ;
 Human-centric values ;
ⅤAssessment
Students will complete written homework assignments, programming projects, a midterm and a final.
Each will be assigned a point value. Homework and program averages will be computed as total points
earned divided by total points possible. These grading components will be weighted as follows. Letter
grades for the course will be subject to my evaluation of your overall class performance. Please keep your
own record of your grades so that you will know your standing in the course and can double-check my
records. All grades will be available on web of our School. The specific contents are showed as follows:
Grading
Class Participation
10%
Weekly Written Assignments
20%
Midterm Examination
0%
Final Examination
40%
Programming Assignments
30%
Total
100%
ⅥTextbooks and References
The textbook is Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein, Third Edition,
2009.
The class will be relying mostly on the textbook, but additional material will occasionally be drawn
from the following:
Introduction to Algorithms (second Edition) of Thomas H Cormen, Charles E. Leiserson, Ronald L.
Rivest and Cliff Stein published by MIT Press and McGraw-Hill.
Written by:Wenshu LI
Reviewed by: Lican Huang, Na Zhang
Date:2013/04/07
82
Syllabus of Basic Course for Information Security
Course Name/Title:信息安全基础
Course code:62919
Course Type:(Specialized Course)(Optional Course)
Total Teaching Hours:32 (Classroom Hours: 32 Laboratory Hours or Tutorial Hours: 0 )
Course Credit:2
ⅠCourse Objective
With the rapid development of information technology, the issue of security is becoming increasingly
important. The course is intended to provide students with an introduction to a foundational
knowledge of current information security theory and practice. The course covers knowledge such as
cryptography, security protocols, firewall and intrusion detection, computer virus. Course work
involves implementing various security algorithms.
ⅡCourse Content
1.Introduction
Teaching Objectives: know the basic concept of information security and cryptography
2.Classical cryptosystems
Teaching Objectives: know the history of cryptography; understand the classical encryption
algorithms
3.Symmetric cryptosystems
Teaching Objectives: understand block cipher and stream cipher and its operation modes
4.Public key cryptosystems
Teaching Objectives: understand the principles of public key cryptosystem and master RSA and
Elgamal encryption algorithms.
5.Digital signature
Teaching Objectives: understand the principles of digital signatures and master RSA and Schnorr
algorithms.
6.Authentication and key exchange protocols
Teaching Objectives: understand the principles of authentication and key exchange protocols and
familiar with several popular protocols.
7.PKI technology
Teaching Objectives: understand the principles of PKI technology and its applications
8.Security protocols
Teaching Objectives: understand IPSEC and SSL/TSL protocols and theirs applications
9.Firewall and IDS
Teaching Objectives: know the basic concepts of firewall and IDS
10.Computer virus
83
Teaching Objectives: understand the principles of computer virus
ⅢPractice Plan and Requirement
None
ⅣAutonomous Learning
The students are required to implement algorithms such as RSA, Elgamal in c/c++ language. For more
details of some algorithms, the students are asked to refer to some related papers.
ⅤAssessment
Toal mark:
1.Regular grade 40%, including attendances, experiments,
2.Final exam grade 60%
ⅥTextbooks and References
Textbook:
Behrouz A.Forouzan: Cryptography and Network Security, Tsinghua university press,2009.
Reference:
Jonathan Katz and Yehuda Lindell:Introduction to Modern Cryptography, Chapman and
Hall/CRC,2007.
Online resources:
http://acm.zstu.edu.cn
Written by:Hai Huang
Reviewed by: Desheng Huang, Yubo Jia
Date:4/22/2013
84
Syllabus of Technology of Human-Computer Interaction
Course Name/Title:人机交互技术
Course code:62931
Course Type: Specialized Course,Optional Course
Total Teaching Hours:
(Classroom Hours: 40 Laboratory Hours or Tutorial Hours 8 )
Course Credit:3
ⅠCourse Objective
The Human Computer Interaction (HCI) specialization prepares students to address human needs with
technology by determining useful system functionality and by designing usable interfaces,
considering the context of the individual and/or organization.
ⅡCourse Content
Chapter 1. General Introduction
Chapter 2. Analysis and evaluation for usability
Chapter 3. Interaction devices and human-computer interaction technology
Chapter 4. Interactive interface representation model
Chapter 5. Software Architecture and Implementation
Chapter 6. Mobile interface design, web interface design
Chapter 7. Cognitive Psychology and Ergonomics
Chapter 8. HPMs and complexity of system design and evaluation
ⅢPractice Plan and Requirement
Title
Availability
analysis
Interactive
interface
design
HCI Model
system design
for HCI
Contents
Using
availability
analysis to analyze the
availability of a software
self-designed
Using visual development
tools
to
implement
software’s framework, the
function
include
multi-level menu, shortcut
keys, toolbars, and status
bar.
Get to know structure of
MVC
model,
and
implementation method
Reference to a particular
model, to design a
specific
system
in
accordance
with
the
principles and methods of
interactive design
2
Persons
/per
group
1
Design
Compulsory
MSVC ++ /
Eclipse
2
1
Design
Compulsory
Eclipse
2
1
Design
Compulsory
MSVC ++ /
Eclipse
2
1
Design
Compulsory
Device or
Environmet
Hours
MSVC ++
85
property
Requirment
ⅣAutonomous Learning
1. Students can access the course materials from teaching website, and download the courseware and
types of homework, by self-studying to consolidate knowledge learned in class.
2. Students can independently download management software teaching /trial version of management
information systems demo version and network resources provided by teachers , use their spare time to
operate these software systems, to understand these software's management business processes and
software modules correspondingly, to analysis and study program's design process and style for these
software's database design. The outstanding students can to imitate the development of these information
systems in the use of pre-learned database applications and software development tools and under the
guidance of teachers.
ⅤAssessment
The homework will be assigned in accordance with the teaching progress. After each end of the homework
is required submit. Later submission of the homework will be punished. After the homework's evaluation, a
Q & A will be given for the problems in the homework.
Students are asked to finished experimental course design homework independently. The score are given
according to the circumstance of experiment’s completion and experimental reports.
Performance during class, homework, and participation in class will take up 40% of total score, and the
experimental course will take up 60% according to experiment’s completion and reports.
ⅥTextbooks and References
[1] Stuart K. Card , Thomas P. Moran and Allen Newell, The Psychology of Human-Computer
Interaction, Lawrence Erlbaum Associates, 1986-02-01, ISBN: 9780898598599
[2] Sears, Andrew, Jacko, Julie A., Human-Computer Interaction, CRC Press, 2009-03-02, ISBN:
9781420088878
[3] Yvonne Rogers, Helen Sharp, Jenny Preece, Interaction Design: beyond human-computer
interaction (3rd edition), April 2011, ISBN 978-0-470-66576-3
Written by:Liu Yanfei
Reviewed by: Shen Wei, Yubo Jia
Date:Apr. 12, 2013
86
Syllabus of Software Engineering A
Course Name/Title:软件工程 A
Course code:62929
Course Type: Specialized Course, Compulsory Course
Total Teaching Hours: 48
9
(Classroom Hours:
39
Laboratory Hours or Tutorial Hours
)
Course Credit:3
ⅠCourse Objective
Through learning of this course, students should master the basic concepts, principles and methods of
software engineering. Students should develop skills that will enable them to construct software of
high quality - software that is reliable, and that is reasonably easy to understand, modify and maintain.
ⅡCourse Content
1. Introduction (3 teaching hours)
1.1 What is software engineering?
1.2 Phases in the Development of Software
1.3 Maintenance or evolution
1.4 Software Engineering Ethics
1.5 Summary
2. Software engineering Management (3 teaching hours)
2.1 Planning a software development project
2.2 Controlling a software development project
2.3 Summary
3. The software life Cycle (6 teaching hours)
3.1 The waterfall model
3.2 Agile methods
3.3 The Rational Unified Process
3.4 Model-Driven Architecture
3.5 Software Product Lines
3.6 Process Modeling
4. Configuration Management (3 teaching hours)
87
4.1 Tasks and Responsibilities
4.2 Configuration Management Plan
4.3 Summary
5. Software Architecture (6 teaching hours)
5.1 Software architecture
5.2 Architecture design
5.3 Architecture views
5.4 Architecture styles
5.5 Software architecture assessment
5.6 Summary
6. Software Design (6 teaching hours)
6.1 Design considerations
6.2 Classical Design methods
6.3 Object-oriented analysis and design methods
6.4 How to select a design method
6.5 Design patterns
6.6 Design documentation
6.7 Verification and Validation
6.8 Summary
7. Software Testing (6 teaching hours)
7.1 Test objectives
7.2 Testing and the software life cycle
7.3 Verification and validation planning and documentation
7.4 Manual test techniques
7.5 Coverage-based test techniques
7.6 Fault-based test techniques
7.7 Error-based test techniques
7.8 Comparison of test techniques
7.9 Test stages
7.10 Estimation software reliability
7.11 Summary
8. Software maintenance (3 teaching hours)
8.1 Maintenance categories
8.2 Major causes of maintenance problems
88
8.3 Reverse engineering and refactoring
8.4 Software evolution
8.5 Organizational and managerial issues
8.6 Summary
9. Software Tools (3 teaching hours)
9.1 Toolkits
9.2 Language-centered environments
9.3 Integrated environments and workbenches
9.4 Process-centered environments
9.5 Summary
ⅢPractice Plan and Requirement
Experiment
Needed
Experiment
project name
Content
facilities or
Laboratory
experimental
Hours
environment
Number
of Team
members
nature
(basic/
comprehensive/
design/ research
Requirement
(compulsory
/optional)
innovation)
Experiment
1 : module
development
Each
team
will
implement
one
of
several
modules
Software
Laboratory
3
3
basic
Experiment
2 : System
Integration
and Test
Each
team
will integrate
its
module
with modules
developed by
other teams
Software
Laboratory
3
3
comprehensive
Experiment
3 : Software
Maintenance
Each
team
will
make
modifications
to a system it
has
developed by
another
team
Software
Laboratory
compulsory
3
89
1
comprehensive
ⅣAutonomous Learning
Students can study the following advanced topics by themselves:
1. User interface design
2. Software reusability
3. Component-based software engineering
4. Service orientation
5. Global software development
ⅤAssessment
The end of term exam counts for 70% of the course grade, while the experiment and report count for
30% of the course grade.
ⅥTextbooks and References
Textbook:
1. Hans van Vliet, “Software Engineering: Principles and Practice (Second Edition)”. Wiley
References:
1. Mary Shaw and David Garlan, “Software Architectures: Perspectives on an Emerging Discipline”.
Prentice Hall.
2. Babara Liskov and John Guttag, “Program Development in Java: Abstraction, Specification and
Object Oriented Design”. Addison Wesley.
Written by:Yu Zhang, Xiaohua Lv
Reviewed by: Wenshu Li, Yubo Jia
Date:2013.4.11
90
Syllabus of Principles of Compilation
Course Name/Title:编译原理
Course code:62902
Course Type:Specialized Course, Compulsory Course
Total Teaching Hours: 48
( Classroom Hours: 39
Laboratory Hours or Tutorial Hours
9)
Course Credit:3
ⅠCourse Objective
The discovery and practical application of compiler theory has been one of the major achievements of
Computer Science since the mid Nineteen-fifties. This unit is intended to provide Computing/Computer
Science majors with an introduction to one of the cornerstones of their discipline.
Students taking this course can expect to acquire the following:

an understanding of the major classes of high-level programming languages, language features,
and programming styles, with an emphasis on applying concepts from programming language
theory;

formal methods of specifying the syntax and semantics of programming languages;

and the knowledge needed to write parsers, interpreters, and simple compilers for the major
classes of programming languages.
ⅡCourse Content
Unit 1:Introduction of compiler
1. Why Compilers? A Brief History
2. Programs Related to Compilers
3. The Translation Process
4. Major Data Structures in a Compiler
Emphasis:1. History of the compiler
2. Description of programs related to compilers
3. Structure of a compiler 、 the various translation process 、 associated data
structure、a simple concrete example.
4. Description of the principal language examples
Unit 2:SCANNING
1. The Scanning Process
Given the concept and categories of tokens, the lexeme (string value). The scanner needs to compute
at least as many attributes of a token and returns the token value only and place the other attributes in
variables.
91
2. Regular Expressions
Definition of Regular Expression; Extensions to Regular Expressions; Regular Expressions for
Programming Language Tokens
3. Finite Automata
Definite of Deterministic finite automation (DFA); Lookahead, backtracking and nondeterministic
automata;
4. From Regular Expressions to DFAs
the algorithm : translating a regular expression into a DFA
regular
NFA
DFA
program
Emphasis:
1. methods of pattern specification and recognition
2. Regular expression
3. Finite automata
Unit 3:Context-Free Grammars and Parsing
1. The parsing process
The parser may be viewed as a function that takes as its input the sequence of tokens produced by the
scanner and produces as its output the syntax tree.
parser
sequence of tokens
syntax tree
2. Context-free grammars
Comparison to regular expression notation; Specification of context-free grammar rules; Derivations
and the language defined by a grammar;
3. Parse trees and abstract syntax trees
4. extended notations: EBNF and syntax diagrams
Self-study
5. Formal properties of context-free language
A formal definition of context-free language; Grammar rules as equations; the Chomsky hierarchy
and the limits of syntax as context-free rules
Emphasis:Context-free grammars ; Parse trees and abstract syntax trees; Derivations
Unit 4:TOP-DOWN PARSING
1. LL(1) PARSING
The Basic Method of LL(1) Parsing; ; The LL(1) Parsing Table and Algorithm; left Recursion
Removal and Left Factoring
2. FIRST AND FOLLOW SETS
First Sets; Follow Sets; Constructing LL(1) Parsing Tables;
92
Emphasis:
1. The LL(1) Parsing Table and Algorithm.
2. Constructing LL(1) Parsing Tables
Unit 5:Bottom-Up Parsing
1. OVERVIEW OF BOTTOM-UP PARSING
2. FINIT AUTOMATA OF LR(0) ITEMS AND LR(0) PARSING
LR(0) Items; Finite Automata of Items; The LR(0) Parsing Algorithm;
3. SLR(1) Parsing
the SLR(1) parsing algorithm; Disambiguating rules for parsing conflicts; Limits of SLR(1) parsing
power;
4. General LR(1) and LALR(1) Parsing
Finite Automata of LR(1) Items; The LR(1) Parsing Algorithm;
Emphasis:
The Parsing Algorithm, LR(1) and LALR(1) Parsing algorithm
Unit 6:Semantic Analysis and Runtime Environments
1. Attributes and attribute grammars
Attribute grammars; Simplifications and Extensions to Attribute Grammars.
2. Algorithms for attribute computation
dependency graphs and evaluation order; Synthesized and inherited attributes; Attributes as
parameters and returned values; The use of external data structures to store attributes values. The
computation of attributes during parsing; The dependence of attributes computation on the syntax
3. The symbol table
The structure of the symbol table; Scope rules and block structure
4. Runtime Environments
Memory organization during program execution.
Emphasis : Synthesized and inherited attributes; The computation of attributes during parsing;
dependency graphs and evaluation order; semantic rules.
ⅢPractice Plan and Requirement
There will be machine problems (MPs) as practice requirements.
As their names may suggest, To submit an MP, you will need to run the hand-in program. we have
designed two MPs for students:
1) patten matching
The purpose of this MP is to help the student master:
1. pattern matching
2. higher-order functions
93
3. recursion
2) a parser design
In this MP, we will deal with the process of converting Decaf code into an abstract syntax tree using a
parser.
Before submitting an assignment, you MUST make sure that your MP compiles with the student
grading script supplied with the assignment.
ⅣAutonomous Learning
Attendance at lectures is expected. Students are fully responsible for all material presented in lectures,
even if some of it does not appear in the "official" lecture notes. Class attendance is recommended strongly.
Lecture notes will be made available. Watch for an announcement of their availability. Some topics will be
set for self-study.
ⅤAssessment
Your grade will be calculated as follows
Grading Breakdown
Work
Weight
Machine Problems
20%
Written Assignments
20%
Final Exam
60%
Notes
These weights are subject to minor variation.
Exams are scheduled in advance; unless prior arrangements are made, a grade of zero will be recorded
for missed exams.
ⅥTextbooks and References
Textbook:
Kenneth C. Louden,San Jose State University:COMPILER CONSTRUCTION
Principles and
Practice ,China Machine Press,2002
Reference:
Compilers: Principles, Techniques, and Tools, also known as "The Dragon Book"; by Aho, Sethi, and
Ullman. Published by Addison-Wesley. ISBN: 0-201-10088-6.
Written by:Jinsong Xia
Reviewed by: Lican Huang, Qiaohong Chen
Date:2013-04-11
94
Syllabus of Introduction to Service Outsourcing
Course Name/Title:服务外包概论
Course code:62952
Course Type:Specialized Course, Obligatory course
Total Teaching Hours:48 (Classroom Hours: 39, Laboratory Hours or Tutorial Hours: 9)
Course Credit:3
ⅠCourse Objective
Service outsourcing enterprises in the value chain originally provided with basic, common, non-core IT
business and economic activity after stripping out based on the business processes of IT outsourcing to
external professional services provider to complete. The service outsourcing Introduction to a research
outsourcing software development and maintenance of the general principles of engineering and technical
disciplines. Now it has become an important branch of the service outsourcing, an unusually active area of
research. Designed to enable students to master the basic concepts of service outsourcing, principles and
methods of from service outsourcing technology outsourcing software project management and other
aspects to understand how software outsourcing software development and operations. Student learning
through this course, basic grasp of IT outsourcing process, which students outsourcing decision-making
capacity, and promote IT suppliers and contract management skills and control of IT outsourcing risk
ability to master the IT effectiveness of software development technology
(A) knowledge of the target
Of this course, students can grasp the the service outsourcing basic concepts, principles, development
status and trends, from the perspective of customers and suppliers to understand the development of service
outsourcing processes, operational processes, and thus the overall grasp of the whole operation process of
the service outsourcing .
(B) the ability to target
This course of study, cultivate the students' self-learning ability, to improve the students learning
services outsourcing of enthusiasm; take the initiative to explore and independent thinking, to stimulate
their sense of innovation; students outsourcing decision-making capacity, promote the management of IT
suppliers and contract the skills and control of IT outsourcing risk ability to master the IT effectiveness of
software development technology.
(C) the quality objectives
Through the study of this course, you should pay attention to cultivating students the following
qualities: through the implementation of real projects, the students added to the virtual development team
collaboration to complete the project, so as to achieve the exercise purpose of their project development
skills and team spirit.
ⅡCourse Content
95
Chapter 1 Basic concepts and theories
【Teaching hours】6
【Teaching aim】
1.About the course of development of the IT services outsourcing and basic concepts. Focuses on the
motivation and risk of IT outsourcing.
2. To explain the theory of IT services outsourcing. Focus on mastering a variety of services
outsourcing theory.
Chapter 2 IT services outsourcing contract model - based on the client perspective
【Teaching hours】6
【Teaching aim】
1. Presentation of the IT services outsourcing contract model, including international IT services
outsourcing model to the development of the overall analysis, the main mode of international IT
outsourcing and development trends.
Focus on to master content: service outsourcing model and features.
2. Introduction the Day Hair packet mode compare discussed the characteristics of the service
outsourcing model in Japan and the United States service outsourcing model.
Focus on mastering content: the similarities and differences of the Day Hair packet mode and
characteristics.
Chapter 3 IT outsourcing management mechanism - based on the client perspective
【Teaching hours】8
【Teaching aim】
1 Introduction IT outsourcing high, medium and low-end business criteria for the classification and IT
service outsourcing provider selection principles and mechanisms.
Master key: to master the principles and mechanisms of IT outsourcing provider of choice.
2. Introduction of the basic concepts of IT outsourcing control mechanisms and IT services
outsourcing partnership and its processes.
Master key: to grasp the basic concepts of IT outsourcing control mechanisms and IT services
outsourcing partnership.
Chapter 4 China IT Industry Competitiveness - based on the perspective of suppliers
【Teaching hours】8
【Teaching aim】
1 compares the Chinese and Indian IT service outsourcing industry, China's service outsourcing
industry development model and the base city competitiveness.
Master key: China's service outsourcing industry development model and the base city
competitiveness
(2) the introduction of IT service outsourcing enterprises ability evaluation system is given to enhance
the countermeasures of China's IT service outsourcing industry.
Master key: China's IT service outsourcing industry countermeasures.
96
Chapter 5 The Practice and operations of the IT services outsourcing
【Teaching hours】11
【Teaching aim】
Processes and operations of the type of service outsourcing practice and practice activities, the use of
CGI Group companies services outsourcing case, the JAY Neilson and the Akka INTER NATIONAL: India
outsourcing and the West An Yanxing technology to undertake BPO business case to explain the service
outsourcing practice activitiesprocesses.
Focus on mastering content: the case of the practical activities of the service outsourcing process and
operational processes.
ⅢPractice Plan and Requirement
This course highlights practice and requires 9 hours for experiments.
Experiment one:(3 hours)
Title: The use of version management software SVN(I)
Content:Version control system SVN use - Server Configuration Manager.
Experiment two:(3 hours)
Title: The use of version management software SVN(II)
Content:Client version management operations: Modify, submitted View History.
Experiment three:(3 hours)
Title: Legato backup system operation and maintenance
Content: Legato Networker use of data backup software, which runs on maintenance.
IV Assessment
Daily performance accounts for 30%, and 70% for experiments.
V Textbooks and References
Book: IAOP, Outsourcing Professional Body of Knowledge, Van Haren Publishing,2010
Reference book:
1. Yingluo Wang,Introduction of Service Outsourcing,Xi'an Jiaotong University Press, 2007.
2. Yuxi Liu,Renli Chen, Theory, method and practice of IT Service Outsourcing, Tsinghua
University Press,2010.
3. Hua Li,Ming Dong,Yingluo Wang, Service Outsourcing Based on IT, Xi'an Jiaotong University
Press,2009.
Written by: Jing Bian, Qiuhong Tian
Reviewed by: Wenshu Li
Date:2013/5/2
97
Syllabus of Trust and Reputation for Electron Service-oriented
Environments
Course Name/Title:电子服务信任与信誉
Course code:62955
Course Type:Specialized Course, Compulsory Course
Total Teaching Hours: 16
Hours
(Classroom Hours: 16
Laboratory Hours or Tutorial
)
Course Credit:1
ⅠCourse Objective
This course will give senior undergraduate level students of IT, IS, computer science and computer
engineering a full understanding of the concepts and issues related to trust and reputation in
e-commerce. After completing the study of this course, students are required to have an overview of
the basic concepts and implementation mechanism. Students are able to build trust and reputation
models.
ⅡCourse Content
1. Trust in e-commerce (2 teaching hours)
1.1 Introduction
1.2 Why Trust
1.3 Trust in e-commerce environment
1.4 Trust Environments
2. Trust Concepts and Trust Model (2 teaching hours)
2.1 Trust Definitions in Literature
2.2 Trust Relationships
2.3 Trust Relationship Diagram
2.4 The Trust Model
3. The Fuzzy and Dynamic Nature of Trust (2 teaching hours)
3.1 Fuzzy and Dynamic Characteristics of Trust
3.2 Reasoning the Fuzziness and Dynamism
3.3 Managing the Fuzziness of Trust
3.4 Managing the Dynamism of Trust
4. Trustworthiness Systems (2 teaching hours)
4.1 Amazon's Trustworthiness Systems
98
4.2 Epinions.com's Trustworthiness Systems
4.3 eBay.com's Trustworthiness Systems
4.4 Review of Trustworthiness Systems
5. Reputation Concepts and the Reputation Model (2 teaching hours)
5.1 Reputation in Literature
5.2 Advanced Reputation Concepts
5.3 Reputation Relationship
5.4 Reputation Model and Reputation Relationship Diagrams
6. Reputation Calculation Methodologies (2 teaching hours)
6.1 Methods for Synthesizing the Reputation from Recommendations
6.2 Factors and Features that need to be considered
6.3 Deterministic Approach to Reputation Measure
6.4 Bayesian Approach
6.5 Fuzzy System Approach
7. Reputation Systems (2 teaching hours)
7.1 Reshaping e-commerce with Reputation Technology
7.2 Trust and Reputation Systems versus Recommendation Systems
7.3 Epinions.com
7.4 eBay.com
7.5 Review of Reputation systems
8. Trust and Reputation Modeling (2 teaching hours)
8.1 Notation Systems
8.2 Trust Relationship Diagrams
8.3 Trust Case Diagrams
8.4 Trust Class Diagrams
8.5 Trust Transition Diagrams
ⅢPractice Plan and Requirement
Students need to implement at least one kind of trust models using a specific programming language.
They should build the interface of the trust model and demonstrate its effectiveness. Afterwards, they
conclude their findings and give a presentation in PPT format.
ⅣAutonomous Learning
Students need to learn how to implement trust models.
ⅤAssessment
The big programming project counts for 70% of the course grade, while the thesis counts for 30% of
99
the course grade.
ⅥTextbooks and References
Textbook:
1. Elizabeth Chang, Farookh Hussain, Tharam Dillon. <Trust and Reputation for Service-Oriented
Environments: Technologies For Building Business Intelligence And Consumer Confidence>. John
Wiley & Sons Ltd.
References:
1. Ronggong Song, Larry Korba, and George Yee. <Trust in E-services: Technologies, Practices and
Challenges>. Idea group publishing.
2. A. Josang, R. Ismail, C. Boyd. <A survey of trust and reputation systems for online service provision>.
Elsevier
Written by:Yu Zhang, Xiaohua Lv
Reviewed by: Wei Sheng, Yubo Jia
Date:2013-04-06
100
Syllabus of Software Testing and Quality Management
Course Name/Title:软件测试和质量管理
Course code:62953
Course Type:Specialized Course, Compulsory Course
Total Teaching Hours:32 (Classroom Hours: 20 Laboratory Hours or Tutorial Hours: 12 )
Course Credit:2
ⅠCourse Objective
Software Testing and Quality Management is a specialized and compulsory course for undergraduate
students majoring in computer science and technology. After this course study, students know the basic
concepts of software testing, master various testing methods and skills, also can plan the software testing
and use some tools for testing.
ⅡCourse Content
Chapter 1 An Introduction to Software Testing
【Teaching hours】1
【Teaching aim】
1.
To get a overview of the development process of software testing;
2.
To know why need software testing;
3.
To know the misunderstanding of software testing
Chapter 2 Software Testing Fundamentals
【Teaching hours】7
【Teaching aim】
1.
To know the object of software testing and testing principles;
2.
To understand the classification of software testing methodologies and contents;
3.
To master the concept, specification and skill of white-box testing method;
4.
To master the concept, specification and skill of black-box testing method.
Chapter 3 Unit Testing
【Teaching hours】2
【Teaching aim】
1.
To know the concept and significance of unit testing;
2.
To understand environment and strategy of unit testing;
3.
To master case design of unit testing;
4.
To master unit testing procedures.
Chapter 4 Integration Testing
【Teaching hours】2
【Teaching aim】
1.
To know the concept and significance of integration testing;
101
2.
To understand environment and strategy of integration testing;
3.
To master case design of integration test;
4.
To master integration test procedures.
Chapter 5 System Testing
【Teaching hours】3
【Teaching aim】
1.
To know the concept and significance of system testing;
2.
To master some methods of system testing;
3.
To master system testing procedures for various methods.
Chapter 6 Software Test Automation
【Teaching hours】3
【Teaching aim】
1.
To know the basic concept of software test automation;
2.
To understand life cycle of software test automation;
3.
To use software automation test tools and test platform.
Chapter 7 Software Quality Assurance
【Teaching hours】3
【Teaching aim】
1.
To get a overview of software quality;
2.
To understand the prevention and monitoring of software quality
3.
To grasp the standard of software quality: CMM( capability maturity model);
4.
To understand the SQA implementation procedures.
ⅢPractice Plan and Requirement
This course highlights practice and do requirement 12 hours for experiments.
Experiment one:(2 hours)
Title: White-Box Testing
Content:Design and implement a program that include multi-switch structure and then test it with
logical coverage and basic path respectively.
Experiment two:(2 hours)
Title: Blank-Box Testing
Content:Design and implement a program that include multi-switch structure and then test it with
equivalence partitioning and boundary value analysis respectively.
Experiment three:(2 hours)
Title: Unit Testing
Content:Design and implement a program and then test it with Junit.
Experiment four:(2 hours)
Title: Function testing
Content:Test the Mercury Tours web site using QuickTest Professional.
102
Experiment five:(2 hours)
Title: Performance testing
Content:Test the Application system using LoadRunner.
Experiment six:(2 hours)
Title: Web testing
Content:Test web system for functional testing and performance testing using web testing tool.
ⅣAutonomous Learning
Go to library and find other software test resource. Try to other software testing tools.
ⅤAssessment
Final examination accounts for 60%, 40% for experiment and exercise.
ⅥTextbooks and References
Book: Le Gu, Jiulin Shi. Introduction to Software Testing Technology. Tsinghua University press.
August 2011.
Reference book:
1. Paul C.Jorgensen.Software Test. Qinghua University Press.March 2011.Third edtion.
2. Ron Patton. Software Testing. China Machine press.July,2005.Second edition.
Written by:Qi sun
Reviewed by: Wenshu Li, Yubo Jia
Date:2013/4/11
103
Syllabus of Computer English
Course Name/Title:计算机专业英语
Course code:62662
Course Type: Specialized Course, Optional Course
Total Teaching Hours: 32 (Classroom Hours: 32)
Course Credit:2
ⅠCourse Objective
The course aims to provide a close view of the fields that computer English is involved in. After learning,
students should get a certain level in listening, speaking, reading, writing and translation using computer
English. Can translate professional material. Can finish simple oral and written in academic work. The
most important purpose is to strengthen and increase the practical skills in computer English. It aims to
build competence, fluency and confidence in learners and increase their career prospects.
ⅡCourse Content
Unit 1: Information Technology, the Internet,and You
Credit hours: 4
Learning Objectives:
Information Systems
Software
Hardware
Data
Connectivity,the Wireless Revolution and the Internet
Unit 2: The internet,the Web,and Electronic Commerce
Credit hours: 4
Learning Objectives:
The Internet and the Web
Access
Communication
Search Tools
Electronic Commerce
Unit 3: Basic Application Software
Credit hours: 4
Learning Objectives:
Application Software
104
Word Processors
Spreadsheets
Database Management Systems
Presentation Graphics
Integrated Packages
Software Suites
Unit 4: Specialized Application Software
Credit hours: 4
Learning Objectives:
:
Specialized Applications
Graphics
Audio and Video
Multimedia
Web Authoring
Artificial Intelligence
Unit 5: System Software
Credit hours: 4
Learning Objectives:
:
System Software
Operation System
Utilities
Device Drivers
Unit 6: The System Unit
Credit hours: 4
Learning Objectives:
:
System Unit
Electronic Data and Instructions
System Board
Microprocessor
Memory
Unit 7: Input and Output
Credit hours: 4
Learning Objectives:
:
What is Input
Keyboard Entry、Pointing Devices 、Scanning Devices、Image Capturing Devices、Audio-Input
Devices
What is Output
Monitors 、Printers 、Audio-Output Devices
105
Combination Input and Output Devices
Unit 8: Communications and Networks
Credit hours: 4
Learning Objectives:
:
Communications
Communication Channels
Connection Devices
Data Transmission
Networks
Network Types
Network Architecture
Organizational Internets
ⅢAutonomous Learning
Attendance at lectures is expected. Students are fully responsible for all material presented in lectures, even
if some of it does not appear in the "official" lecture notes. Class attendance is recommended strongly.
Lecture notes will be made available. Watch for an announcement of their availability. Some topics will be
set for self-study.
ⅣAssessment
Performance during class, homework, and participation in class will take up 40% of total score, and the
final exercise will take up 60%.
V Textbooks and References
Textbooks:
Timothy J.O’Leary,Computing Essentials,Higher Education Press,2008
References:
David Rosenwasser,Jill Stephen ,Writing analytically,Peking university Press,2008
Resources:
1.
http://www.hujiang.com/
2.
http://www.koolearn.com/
Written by:Sun Jing
Reviewed by: Huang Li Can, Yubo Jia
Date:Apr. 13, 2013
106
Syllabus of Project Management
Course Name/Title:项目管理和案例分析
Course code:62954
Course Type: Specialized Course, Compulsory Course
Total Teaching Hours:32hours (Classroom Hours:32hours )
Course Credit:2
ⅠCourse Objective
This course is for the purpose of introducing primary management knowledge and skill in
dealing with information system projects for Computer Science students. Software project
management is a crucial element in successful software and IT development, and requires
students to develop an understanding of technical methodology and an appreciation of the
many human factors that can play a part in software projects. This course will help students to
grasp these contrasting skills, and learn about new developments in the discipline. It provides
students with a comprehensive introduction to software project management.
In this course, concept of systematic engineering, management science and basic skills will
introduce to the students. Students will be required to learn how to evaluate project, complete
project and fill client requirement by selection appropriate approach (or models), project
management and risk control, which will set a stage for their career of information system
engineer.
(1)Object of knowledge
Students are required to gain the knowledge of project evaluation, selection of an
appropriate project approach, software effort estimation, activity planning, risk
management, and resource allocation etc.
(2)Object of ability
Through studying in this course, students should familiar with the methods and skill of project
management, and be capable of analyzing cases and using models to deal with software projects, and be
able to write project file in English.
(3)Object of quality
Through studying in this course, students should familiar with the methods and skill of project
management, and know how to cooperate with other in a group, and be able to work in a bilingual
circumstance .
ⅡCourse Content Unit 1:Introduction
Hours:6hrs
Learning Objects:
1.Technical development of software project
107
2.An overview of project planning
3.Project evaluation
Teaching contents:
1.Technical development of software project
2.An overview of project planning
3.Project evaluation methods
Key points:
1. Concept of software project management
2. Importance of project planning
3. Project evaluation and involvement
Difficulties:
1. Significance of software project management
2. Methods of project evaluation
Assignments:
1. What is the significance of software project management?
2. What is the significance of project planning?
3. What is project evaluation and involvement?
Unit 2:Selection of model and effort estimation
Hours:8hrs
Learning Objects:
1.Know how to select an appropriate project approach
2.Know how to estimate software effort
3.Learning how to do an activity planning
Teaching contents:
1.Selection of an appropriate project approach
2.Software effort estimation
3.Activity planning
Key points:
1.Select appropriate project approach
2.Software effort estimation
3.How to do an activity planning
Difficulties:
1.Select appropriate project approach
2.Software effort estimation
3.How to do an activity planning
Assignments:
1. What is the appropriate project approach? And how many approaches were discussed in class?
108
2. What are necessities for performing software effort estimation?
3. Select a appropriate project approach to complete an activity plan.
Unit 3:Risk control and resource allocation
Hours:8hrs
Learning Objects:
1. Know how to estimate and control risks in project
2. To learn resource allocation
Teaching contents:
1. Risk management
2. Resource allocation
3. Monitoring and control
Key points:
1. Risk management
2. Resource allocation
3. Monitoring and control
Difficulties:
1. Estimation and Control Risk
2. Resource allocation
Assignments:
1. What is risk management? And how do we estimate the risks of a project?
2. What is resource allocation?
3. How should we do for monitoring and control risk
Unit 4:Managing Contracts and Practice
Hours:10hrs
Learning Objects:
1. Learn Managing Contracts
2. Managing people and Organizing
3. Software quality
4. Small projects
Teaching contents:
1. Types of risk, Risk management
2. Identifying resource requirements, Resource allocation
3. Monitoring and control
Key points:
1. Risk management
2. Resource allocation
109
3. Monitoring and control
Difficulties:
1. Estimation and Control Risk
2. Resource allocation
Assignments:
1. What is risk management, and how many types of risk?
2. How do we estimate the risks of a project?
2. What is resource allocation?
3. How should we do for monitoring and control risk?
ⅣAutonomous Learning
Students can visit the following Web:
1.http://books.google.com.hk/books?id=n3ry2WtdTbMC&printsec=frontcover&dq=software+project
+management&hl=en&sa=X&ei=38GEUeHvFIejkwXppICgAQ&ved=0CDwQ6AEwAg
2. http://www.sei.cmu.edu/library/abstracts/reports/89cm021.cfm
ⅥTextbooks and References
Book:Bob Hughes, Mike Cotterell Software project management 机械工业出版社, 2006
Reference Book:
1.肖来元,《软件项目管理与案例分析》清华大学出版社; 第 1 版 2009 年 2 月
2. S. A. KELKAR, SOFTWARE PROJECT MANAGEMENT: A CONCISE STUDY
网络资源:
1. https://www.comp.glam.ac.uk/staff/dwfarthi/projman.htm
2. http://www.sei.cmu.edu/library/abstracts/reports/89cm021.cfm
Written by:Min Jiang, Feng Fu
Reviewed by:Desheng Huang, Yubo Jia
Date:2013.4.11
110
Syllabus of Software system design and architecture
Course Name/Title:软件系统设计与体系结构
Course code:62960
Course Type: Specialized Course,Optional Course
Total Teaching Hours32 (Classroom Hours: 24 Laboratory Hours or Tutorial Hours 8 )
Course Credit:2
ⅠCourse Objective
This course serves as a major foundation course for senior students, which provides an in-depth knowledge
and understanding in the architectural model and design pattern of modern software systems. It also
introduces the modeling language and tools in constructing software system and key techniques in
applying reusable design patterns to software development. The primary goal of this course is to develop
student’s capability to design and develop a robust software system under the software industry standards.
ⅡCourse Content
Unit 1: Introduction
Credit hours: 2
Learning Objectives:
Software Crisis
Software reusability
Software Architecture
Unit 2: Software Architecture Modeling
Credit hours: 2
Learning Objectives:
Introduction to Software Architecture Modeling
“4+1”view model
Core Model of Software Architecture
Software Life Cycle Model
Unit 3: Software Architecture Style
Credit hours: 4
Learning Objectives:
Introduction
Conventional Architecture Style
Client/Server Style
Browser/Server Style
Unit 4: Unified Modeling Language
111
Credit hours: 2
Learning Objectives:
:
Introduction to UML
Structural Modeling: classes, relationships, class Diagrams, interfaces, packages, and object diagrams.
Behavioral modeling interactions, use cases, use case diagrams, interaction diagrams, activity diagrams,
events, signals, processes and threads.
Unit 5: Design Patterns
Credit hours: 2
Learning Objective:
Concept of design patterns
Principle of design patterns
Various design representations
Unit 6: Creational patterns
Credit hours: 2
Learning Objectives:
Factory method
Abstract factory
Builder
Singleton
Unit 7: Structural patterns
Credit hours: 2
Learning Objectives:
Adapter or Wrapper or Translator
Decorator
Bridge
Flyweight
Façade
Proxy
Composite
Unit 8: Behavioral patterns
Credit hours: 2
Learning Objectives:
Template Method
Observer
Iterator
Chain of Responsibility
Memento
Command
112
State
Visitor
Mediator
Strategy
Unit 9: Integration of Software Architecture
Credit hours: 4
Learning Objectives:
COBRA
EJB
COM
Unit 10: Web Service
Credit hours: 2
Learning Objectives:
Concepts of Web Service
Architecture of Web Service
Core technology of Web Service
Server Oriented Architecture
ⅢPractice Plan and Requirement
There are three course projects that need to be completed in 8 lab classes. The first project is the UML
design of an software system, in which the students are required to use an open source UML modeling
software as the design toolkit to accomplish the preliminary design of a software system under the
industrial standard. The second project consists of 3~4 design pattern programming assignments using Java
language or .net technology, by which the students get a practical training on using typical design patterns
in software development. The third project is to implement MVC using 4 lab classes.
ⅣAutonomous Learning
Teaching and learning activities including self study, face-to-face/online tutorials, discussion forums,
lab/workshop/seminar where applicable, are conducted to encourage interaction among the students and the
subject lecturer.
ⅤAssessment
Performance during class, homework, and participation in class will take up 20% of total score,
experiments will take up 50% and the final exercise will take up 30%.
ⅥTextbooks and References
Textbooks:
Eric J. Braude, Software Design: from Programming to Architecture,2007
113
References:
Bass, L., 1998, Software architecture in practice Reading, Mass.: Addison-Wesley
Braude, E. J., 2004, Software design : from programming to architecture Hoboken, NJ: Wiley
Budgen, D., 1994, Software design Wokingham, England ; Reading, Mass.: Addison-Wesley
Detienne, F., 2002, Software design--cognitive aspects London: Springer
Kruchten, P., 1999, The rational unified process Reading, Mass.: Addison-Wesley
Stevens, W. P., 1991, Software design : concepts and methods New York: Prentice Hall International
Written by:Sun Jing
Reviewed by: Shen Wei, Yubo Jia
Date:Apr. 13, 2013
114
Syllabus of Principles and Design of Embedded System
Course Name/Title:嵌入式系统原理与设计 Course code: 62967
Course Type:Specialized Course, Optional Course
Total Teaching Hours:48 (Classroom Hours: 39, Laboratory Hours or Tutorial Hours: 9)
Course Credit:3
ⅠCourse Objective
Through learning of this course, students should master the basic principles of writing software for
embedded systems; understand the various techniques for dealing with them. In particular, it should be
grasping about the appropriate use of the real-time operating systems upon which much embedded software
is based. In addition to explaining what these systems do, students can use them more effectively. This
course will give students the necessary foundation to work confidently in this field.
ⅡCourse Content
1. A First Look at Embedded Systems (3 teaching hours)
1.1 Examples of Embedded Systems
1.2 Typical Hardware
2. Hardware Fundamentals for the Software Engineer (3 teaching hours)
2.1 Terminology
2.2 Gates
2.3 A Few Other Basic Considerations
2.4 Timing Diagrams
2.5 Memory
3. Advanced Hardware Fundamentals (3 teaching hours)
3.1 Microprocessors
3.2 Buses
3.3 Direct Memory Access
4. Interrupts (3 teaching hours)
4.1 Microprocessor Architecture
4.2 Interrupt Basics
4.3 The Shared-Data Problem
4.4 Interrupt Latency
115
5. Survey of Software Architectures (3 teaching hours)
5.1 Round-Robin
5.2 Function-Queue-Scheduling Architecture
5.3 Real-Time Operating System Architecture
5.4 Selecting an Architecture
6. Introduction to Real-Time Operating Systems (6 teaching hours)
6.1 Tasks and Task States
6.2 Tasks and Data
6.3 Semaphores and Shared Data
7. More Operating System Services (6 teaching hours)
7.1 Message Queues, Mailboxes, and Pipes
7.2 Timer Functions
7.3 Events
7.4 Memory Management
7.5 Interrupt Routines in an RTOS Environment
8. Basic Design Using a Real-Time Operating System (6 teaching hours)
8.1 Overview, Principles, An Example
8.2 Encapsulating Semaphores and Queues
8.3 Hard Real-Time Scheduling Considerations
8.4 Saving Memory Space
8.5 Saving Power
9. Embedded Software Development Tools (3 teaching hours)
9.1 Host and Target Machines
9.2 Linker/Locators for Embedded Software
9.3 Getting Embedded Software into the Target System
10. Debugging Techniques (3 teaching hours)
10.1 Testing on Your Host Machine
10.2 Instruction Set Simulators
10.3 The assert Macro
10.4 Using Laboratory Tools
ⅢPractice Plan and Requirement
116
Needed
Experiment nature
Number
Experiment project
facilities or
Laboratory
experimental
Hours
Content
Requirement
(basic/comprehensive/
of Team
name
(compulsory
design/ research
members
environment
Develop
/optional)
innovation)
a
reusable
software
Experiment 1:
library
Led Scanning
displays
that
Hardware
3
1
comprehensive
3
1
comprehensive
3
1
comprehensive
Laboratory
numbers and
text
on
the
LED array
Make
a
Experiment 2:
Hardware
ringtone
Ring Tone Player
compulsory
Laboratory
player
connect
a
temperature
sensors
and
read
the
Experiment 3:
Hardware
Temperature Sensors
Laboratory
temperature
from
the sensor
ⅣAutonomous Learning
1. According to the textbook recommendation, students can access the related materials from website,
read these materials by self-studying to keep up with the latest technological developments.
2. Students can independently learn hardware and software knowledge in order to complete the
experiments.
ⅤAssessment
The proportion of the course scores as follows:
1. The rate of attendance 20%;
2.The experiment 40%;
3.The end of term exam counts 40%.
ⅥTextbooks and References
117

Textbook
David E. Simon, An Embedded Software Primer, Addison-Wesley Educational Publishers Inc, 1999

References
1. Marilyn Wolf, Computers as Components: Principles of Embedded Computing System Design
(Third Edition), Morgan Kaufmann Publishers In, 2012.
2. V.Carl Hamacher , Zvonko G.Vranesic , Safw, Computer Organization and Embedded Systems
(Sixth Edition), China machine press, 2012.
Written by:Junsong Li
Reviewed by: Wenshu Li, Jingsong Xia
Date:2013/4/11
118
Syllabus of Web programming and database applications
Course Name/Title:Web 编程和数据库应用
Course code:62968
Course Type:Specialized Course,Optional Course
Total Teaching Hours:32 (Classroom Hours: 22
Laboratory Hours: 10 )
Course Credit:2
ⅠCourse Objective
This course is geared to the needs of computer science and technology, one of the optional courses.
Students will be cultivated programming and database application abilities in the Web environment
through learning of this course. The main content of this course include: Web application development
environment, using a scripting language and page design technology, ASP programming technology, Web
database application designing, Web database application instances. The class period is for 22 hours and
experimental period is for 10 hours
After completing the subject, students should be able to:
(1)knowledge objectives
Students should master Web database application design theory.
(2)ability objectives
Students should master a, understand many current commonly used Web database programming
technology.
(3)quality objectives
Students can apply some Web programming technology to solve some practical problems, and have
comprehensive application ability of a Web database application design technology.
ⅡCourse Content
Chapter 1 Web application framework
2 hours
1. Database application architecture and its development;
2. Web applications and its working mechanism;
3. The realization of the dynamic content technology;
4. Classic application and features of Web applications.
Key point:database application architecture。
Difficult point:the dynamic content technology。
Chapter 2 Build a Web application development environment
1. Web application development environment;
2. Set up a Web site;
3. Web site development tools are introduced.
Key point: the server side development environment.
Difficult point: the server side development environment.
119
2 hours
Chapter 3 scripting language
3 hours
1. The JavaScript language foundation;
2. VBScript language foundation;
3. Other scripting languages.
Key point: JavaScript programming basis.
Difficult point: JavaScript programming basis.
Chapter 4 page design
3 hours
1. The static page design;
2. Dynamic page design;
3. The DOM technology;
4. Design of CSS.
Key point: the dynamic page design.
Difficult point: CSS page design.
Chapter 5 ASP programming design
6 hours
1. Summary of ASP
(1) The characteristics, working principle and running environment of ASP,;
(2) The design of simple ASP program.
2. The ASP basement
(1) Using variables;
(2) Using forms;
(3) Using components and objects.
3. ASP built-in objects and application components
(1) Request object;
(2) Response object;
(3) Session object;
(4) Application object;
(5) Server object;
(6) Cookie application.
4. ASP instance
Key point: the ASP built-in objects.
Difficult point: the use of ASP object.
Chapter 6 Web page database connection technology
1. Web database access technology
2. Connection object
3. Recordset object
4. Command object
Key point: recordset object.
Difficult point: command object.
120
4 hours
Chapter 7 comprehensive application instance
12 hours
1. Learning example, Web database programming design steps, the implementation process;
2. Designing database according to the practical application;
3. Designing the user interface according to the practical application;
4. The use of ADO database technology, realizing complete Web application using ASP technology.
ⅢPractice Plan and Requirement
(1)Distribution of scheduling
Teaching method
Teaching hours
theory
practice
exercise
class
seminar
For
note
subtotal
Course content(knowledge units)
Chapter 1 Web application framework
2
2
2
2
Chapter 3 scripting language
3
3
Chapter 4 page design
3
3
Chapter 5 ASP programming design
6
6
4
4
12
12
32
32
Chapter 2 Build a Web application
development environment
Chapter 6 Web page database connection
technology
Chapter
7
comprehensive
instance
total
application
(2)statement
This course is to cultivate students' skills as the main goal, the teaching process should be combined
with a lot of practice operation, so it is suggested that classroom teaching is carried out in a laboratory.
Theory class is for 22 hours in this course, and the experiment class if for 10 hours. Theoretical and
experimental teaching is throughout the course. There are more theory teaching hours in the first 5 chapters,
and the remaining hours is used to guide students to complete the validation of theoretical teaching. The
last two chapters is given priority to with practice, then students complete comprehensive application
example in several hours under the guidance of teachers.
ⅣAutonomous Learning
This course requires students to arrange the corresponding after-school hours’ digestion, skill and prepare
to course content, complete comprehensive application instance, they need more after-school hours for
121
program debugging and testing in the last course. Inside and outside school proportion suggested is 1:2,
outside class hours is about 64 hours.
ⅤAssessment
Final examination 40%
Ordinary work and experiment 20%
Comprehensive application 40%.
ⅥTextbooks and References
textbook:
Wei Shanpei compiled, 《Web database programming and application》, tsinghua university press,
2008.7.
references:
Tie jun compiled, 《Web database technology》, tsinghua university press, 2004.4.
Written by:Chen Qiaohong, Jianping Liu
Reviewed by: Huang Lichan
Date:April 13, 2013
122
Syllabus of Basic Experiments on Information Technology
Course Title:信息技术基础实验
Course code:62986
Course Type:General Course, Compulsory Course
Total Teaching Hours:Laboratory Hours: 32
Course Credit:1
ⅠCourse Objective
Information Technology has evolved over the past five decades in response to the need for more efficient
techniques to manage the significantly increased volume and sophistication of the knowledge reservoir of
mankind. It merges the study of Computer Science, Telecommunications and Office Automation; involves
the collection, storage, accessing, processing and dissemination of information and impacts on both work
and leisure activities.
In order to prepare students to function effectively in a dynamic technological era, the aims of the course
are to develop computer-related skills and encourage the development of analytical and design skills which
are applicable in all areas of the curriculum for the students. And at the same time the development of
computer-related skills for immediate application to other curricular areas is promoted and a foundation for
post-secondary education is provided. It can also facilitate the development and application of
problem-solving skills in students.
ⅡCourse Content
Unit 1: Introduction
Credit hours: 4
Content:

Course Overview

Windows Operation(To become familiar with features of Windows and Windows concepts
and techniques)
Unit 2: IE/OE
Credit hours: 2
Content:

Web Broswer(IE)

Email Client(OE)
Unit 3: Word Processing (Microsoft Word)
Credit hours: 6
Content:

Document Formatting(Page Setup, Character Formatting, Paragraph Formatting)

Picture(Clip Art, Word Art, Organization Chart), Table

Write and Typeset Large Scale Document
Unit 4: Spreadsheets (Microsoft Excel)
123
Credit hours: 6
Content:

Spreadsheet(New, Open, Save, Print, Design & Layout, Format)

Formula & Function

Graphing tools
Unit 5: Presentation (Microsoft PowerPoint)
Credit hours: 6
Content:

Slides(New, Open, Save, Retrieving Presentations)

Slide Formats(Slide Design, Slide Layout)

Incorporating Special Features(Slide Change transitions, Sound Effects, Others)

Adding Custom Animations

Printing Audience Handouts
Unit 6: Web Page Design
Credit hours: 4
Content:

Web Sites & Web Pages(Create, Open, Save, Retrieve and Test web pages)

HTML, Images (Foreground & Background), and Hyperlinks
Unit 7: Database Management(Microsoft Access)
Credit hours: 4
Content:

Designing the schema (data dictionary, or record layout) of a file using a database
management system (i.e., Access)

Entering and editing records, displaying records on the screens, sorting records in a database,
filtering (selecting) records in a database, printing records

Forms, Reports, and Queries
ⅢPractice Plan and Requirement
No.
Project Title
Credit Hours
Nature of Subject
1
Windows Operation
4
Compulsory
2
IE/OE
2
Compulsory
3
Word Processing
6
Compulsory
4
Spreadsheets
6
Compulsory
5
Presentation
6
Compulsory
6
Web Page Design
4
Compulsory
7
Database Management
4
Compulsory
Total
32
ⅣAutonomous Learning
In addition to the basic experiments completed in class, extra-curricular practice is required. In order
124
to consolidate knowledge acquired from the course, students can use the exercises in the course web site for
independent learning. It is convenient for the students to visit the website for course materials, homework
assignments and announcements.
ⅤAssessment
The grading of the course includes three parts, namely ordinary achievement (including class participation,
homework assignments), one project and final exam (The final exam is mandatory to receive a passing
grade and will not be subject to discarding.).
ⅥTextbooks and References
Textbooks
Gary B. Shelly, Misty E. Vermaat. Microsoft Office 2010: Introductory. Course Technology Inc. August
2010
References:
1 Mary Anne Poatsy, Michelle Hulett. Exploring Microsoft Office Word 2010 Introductory. Prentice Hall.
August 2010
2 Robert T. Grauer, Cynthia Krebs. Exploring Microsoft Office PowerPoint 2010 Introductory. Prentice
Hall. August 2010
3 Robert T. Grauer, Mary Anne Poatsy. Exploring Microsoft Office Excel 2010 Introductory. Prentice Hall.
August 2010
4 Robert T. Grauer, Michelle Hulett, Mary Anne Poatsy. Exploring Microsoft Office Access 2010
Introductory. Prentice Hall. August 2010
Written by:Jin Rong, Na Zhang
Reviewed by: Desheng Huang, Yubo Jia
Date:March 2013
125
Syllabus of Curriculum Design for Digital Electronic Technology
Course Name/Title:数字电子技术课程设计
Course code:61981
Course Type: Basic Course , Compulsory Course
Total Teaching Hours:1W
Course Credit:1
I Course Objective
This course is a very important and comprehensive practical aspects of Fundamentals of Digital Electronics
course. After a week of design and production, to enable students to have a more complete understanding
of engineering design and production of more complex digital circuits, master interpret blueprints methods
and familiar LSI operation, test methods, application of computer circuit design, Institute of access to
technical information from a variety of sources and write a more complete design report, so as to lay a solid
foundation for future learning and work.
Knowledge objectives
Course design topic from the actual circuit, the circuit is relatively simple, stereotypes, not real production,
scientific research tasks, so the students can basically rule-based, it is not difficult to complete. The focus
here is to allow students from the theoretical study of the orbit gradually lead to the practical aspects, past
familiar qualitative analysis, quantitative calculation gradual to engineering estimates, experimental
adjustment means combined, master the steps and methods of engineering design to understand procedures
and implementation of scientific experiments. This is undoubtedly enlightenment training for the technical
work in the future
Capability Development
Through the study of this course, students should be given the following capabilities: integrated use of
digital circuits course knowledge and with certain EDA experimental tools, through research, access to
information, and demonstration program with selected, design and select circuits including the components;
assembly and commissioning of circuit test indicators and analysis, discussion, complete the design task.
Quality objectives
Course design can not remain in the theoretical design and written answers, requires the use of
experimental detection means, the theoretical design gradually improve, to make the actual circuit to
achieve the target requirements. In this comprehensive training, students can master the basic method of
circuit design, hands to organize the basic experimental skills, practical skills training to analyze and solve
electrical problems, awareness of engineering, to lay a solid foundation for the design and practical work in
the electronic circuit.
II Course Content
Course design topic should be based on teaching requirements and the actual level of the students,
which is related to the students to complete the case and the teaching effect directly. The main content of
126
digital electronic technology course design topics are the practical application of integrated circuit
electronic devices, has a certain practicality and fun, to reflect the new level of electronic technology. Their
design specifications meet the teaching requirements, and design, installation and commissioning method is
moderate difficulty.
Based on the above guiding ideology, following topics is available:
1. The design of the timer
2. Multi-function digital clock circuit design;
3. The multiple intelligence Responder design;
4. Digital frequency meter design;
5. Digital Multimeter design.
Learning objectives
From the task of course design, it should be through the various aspects of the design work to achieve
the following learning objectives:
1 Students should deepen the understanding of the basic knowledge of digital circuits, to improve their
integrated use of the course knowledge ability.
2 through the analysis of the circuit program, demonstration and comparison, design and select
components, circuit assembly, commissioning and testing, initial grasp of simple and practical methods of
analysis and engineering design of the circuit method.
3 To master the proper use of the equipment and the common EDA tools, also learn simple circuit
experimental testing and the whole index test method to improve the students’ abilities in electronic circuit
experiments.
Course design teaching requirements
Course design task book should state:
1 Design topic
2 The main technical specifications and requirements
3 The conditions and equipment
4 References
Explain the circuit schematic and design methods in teaching process, if need to deepen and extend
knowledge, also supplement teaching content to help students clear mandate, master the design method.
Under the guidance of teachers, the students choose a design topic, then complete the pre-design. After
teachers review the pre-design, you can begin the installation and commissioning. Teachers should
strengthen the guidance for students. Anomaly or fault, especially in the circuit, to help students in
accordance with the measurement observation, find out the reasons, adjustment circuit, to solve the
problem in the circuit.
Circuit debugging meet the design requirements, students should make the whole design process
summary report in a certain format.
The main content of the course design report:
127
1 Design topics;
2 The specifications and requirements;
3 Selection and circuit works;
4 The unit circuit design, component selection, draw a circuit diagram;
5 Installation, commissioning problems encountered, the solution, and the experimental results;
6 The circuit performance indicators test results, meets the requirements and evaluation of the results;
7 harvest, experience and recommendations to improve the design.
ⅢPractice Plan and Requirement
Theoretical teaching part:
Experimental project:
Theoretical
teaching content
(Knowledge units)
Experimental
teaching content
(Sub-item )
hours
hours
Introduce design
topics,
working
principle, design
requirements,
design
report
format and Notes
2
Circuit
hardware design
4
Design and
production
methods
1
4
Debugging
method
1
Learn to use the
EDA tools such
as
Protel,
Multisim
Overall circuit
simulation and
debugging, to
record the
parameters, test
the
corresponding
indicators
6
Completion of
the course
design report
2
Total hours
16
Subtotal hours
4
128
Experi
ment
propert
y
Design
Experime
ntal sites
equipment
Laborator
y
DC
power
supply, signal
sources,
oscilloscopes
and
other
electronic
technology
laboratory
equipment
verifica
tion
Laborator
y
Design
Laborator
y
Computer 、
Protel
,
Multisim, et
al.
Computer,
Protel and
Multisim, etc.
DC power
supply, signal
sources,
oscilloscopes
and other
electronic
technology
equipment
Laborator
y
Requirement
Digital electronic technology course design as a centralized practical teaching should focus on
improving students' self-learning ability, independent analysis, problem-solving skills and hands-on circuit
experiment.
To develop students' self-learning ability, according to the design task teachers should be propose
bibliography for students learning on it.
To improve the hands-on ability, the key is to inspire students to combine brains and hands. From
design, calculation, select the beginning of the components, in accordance with the need to develop their
own experimental content and steps, optional equipment, independent testing and record the experimental
results to make the analysis, processing, make a good circuit, always by their own completion of the hands,
is conducive to the growth of the practice ability.
Teaching arrangements
Course design generally be divided into three stages:
1 Pre-design phase: including teaching, feasibility studies, design and complete the pre-design.
2 Installation and commissioning phases: assembly circuit debugging and testing, to complete the
actual circuit.
3 Summary report stage: including a summary of the design work, write a design specification and the
final assessment
4. Practice teaching environment (laboratory, equipment and software):
Need experimental space, electronic equipment, EDA tools, multimedia teaching conditions.
IV Autonomous Learning
1 Students can be combined the course design task book and the instructor lectures, to find the
relevant information in the library or on the network.
2 Students can download some development software (if necessary), operate these software using
spare time.
V Assessment:
Examination results including the theoretical design and course design report, installation and
commissioning, the respondent, attendance and other parts, each part of the proportion is as follows:
1 Theoretical design and course design report: including the demonstration program, the circuit
works, unit circuit design, component selection, circuit works, general layout and summary of design work,
write the course design report: 20%
2 Installation: assembly circuit debugging and testing, to complete the actual circuit: 50%
3 Respondent: oral presentation: 20%
4 Attendance: 10%
129
VI Textbooks and References
1 Textbooks
Binggen Ma, Electronics Course Design Guide(Handout),Zhejiang Sci-Tech University,
2007.
Description: If choose the new design topic, you should rewrite course design guide books.
2 References
1 Shufan Zhao, Electronic technology experiment and course design, Tsinghua University Press,
2008.
2 Jiangjun Hou, Electronic technology experiments, Comprehensive design experiment and course
design,Higher Education Press, 2008.
Written by:Xiaowei Gu, Liping Yan
Reviewed by:
Xiaomin Bao, Xusheng
Jiang
Date:Apr. 10, 2013
130
Syllabus of Curriculum Design for Data Structure and Algorithm
Course Name/Title:数据结构与算法课程设计 Course code:62982
Course Type: Basic Course, Compulsory Course
Total Teaching Hours:1W
Course Credit:1
I Course Objective
This course is a very important and comprehensive practical aspect of Fundamentals of Data Structure and
Algorithm course. After a week of design and programming, to enable students to have a more complete
understanding of algorithm design and analysis of more complex problem, testing methods, application of
computer design, Institute of access to technical information from a variety of sources and write a more
complete design report, so as to lay a solid foundation for future learning and work.
Knowledge objectives
Course design topic from the actual problem, the problem is relatively simple, stereotypes, not real
scientific research tasks, so the students can basically rule-based, it is not difficult to complete. The focus
here is to allow students from the theoretical study of the orbit gradually lead to the practical aspects, past
familiar qualitative analysis, quantitative calculation gradual to engineering estimates, experimental
adjustment means combined, master the steps and methods of programming design to understand
procedures and implementation of scientific experiments. This is undoubtedly enlightenment training for
the technical work in the future
Capability Development
Through the study of this course, students should be given the following capabilities: integrated use of
Data structure and algorithm course knowledge and with certain programming tools, through research,
access to information, and demonstration program with selected, design and discussion, complete the
design task.
Quality objectives
Course design can not remain in the theoretical design and written answers, requires the use of
experimental detection means, the theoretical design gradually improve, to make the actual programming
to achieve the target requirements. In this comprehensive training, students can master the basic method of
algorithm design, hands to organize the basic testing skills.
II Course Content
Course design topic should be based on teaching requirements and the actual level of the students, which is
related to the students to complete the case and the teaching effect directly. The main content of Huffman
coding technology course design topics has a certain practicality and fun, to reflect the new level of
131
programming technology. Their design specifications meet the teaching requirements, and design.
Based on the above guiding ideology, following topics is available:
1. The design of the Huffman tree;
2. The establishment and traversal of binary tree;
3. The establishment of Huffman tree and achievement of coder;
4. Digital frequency meter design;
5. The design and achievement of Huffman coder and decoder;
Learning objectives
From the task of course design, it should be through the various aspects of the design work to achieve the
following learning objectives:
1 Students should deepen the understanding of the basic knowledge of binary tree by the inorder
traversal, to improve their integrated use of the course knowledge ability.
2 through the analysis of the binary tree program, demonstration and comparison, design and testing,
initial grasp of simple and practical methods of analysis and programming design of the Huffman tree
coder method.
3 To master the VC 6.0 programming tools, also learn the simple method of programming testing to
improve the students’ abilities.
Course design teaching requirements
Course design task book should state:
1 Design topic
2 The main technical specifications and requirements
3 The conditions and equipment
4 References
Explain the Huffman coder and design methods in teaching process, if need to deepen and extend
knowledge, also supplement teaching content to help students clear mandate, master the design method.
Under the guidance of teachers, the students choose a design topic, and then complete the pre-design. After
teachers review the pre-design of binary tree, you can begin the programming and testing. Teachers should
strengthen the guidance for students. By debugging anomaly or fault of the program of Huffman coder and
decoder, it’s to help students in accordance with the corporation demand.
The main content of the course design report:
1 Design topics of binary tree and Huffman tree;
2 The specifications and requirements;
3 the establishment of Huffman tree and coder;
4 the establishment of Huffman decoder;
5 The test results, meets the requirements and evaluation of the results;
132
ⅢPractice Plan and Requirement
Theoretical teaching part:
Experimental project:
Theoretical
Experimental
teaching
content
hours
(Knowledge units)
Introduce
hours
(Sub-item )
Experiment
Experime
property
ntal sites
equipment
Huffman
tree’s principle, and
use
teaching content
instruction
programming
of
tools,
Huffman
1
tree’s
design
5
Design
Software
Lab
design report format
Computer
(XP)and
VC6.0
and Notes
Learn to use the
Design Huffman coder
and decoder
1
programming
tools
such
as
3
verification
Software
Lab
VC6.0
Debugging
program
2
(XP)and
VC6.0
the
of
Huffman coder, to
Debugging method
Computer
record
the
parameters,
test
6
establishment
Software
(XP)Computer
Lab
and VC6.0
the corresponding
indicators
Completion of the
course
design
2
report
Subtotal hours
4
Total hours
Software
Lab
16
Requirement
Data structure and algorithm course design as a centralized practical teaching should focus on
improving students' self-learning ability, independent analysis, problem-solving skills and hands-on circuit
experiment.
To develop students' self-learning ability, according to the design task teachers should be propose
bibliography for students learning on it.
Teaching arrangements
Course design generally is divided into three stages:
1 Design phase: including teaching, feasibility studies, design and complete the design.
2 Installation and commissioning phases: programming and testing, to complete the actual target.
3 Summary report stage: including a summary of the design work, write a design specification and the
final assessment
133
4. Practice teaching environment (laboratory, equipment and software):
Need experimental space, computer, programming tools, multimedia teaching conditions.
IV Autonomous Learning
1 Students can be combined the course design task book and the instructor lectures, to find the
relevant information in the library or on the network.
2 Students can download some development software (if necessary), operate these software using
spare time.
V Assessment
Examination results include the theoretical design and course design report, installation and
commissioning, each part of the proportion is as follows:
1 Theoretical design and course design report: including the demonstration program and summary of
design work, write the course design report: 60%
2 Respondent: oral presentation: 30%
3 Attendance: 10%
VI Textbooks and References
6.1 Textbook

Mark Allen Weiss, Data Structures and Algorithm Analysis in C, Addison-Wesley,2010
6.2 References

维斯(美国)(冯舜玺译),数据结构与算法分析:C 语言描述(原书第 2 版). 北京:机械工业出
版社, 2004

Clifford A.Shaffer.A Practical Introduction to Data Structures and Algorithm Analysis(影印版),
第 2 版.北京:电子工业出版社,2002

Horowitz E,Sahni S.Fundamentals of Data Structures.Pitmen Publishing Limited,1976

李文书, 王松, 贾宇波, 安立新, 董建民, 王根岭、马国兵等编著. 数据结构与算法应用实践教程
[M]. 北京:北京大学出版社. 2012

李文书, 贾宇波, 桂江生等编著. 数据结构重点难点问题剖析[M].
浙江:浙江大学出版社.
2010
Written by:Wenshu Li, Qi Sun
Reviewed by: Lican Huang
Date:Apr. 16, 2013
134
Syllabus of Curriculum Design for Object-Oriented Programs
Course Name/Title:面向对象程序课程设计
Course code:62989
Course Type:Basic Course, Compulsory Course
Total Teaching Hours:1week (Laboratory Hours or Tutorial Hours:20)
Course Credit:1
ⅠCourse Objective
The goal of this course is to introduce how to use Object Oriented Programming (OOP) knowledge to
develop an application system. In this course, the programming language is C++ .
After completing the study of this course, students are required to develop a small application system
based on OOP technical view.
ⅡCourse Content
Unit 1:Auto Seller
Contents:
The students is required to write a C++ program to simulate an auto seller. The data structure and
module are designed by themselves.
Requirements:
1)
Write a console C++ program to make it;
2)
The OOP technology must be used in the program;
3)
Some files need to be used to save information of goods.
4)
There is no bug in the program.
ⅢCourse Hours and Teaching Methods
Course Hours::
Methods
hours
Therory
excises
test
note
sum
Contents
Project analyses
2
Day1
Programming 1
2
4
Programming 2
2
Day2
135
Programming 3
2
4
Programming 4
2
Day3
Programming 5
2
4
Programming 6
2
Day4
Programming 7
2
4
Programming 8
2
Day5
Test
Total
2
16
2
4
2
20
ⅣAutonomous Learning
1.
Students can visit the following Web: http://bbs.csdn.net/, the branch C/C++, to get various
materials.
ⅤAssessment
1.
The exam score is consisted Final Exam (50%) and report (50%).
2.
The types of final exam may include the exam types programming and report.
ⅥTextbooks and References
Textbook:
E Balagurusamy, Object Oriented Programming With C++ Fourth Edition. 清华大学出版社. 2009.9.
References:
1)(美)李普曼(Lippman,S.B.), (美)拉乔伊(Lajoie,J.), (美)默 Moo,B.E.), C++ Primer Fifth Edition, 电
子工业出版社,2013.5。
2)(美)Bruce Eckel, Thinking in C++ Second Edition Volume One: Introduction to Standard C++,机械
工业出版社, 2002-9-19
Revised by: Shenwei, Qiaoli Zhuang
Reviewed by:
Desheng Huang
Date:April 9, 2013
136
Syllabus of Curriculum Design for Assembly Language
Course Name/Title:汇编语言课程设计
Course code:62984
Course Type:Basic Course, Compulsory Course
Total Teaching Hours:20 (Classroom Hours: 4, Laboratory Hours: 16)
Course Credit:1
ⅠCourse Objective
This is a course in assembly language programming for IBM PCs and compatibles. This course introduces
assembly language including basic instructions, number systems, information move, integer arithmetic,
subroutine linkage, memory allocation, bit manipulation, floating point arithmetic, macro definition and
conditional assembly, the program status word, interrupt and I/O structure. This supplements the student's
knowledge of high-level programming in C and Java.
After successfully completing this course, the student should be able to: explain the 80x86 architecture,
including registers and segment: offset addressing; describe different ways data are represented in a
computer and work with binary and hexadecimal numbers; describe the functions of an assembler;
implement program designs in 80x86 assembly language, including: writing, documenting, testing and
debugging a program in PC assembly language; manipulating strings; coding basic algorithms such as
searching and sorting in assembly language; calling and passing parameters to subroutines; utilizing DOS
functions; and interfacing with a high level language; explain how the underlying hardware affects software
design and performance; appreciate the factors that contribute to program efficiency.
ⅡCourse Content
1. Writing an arithmetic calculation program which can finish addition, subtraction, multiplication
and division of two signed decimal numbers, and the entered formula shows as the following
examples:
(-278)+32=
(-132)―(―12)=
11*(-32)=
(-1234)/(-18)=
The program can receive formula input, and calculate and display the result in signed decimal
form after ‘=’ received. If the formula is followed by ‘.’, the result will be displayed and the
program will end.
2. Given a string of English word by lexicographic row with a space character followed at end of
137
each word, the first two bytes of the string represent an unsigned binary number for a description
of the length of the string. A program is required to design to receive a word followed by a space
character. If not included in the string, the word will have to be inserted into the string in the right
place so that the string remains lexicographic and the length of the string will have to be modified.
The position of the word and the new length of the string will be displayed. If the string includes
the word, the position of the word and all words consisting of the word in the string will be
displayed.
3. Designing a program to make the computer a “piano”. When the number keys from 0 to 9 pressed,
such ten tones as 6.
,7.
,1,2,3,4,5,6,7,i will be issued and when ‘.’ pressed the “piano
state” exits.
ⅢPractice Plan and Requirement
Experiment
Name
Experiment
Content
Laboratory
Hours
Number
of
People
of Each
Group
Experiment
1: Decimal
Calculator
1. Writing
a
decimal
arithmetic
calculation
program
which
can
finish
addition,
subtraction,
multiplication
and division
Software
Laboratory
of School of
Informatics
10
(8+2)
1
Experiment
2:
Characters
Handling
Program
Writing
a
program to
receive
character and
handling
them
according to
the
requirements
Software
Laboratory
of School of
Informatics
5
(4+1)
1
Programming
Writing
a
program to
Experiment make
the
3: “Piano” computer act
program
as a “piano”
to issue ten
tones
Software
Laboratory
of School of
Informatics
5
(4+1)
1
Programming
Experiment
Property
Fundamental
Requirement
Compulsory
ⅣAutonomous Learning
During the curriculum design, corresponding 20 extracurricular hours are necessary to digest and grasp the
knowledge of assembly language at an inside and outside class hours’ ratio of 1:1.
ⅤAssessment
Experiment report and programs assessment will be graded by five-score: A, B, C, D, E.
138
Grades will be assigned based on the following weights: programs as 60%, experiment report as 30%, and
usual performance as 10%.
ⅥTextbooks and References
Textbooks:
Assembly Language for x86 Processors, Sixth Edition (English reprint edition), by Kip R.. Irvine,
Pearson Education Asia Limited and Tsinghua University Press, 2011.
References:
IBM PC Assembly Language and Programming, Fifth Edition (English reprint edition), by Peter
Abel, Pearson Education Asia Limited and Tsinghua University Press, 2006.
Written by:Feng Fu, Yubo Jia
Reviewed by: Wei Shen
Date:2003.4.11
139
Syllabus of Curriculum Design for Computer Architecture Principles
Course Name/Title:计算机组成原理课程设计
Course code:62988
Course Type:Basic Course, Compulsory Course
Total Teaching Hours:1 week (Classroom Hours: 1day Laboratory Hours or Tutorial Hours: 4 days)
Course Credit:1
ⅠCourse Objective
Curriculum Design for Computer Architecture Principles is a compulsory practical course for student of
computer science and technology. Through learning of this course, students should deeply understand the
execution process of the various instructions and the composition of the controller, moreover further grasp
specific knowledge of the design microprogram instruction and the concept of dynamic
microprogramming , complete computer instruction system design and debug. This should improve
students' skills in analyzing problems and solving problems by themselves.
ⅡCourse Content
1. Design Instruction Format (1 day)
1.1 Analyze the instruction function.
1.2 Design several new machine instruction formats.
2. Design Microprogram (2 days)
2.1 According to the format of the TEC-2 machine instruction and the usage of AM2910 chip,
design microinstruction.
2.2 Allocate the entry address of microprogram and load microprogram into the control memory.
3. Test Instruction (2 days)
3.1 Learn the basic steps and methods of testing instruction function, and design test procedures.
3.2 Design experimental data, test and debug instruction function.
3.3 Complete experimental report.
140
ⅢPractice Plan and Requirement
Experiment
Needed
Experiment
facilities or
Laboratory
experimental
Hours
Content
project name
Number
nature(basic/
Requirement
of Team
comprehensive/
(compulsory
members
design/research
/optional)
environment
innovation)
Hardware
Analyze
the
instruction
1.Design
laboratory,
function; Design several
Instruction
TEC-2
4
1
design
8
1
design
new machine instruction
Format
experiment
formats.
box
According to the format of
the
TEC-2
machine
instruction and the usage of
Hardware
AM2910
laboratory,
chip,
design
2.Design
microinstruction; Allocate
TEC-2
the
experiment
Microprogram
entry
address
of
microprogram
and
load
microprogram
into
the
box
compulsory
control memory.
Learn the basic steps and
methods
of
testing
Hardware
instruction function, and
laboratory,
3.Test
design
test
procedures;
Instruction
Design experimental data,
TEC-2
4
experiment
test and debug instruction
box
function;
Complete
experimental report.
141
1
design
ⅣAutonomous Learning
Students can study the following topics by themselves:
1. Learn the machine instruction format of TEC-2.
2. Learn the instruction execution process of TEC-2
3. Learn assembly language and debugging process.
ⅤAssessment
The proportion of the course scores as follows:
1. The rate of attendance 10%;
2.The operation ability 30%;
3.The report 30%;
4.The reply 30%.
ⅥTextbooks and References

Textbook
TEC-2 Manual, school printing

References
3. William Stallings, Computer Organization and Architecture Designing for Performance (Eighth
Edition), Pearson Education, 2010.
4. 王诚, 计算机组成原理实验指导书,清华大学出版社,2005.
Written by:Junsong Li, Jianlong Xu
Reviewed by: Wenshu Li
Date:2013/4/11
142
Syllabus of the Subject Practice
Course Name/Title:毕业设计(论文)
Course code:62550
Course Type:Specialized Course, Practice Course
Total Teaching Hours:16weeks (Laboratory Hours or Tutorial Hours:320)
Course Credit:8
ⅠCourse Objective
The Subject Practice is the last important course and the most comprehensive practice step during the
undergraduate education. The goals of the course are listed below.
6) It is the training of scientific thinking and spirit.
7) It is the training of the ability to solve scientific and technical problems.
8) It is the training to improve the information literacy.
9) It is the training of the ability for cooperative work.
10) It is the training to master some general methods for scientific and technical research.
ⅡCourse Content
1. Rules of subject selection
The subject is presented by tutors, checked by chairman of the department, confirmed by college
academic committee.
The rules are listed below.
1) The subject is fit for computer major;
2) The subject is practical as much as possible;
3) The work of coding is enough to create a program;
4) Each students should practice an independent subject;
5) The subject should be a part of a scientific or technical project as much as possible;
6) If the subject originates from non-computer field, there must be enough work corresponding to
computer hardware or software.
2. Contents
1) A student must make a plan based on his subject;
2) A survey must be made based on the related work. A translated pater of related work must be
submitted by each student.
3) A scheme of the subject should be design by each student;
4) The design or program should be made independently and accord with corresponding
143
specifications;
5) The test methods should be designed, and the test result should be analyzed;
6) Based on above, a thesis must be presented;
7) Thesis defense.
3. Tutors’ work
1) Tutors design some subjects and submit them to college academic committee. The approved
subjects are selected by students;
2) Give enough advice to students, and record the steps;
3) Give some suggestion on the thesis, survey, paper translation.
ⅢCourse Weeks and Teaching Methods
Course Weeks::16 weeks
No.
1
Project Title
Subject selection, resourcing,
translation, survey, opening,
Course weeks
Nature of Subject
3
Compulsory
2
Scheme, development
10
Compulsory
3
Thesis
2
Compulsory
4
Thesis defense
1
Compulsory
Total
16
ⅣAutonomous Learning
2.
Students should work independently based on the requirements of tutors.
ⅤAssessment
3.
The exam score is consisted of three parts listed below.
1) Tutor score: 30%;
2) Reviewer score: 30%;
3) Thesis defense score: 40%.
4.
Grading system.
1) Excellent;
2) Good;
3) Medium
4) Pass;
5) Failure.
ⅥTextbooks and References
144
3.
Subject practice specification of Sci-Tech University, 2008.
4.
Subject practice manual of information college, Sci-Tech University, 2010.
Revised by: Yubo Jia, Shenwei
Reviewed by: Na Zhang
Date:April 9, 2013
145
Syllabus of Practice of Database System
Course Name/Title:数据库系统实训
Course code:62981
Course Type:Specialized Course,Optional Course
Total Teaching Hours:4weeks (Laboratory Hours or Tutorial Hours:80)
Course Credit:3
ⅠCourse Objective
The goal of this course is to introduce and practice technical knowledge in application of database systems.
Topics cover the concept of B/S, C/S, SQL, View, Stored Procedure, Trigger and How to make a whole
database project .
After completing the study of this course, students are required to have an overview of how to develop a
database system in application.
ⅡCourse Content
Unit 1:Introduction & basics
Reference period: 1 week
Learning contents:
1) Database system development introduction
2) B/S, C/S
3) SQL
4) Database, Table, Key, Constraint
Unit 2:Stored Procedures
Reference period: 1 week
Learning contents:
1) Stored Procedure
2) Cursor
Unit 3:Views & Triggers
Reference period:1 week
Learning contents:
1) Views
2) Triggers
Unit 4:Complex project
Reference period:1 Week
146
Learning contents:
1)
Make a whole database project
Reference period:6 class hours
ⅢCourse Weeks and Teaching Methods
Course Weeks::
No.
1
Project Title
Sqlserver installation, Create &
manage database
2
Use
Management
create
&
Studio
manage
Credit Hours
Nature of Subject
4
Compulsory
8
Compulsory
16
Compulsory
to
tables,
manipulate data in tables
3
Use T-SQL to create & manage
tables, and manipulate data in
tables
4
Stored procedure
12
Compulsory
5
Trigger
12
Compulsory
6
Database management system
28
Compulsory
programming
Total
74
ⅣAutonomous Learning
1.
Students can visit the following Web: http://bbs.csdn.net/, the branch MSSQL SERVER to get
various materials.
ⅤAssessment
1.
The exam score is consisted of Experiment (50%) and Final Exam (50%).
ⅥTextbooks and References
Textbook: Same as the course Introduction to Database System A*.
References:
1)(美)Abraham Silberschatz, Henry F. Korth, (印)S. Sudarshan, Database System Concepts Sixth
Edition, 机械工业出版社, 2013 年 1 月
Revised by: Shenwei, Jianping Liu
Reviewed by: Wenshu Li
Date:April 9, 2013
147
Syllabus of Computer English Training
Course Name/Title:专业英语实训
Course code:62690
Course Type:Specialized Course,Optional Course
Total Teaching Hours: 6 weeks (Classroom Hours: 6 weeks)
Course Credit:3
ⅠCourse Objective
The course aims to provide a close view of the fields that computer English is involved in. After learning,
students should get a certain level in listening, speaking, reading, writing and translation using computer
English. Can translate professional material. Can finish simple oral and written in academic work. The
most important purpose is to strengthen and increase the practical skills in computer English. It aims to
build competence, fluency and confidence in learners and increase their career prospects.
ⅡCourse Content
Unit 1: Reading skills
Credit hours: 1 week
Learning Objectives:
Reading different articles, such as expositions , arguments, news, advertisements
Unit 2: Writing skills in Email
Credit hours: 1 week
Learning Objectives:
Master the writing skills in Email
Unit 3: Writing skills in Commercial Letters
Credit hours: 1 week
Learning Objectives:
Master the writing skills in commercial letters
Unit 4: Listening and Speaking -- telephone
Credit hours: 0.5 week
Learning Objectives:
Master listening and speaking skills in telephone
Unit 5: Instructions
Credit hours: 0.5 week
Learning Objectives:
Master the writing skills in instructions
Unit 6: Writing Research Papers
Credit hours: 1 week
148
Learning Objectives:
Master Usage, Style, and grammar in writing research papers
Unit 7: Commercial Convenance
Credit hours: 0.5 week
Learning Objectives:
Master commercial convenance
Unit 8: Review and Test
Credit hours: 0.5 week
ⅢAutonomous Learning
Attendance at lectures is expected. Students are fully responsible for all material presented in lectures, even
if some of it does not appear in the "official" lecture notes. Class attendance is recommended strongly.
Lecture notes will be made available. Watch for an announcement of their availability. Some topics will be
set for self-study.
ⅣAssessment
Performance during class, homework, and participation in class will take up 40% of total score, and the
final exercise will take up 60%.
ⅤTextbooks and References
Textbooks:
William Sanborn Pfeiffer, Technical communication- A Practical Approach, Sixth Edition, 2006,
Publishing House of Electronics Industry
References:
David Rosenwasser,Jill Stephen ,Writing analytically,BeiJing university Press,2008
Resources:
1.
http://www.hujiang.com/
2.
http://www.koolearn.com/
Written by:Sun Jing
Reviewed by: Huang Li Can, Yubo Jia
Date:Apr. 13, 2013
149
Syllabus of Field practice in embedded system
Course Name/Title:嵌入式系统实训
Course code:62985
Course Type:Specialized Course, Optional Course
Total Teaching Hours: 6 weeks ( Laboratory Hours or Tutorial Hours 6 weeks
)
Course Credit:3
ⅠCourse Objective
The course covers the following areas: development environments for embedded software, resource aware
programming, hardware programming, developing multi-threaded software, inter-process communication
with shared memory and message passing, programming using real time operating systems, fault detection
and testing, and fault tolerance and fault recovery.
Meanwhile, this class will also combine a rigorous examination of the tools and techniques used for
programming these mobile devices. The student will develop programs for a number of different phones
including iPhone and Android phone.
After the Field Practice, the students may have:
Develop embedded software of high quality using high level programming in e.g. C.
Develop embedded systems based on real time operating systems.
Develop software on hardware platforms taking limitations such as memory size, processor capacity, and
bandwith into account.
Develop reliable software taking fault tolerance and recovery into consideration.
Develop correct and efficient software using fault detection and other test systems.
Software Design for Handheld Devices
ⅡCourse Content
Practical training is divided into four stages. Phase I, be familiar with embedded system’s instruction set
and architecture. Phase II, master how to drive embedded hardware in c and assembly language. Phase III,
Software Development in real time RTOS environments. Phase IV, Android platform development.
Through 4 stages of learning, students should be able to complete embedded system on multiple levels of
integrated and innovative experiments.
Phase I: be familiar with embedded system instruction set and architecture(1Week)
1、 Teaching requirements: Introduction to embedded system development environment
1) ARM development tools
2) ARM Programmer's Model and addressing (data type, processor model, ARM registers,
150
instruction addressing, memory access instruction addressing mode
3) ARM Assembly language and c language programming
4) Remote debugger setup and practices
5) Introduction to embedded system development environment
2、 Lab: instruction set Experiment consists of 3 basic lab, that is:
1) Basic instruction training.
2) data removal instructions practice
3) Bootloader: modification, compiler, install and observation
Phase II: Drive embedded hardware in c and assembly language.(1Week)
1、 Teaching requirements: pipeline, interrupt, I/O management, and hardware knowledge, students need
to write a program in Assembly, c and mixed methods to drive the hardware.
Focus: understanding of c and assembly code efficiency in the control and treatment , understanding
the method to drive embedded system hardware.
2、 Lab: hardware driven Labs, that is:
1) ARM serial port driver lab
2) keyboard and LED driven—C implements
3) keyboard and LED driven—Assembly implements
4) CAN-bus communication Lab
Phase III: embedded system software design in real time operating system environments (1
week)
1、 Teaching requirements: Embedded systems software programming and software design of real time
operating system environment. Cross-compiler technology, default behavior of compiler, adjust the c
library to fit the target hardware, embedded kernel debugging, system portable, ICE tools, interrupt
and task scheduling of real-time OS, inter-process communication (queues, messages, semaphores, and
events), μ C/OS-II principle and ARM transplants.
Focus: real-time OS, embedded system software architecture, real-time OS services, real-time OS
porting on ARM platforms.
2、 Lab: integrated and fundamental experiments:
1) experiment of timer interrupts and drivers
2) Bootloader experiment
3) Port μ C/OS-II on the ARM
4) μC/OS-II development framework
Phase IV: Android platform application development (3 weeks)
1、 class presentations: Android is an package of software stack including operating system, middleware
and some key applications for mobile devices. Android middleware includes a JAVA virtual machine,
151
running on the Linux 2.6 kernel, on which the applications are based on JAVA.
2、 This stage can be divided into 3 smaller stages, the first stage is the Foundation, students will learn
about ANDROID development at this stage, focus on of development environment configuration,
combined with the theory and practice of they engaged before. The 2nd and 3rd stages are innovative
and comprehensive experiments. Students may choose the following experiments under the guidance
of the teacher.
3、 Attention will be given to the details necessary for developing fully functional applications such as
games and business tools. Programs will be developed to run within the emulators that are part of the
development tools, however real devices can be used if the student wishes to provide their own.
Specific attention to topics that are unique to handheld devices: designing for limited screen size and
constrained resources, cross platform development, portability, on-device testing and performance
issues. The topic can be as follows:
 Device and Network architecture
 Developing Objective C applications for iOS devices (iPhone and iPad)
 Developing Java applications for Android devices
 Development Tools
 Networking, Wireless Messaging
 Performance Optimization and Tuning
 Design for portability
 Testing and Debugging
1) ⅢPractice Plan and Requirement
The
Name
Lab
Content
Lab
number
Proper
Hour
students/
ty*
class
Unit 1
1) Basic instruction training.
Software
2) data removal instructions practice
lab
3)Bootloader:
modification,
1week
60
basic
1week
60
basic
Compul
sive/opti
onal
compiler,
install and observation
Unit 2
1) ARM serial port driver lab
2)
keyboard
and
LED
Software
driven—C
lab
ive
implements
3)keyboard and LED driven—Assembly
implements
4) CAN-bus communication Lab
Unit 3
1) experiment of timer interrupts and
Software
152
compuls
1week
60
Basic
drivers
lab
and
2) Bootloader experiment
syntheti
3) Port μ C/OS-II on the ARM
cal
4)μC/OS-II development framework
Unit 4
1) Device and Network architecture
Software
2)Developing Objective C applications for
lab
3week
iOS devices (iPhone and iPad)
3)Developing
Java
applications
60
Synthet
ical and
creative
for
Android devices
4)Development Tools
5)Networking, Wireless Messaging
6)Performance Optimization and Tuning
7)Design for portability
8)Testing and Debugging
*(property of experiments can be basic/synthetical/research/innovation)
(A) instructions
1. Content and requirement of Practical training report
The report is composed of two parts; base section includes the lab purpose, content, design idea,
source code and the main achievements. Synthesis part concerns with the team's choice of subject and
describes the project requirements, goals, design and implement by the way of software engineering
methodology.
2. Organization
Unit 1, unit 2 and unit 3 are compulsive, and are same to all students. At phase IV, the students are
divided into teams, and should make decision to have the team target and do some research together.
Identification of faculty supervisor(s), topic, objectives, deliverables and work plan; regular work during
semester with weekly coordination meetings of about 1 hour duration with the faculty supervisor, and an
end-semester demonstration to Project Evaluation Committee.
This unit will be an examination of the tools and techniques used for programming mobile devices in
Java. The student will develop programs for Android phones. Attention will be given to the details
necessary for developing fully functional applications such as games and business tools. Programs will be
developed to run within the emulators that are part of the development tools, however real devices can be
used if the student wishes to provide their own. Specific attention to topics that are unique to handheld
devices: designing for limited screen size and constrained resources, cross platform development,
portability, on-device testing and performance issues.
153
ⅣAutonomous Learning
ⅤAssessment
The final grade for the course will be based on the following weights:
•40% personal achievement, including software and hardware results, to calculate way of thinking to
solve the problem on or about.
•20% Class Participation: personal activity assessment in the class and team group.
•40% Team work achievements: marks to be decided on the basis of an end-semester presentation
following the demonstration the approved work plan. The topic should be of advanced standing
requiring use of knowledge from program core courses and be preferably hardware oriented.
The purpose of these different instruments is to have a positive learning experience, critical thinking
about embedded system issues, and some sound grasp of fundamentals.
ⅥTextbooks and References
Text
Simon, David E. An embedded software primer, Addison-Wesley, 1999
References
Marwedel, Peter, Embedded system design. Springer, cop. 2006
Patterns for time-triggered embedded systems : building reliable applications with the 8051 family of
microcontrollers,Harlow : Addison-Wesley, cop. 2001
Zigurd Mednieks, Laird Dornin, Programming Android. O'Reilly Media; 1 edition,2011
Written by:Jinsong Xia
Reviewed by:Desheng Huang, Junsong Li
Date:2013.04.11
154
Syllabus of Web Project Practice
Course Name/Title:Web 项目实践
Course code:62672
Course Type:Specialized Course, Optional Course
Total Teaching Hours:6 weeks of Laboratory Hours
Course Credit:3
ⅠCourse Objective
Web Project Practice is a comprehensive curriculum, it is designed for those students whose direction
of research is Software Engineering. Training students' ability of applying theory to practice is the
major purpose of this course. After learning this course, students’ knowledge systems of Web
Programming, Database Management System and Software Engineering are established and improved,
the student’s ability to find, analyze and solve problems will be greatly improved as well. All these
will lay a solid foundation for their graduation projects and employment.
ⅡCourse Content
1. Explanation of project’s development process
Content: Introduction to project’s development process, specifications for daily reports, software
development documentation and methods of writing document.
Objective: To study web project’s development process, requirement for project management and
methods of writing document, so as to lay a good foundation for the future work.
2. Analysis of project requirements
Content: Analyze details of project requirements.
Objective: To understand what functions system should have.
3. Explanation of software development plan
Content: Explanation of software development plan and task scheduling.
Objective: To clear the arrangement of each development stage and which module should be
developed for everyone.
4. Detailed design
Content: System pages are developed according to requirements. Sequence diagrams are drawn
for the developed system, finally the documentation of detailed design is finished.
Objective: Prepared for coding.
5. Coding
Content: Coding by detailed design.
Objective: Students’ Coding ability and problem solving ability are trained.
6. Explanation of software testing method and arrangement of testing plan
Content: Software testing method is taught to students so that the system can be tested by test
requirements.
155
Objective: To make students clear how long it will takes for testing, and which module is
responsible for testing.
7. Unit test and modification
Content: Help students to test modules which are developed independently so as to find out and
solve problems in system. At the end, test documentation of system must be completed.
Objective: To enhance students’ understanding and proficiency about software development
methodology.
8. Cross test and modification
Content: Cross test is carried out by testing plan.
Objective: To deepen students’ understanding of system requirements, to enhance students’
understanding and proficiency about software development methodology.
9. Summary report for testing
Content: Summarizing problems met in the testing, improving the development process and testing
method and finally the summary report for testing must be accomplished.
Objective: To understand the importance of testing for software development.
10. Summary report for project
Content: Summarizing the experience of software development and summary report for project
must be accomplished.
Objective: To further understand each process of the development.
ⅢPractice Plan and Requirement
1. Practice Plan
No
Details
Name
Explanation of project’s development process
Introduction to project’s development process, specifications for daily
Content
reports, software development documentation and methods of writing
document, so as to lay a good foundation for the future work.
1
Lab
Software Lab
Teaching hours
4 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
2
Content
Lab
Compulsory
Analysis of project requirements
Analyze details of project requirements to make students understand what
functions system should have.
Software Lab
Teaching hours
5 hours
156
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Compulsory
Explanation of software development plan
Explanation of software development plan and task scheduling to make
Content
students clear the arrangement of each development stage and which
module should be developed for everyone.
3
Lab
Software Lab
Teaching hours
3 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Compulsory
Detailed design
System pages are developed according to requirements. Sequence
Content
diagrams are drawn for the developed system, finally the documentation
of detailed design is finished.
4
Lab
Software Lab
Teaching hours
18 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Content
5
Lab
Compulsory
Coding
Coding by detailed design. Students’ Coding ability and problem solving
ability are trained.
Software Lab
Teaching hours
65 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
6
Compulsory
Explanation of software testing method and arrangement of testing plan
Software testing method is taught to students so that the system can be
Content
tested by test requirements. To make students clear how long it will takes
for testing, and which module is responsible for testing.
157
Lab
Software Lab
Teaching hours
3 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Compulsory
Unit test and modification
Help students to test modules which are developed independently so as to
Content
find out and solve problems in system. At the end, test documentation of
system must be completed. To enhance students’ understanding and
proficiency about software development methodology.
7
Lab
Software Lab
Teaching hours
3 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Compulsory
Cross test and modification
Cross test is carried out by testing plan, in order to deepen students’
Content
understanding
of
system
requirements,
to
enhance
students’
understanding and proficiency about software development methodology.
8
Lab
Software Lab
Teaching hours
7 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Compulsory
Summary report for testing
Summarizing problems met in the testing, improving the development
Content
process and testing method and finally the summary report for testing
must be accomplished
9
Lab
Software Lab
Teaching hours
3 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Compulsory
158
Name
Content
10
Lab
Summary report for project
Summarizing the experience of Software development and summary
report for project must be accomplished
Software Lab
Teaching hours
3 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Name
Compulsory
Examination
Content
Lab
11
Software Lab
Teaching hours
6 hours
The number of each group
5-6 people
Property(Basic/Comprehensive/Designed/Creative) Comprehensive
Requirements(Compulsory/Optional)
Compulsory
2. Note
The project of this course is divided into two directions according to the development technology:
project for Java and project for .Net. Students make their choice based on their interests. students
teams up and each group consist of at least 5 to 6 students, then a project manager must be appointed
in each group. Finally, functional modules of software which must be developed will be assigned to
everyone in the group by teachers and project manager.
ⅣAutonomous Learning
Students master the basic method for software development based on the web in the class. Besides
this, a lot of practice must be required in extracurricular class hours.
ⅤAssessment
Software must be designed, developed and tested independently as requested. Assessment is based
on the comprehensive quality of normalization and software product.
40 percent of the final score is based on the quality of software product.
60 percent of the final score is based on the normalization of software documentations.
ⅥTextbooks and References
Testbook:
Roger S.Pressman. Software Engineering-A practitioner’Approach (Six Edition), Tsinghua
University Press,2006.
References:
1. Bruce eckel, Thinking in Java, China Machine Press, 2007.
159
2. Paul R.Allen, Joseph J.Bambara. Sun Certified Enterprise Architect for J2EE, Post and Telecom
Press, 2003.
3. Jeffrey Richter, CLR via C# (Second Edition), Post and Telecom Press, 2008.
4. Paul Ammann, Jeff Offutt. Introduction to Software Testing. China Machine Press, 2009
Web Resources:
http:// 10.11.168.83
http://struts.apache.org/release/2.1.x/
http://www.hibernate.org/
http://www.eclipse.org/
http://forums.asp.net/
Written by:Zhuang Qiaoli
Reviewed by: Wei Shen,Liu Yanfei
Date:2013. 4. 2
160