Skip to content

Bachelor Courses Description

This is all the courses that I have taken as undergraduate at Zhejiang University.

Compulsory Courses


Linear Algebra(A)

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 3.5
  4. Description:

    This course is a degree program for undergraduate students of Zhejiang University whose majority is in the field of engineering and science, etc. It includes the theories of solving linear equations, the basic theory of matrix, linear space and quadratic form, and an introduction to the theory of linear transformation, which are very useful in science and technology.


Colledge English IV

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 3
  4. Description:

    This course aims at developing English skills for college students in listening, speaking, reading, writing, and translating. It is also intended to cultivate students’ comprehensive ability to acquire knowledge, to implement positive thinking, and to use English in a proficient way. Student-centered and theme-based teaching methods such as reading, listening, viewing, group discussions, presentations and other classroom activities will be adopted. The themes are relevant and interesting to the students so as to meet their intellectual, emotional and individual needs.


Colledge English V

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 3
  4. Description:

    College English V is an advanced course in the college English curriculum for students at Zhejiang University. It aims at developing students’ ability to use English in a well-rounded way, especially in speaking and writing, so that in their future studies and careers as well as social interactions they will be able to communicate effectively, and at the same time enhance their ability to study independently and improve their general cultural awareness so as to fulfill the needs of China’s social development and international exchanges. A combination of multimedia- and classroom-based teaching models will be applied, so that English language teaching and learning will be geared towards students’ individualized and autonomous learning.


Calculus(A) I/II

  1. Hours Per Class: 3
  2. Classes Per Week: 2
  3. Credit: 5
  4. Description:

    Calculus is a mathematical subject, which studies the functions, applies the method of limits (i.e. limit process like infinitesimals and infinite approximation) to analyze and deal with issues, with 96 class hours. The teaching content includes: function limits and continuity, differential calculus of one variable functions and its appliances, integral calculus of one variable functions and its appliances. The Methods of discussion and case study will be used in this course, and the capacity of quick-primary policy analysis will be emphasized.


Probability and Mathematical Statistics

  1. Hours Per Class: 1.5
  2. Classes Per Week: 2
  3. Credit: 2.5
  4. Description:

    This is an important basic course for undergraduate students. The main theme of the subject is the study of the quantitative patterns of "random phenomena", including events and probability, random variables and their distributions, the numeric characters of random variables, the law of large numbers, and the central limit theorem, statistical quantities and sampling distribution, the point estimation and interval estimation of parameters, the hypothesis testing of parameters and the fitting testing of probability distribution, variance analysis and regression analysis.


University Physics(A) I

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    University Physics A1 includes the following contents: Newton's mechanics on calculus level, rotational motion of rigid body, theory of relativity; oscillations and wave motion, thermodynamics; foundation of electrostatics. The learning of the course enables students to gain a comprehensive understanding of the principles of the moving of objects, giving an initial training of students’ methods of thinking and capabilities to investigate problems scientifically. It cans also lay students a solid physical foundation for further learning (for Polytechnic postgraduates) and for learning new theories, new knowledge and new technologies.


University Physics(A) II

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    University Physics A2 includes the following contents: electromagnetism, optics; the foundation of quantum physics; selected lecture of the advance front in physics. The learning of the course enables students to gain a comprehensive understanding of the principles of the moving of objects, giving an initial training of students’ methods of thinking and capabilities to investigate problems scientifically. It cans also lay students a solid physical foundation for further learning (for Polytechnic postgraduates) and for learning new theories, new knowledge and new technologies.


Discrete Mathematics and Application

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    Discrete mathematics is a subject to study discrete objects and their relationship, which is different from continuous objects based on real numbers. The research contents of discrete mathematics mainly includes integer, graph theory, set theory, mathematical logic, combinatorial theory, group theory, algorithm and other subjects with very continuous variables. In this sense, discrete mathematics mainly studies the mathematical branch of object properties on countable sets, and its research object is the mathematical model of discrete quantitative relationship and discrete structure.


Introduction to Computing Systems

  1. Hours Per Class: 2.5
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    This is the first course in computing for students of computer engineering and electrical engineering. The objective is to provide a strong foundation that a serious student can build on in later courses across the spectrum of computer science and engineering. The idea is that a more complete understanding of the fundamentals early in your education will help you acquire a deeper understanding of more advanced topics later, whether that topic is in computer architecture, operating systems, data base, networks, algorithm design, software engineering, or whatever. I call the approach "motivated" bottom-up. That is, after providing some overview of why a new concept is important, we attempt to tie that new concept to what you already understand. Starting with the transistor as a switch, we build logic gates, then more complex logic structures, then gated latches, culminating in an implementation of memory. From there, we study the computer's instruction cycle, and then a particular computer, the LC-3 (for Little Computer 3). We got it wrong the first couple of times! The LC-3 captures the important structures of a modern computer, while keeping it simple enough to allow full understanding. The first programming assignment is in the machine language of the LC-3. From there, we move up to Assembly Language, and learn how an assembler works. The remaining programming assignments are in LC-3 Assembly Language. We cover good programming style and practice, and teach debugging from the gitgo. An LC-3 Simulator allows the student to debug his/her own programs. Input (via the keyboard) and output (via the monitor) both use physical device registers. System service routines, written in LC-3 Assembly Language are used to perform I/O functions. They are invoked by user programs by the TRAP instruction and corresponding trap vector. Subroutine calls and returns complete the LC-3 instruction set.


Fundamentals of C Programming

  1. Hours Per Class: 2
  2. Classes Per Week: 2
  3. Credit: 3
  4. Description:

    This course will mainly introduce to the students the C programming language and its programming technology, and explain the basic algorithms of solving the problems. This course aims to make the students know the components of the high level programming language, master the basic processes and skills of programming, possess the basic abilities of programming in high level programming languages. The main contents of this course include: the data types and expressions, the basic flow-controlling of the programs, the functions and modular programming, the data array and file applications, the basic alogrithms, etc.


Lectures on Programming

  1. Hours Per Class: 3
  2. Classes Per Week: 1
  3. Credit: 2
  4. Description:

    Based on the course “Fundamentals of C Programming”, this course will introduce five special topics on C Programming. Through study and systematic practices of these topics, students’ engineering thinking is trained, and their data organization ability, structured programming ability and problem-solving ability are further improved. The four special topics include: modular programming, advanced pointers, linked list, graphic programming foundation and advanced file topic.


Fundamentals of Data Structures

  1. Hours Per Class: 3
  2. Classes Per Week: 1
  3. Credit: 2.5
  4. Description:

    This course investigates the definitions, implementations, and functions related to non-numerical data objects. The content of this course consists of the basic methods for time-space complexity analysis; fundamental data structures for stack, queue, list, tree and graph; implementations and analysis of sorting and searching. Students are supposed to learn how to organize data, to represent problems in a computer, to select the optimal data structure and algorithm for a specific problem, and hence improve their ability of programming.


Advanced Data Structure & Algorithm Analysis

  1. Hours Per Class: 2.5
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    This course is based on the fundamentals of data structures. It continues to investigate the definitions, implementations, and algorithms related to non-numerical data objects. The content of this course consists of two parts: the first part is for advanced data structures, such as the variations of binary search trees and the inverted file index for searching big data sets, and various optimizations of the priority queues and the amortized analysis; the second part is for classical algorithms, such as divide and conquer, dynamic programming, greedy, back tracking, together with approximation methods, local search, and randomized algorithms. Parallel algorithms and external sorting will be introduced as well. Students are supposed to learn how to solve complicated problems with advanced programming skills, and how to give the performance a mathematical analysis, and hence build a firm foundation for studying further theories in computer science.


Digital Logic Design

  1. Hours Per Class: 2.5
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    The aim of the course is to introduce basic theory and design methods for digital logic. The course covers number representation, digital codes, boolean algebra and logic minimization techniques, sources of delay in combinational circuits and effect on circuit performance, survey of common combinational circuit components, sequential circuit design and analysis; timing analysis of sequential circuits, concept of programmable logic devices and memories. The language used in the course can be English.


Computer Organization

  1. Hours Per Class: 3
  2. Classes Per Week: 2
  3. Credit: 4.5
  4. Description:

    The main purpose of this course is a systematic study of computer organization. The emphasis is the analysis of the operating principles of the computer components and the concepts, design and implementation technology of the software and hardware interface. Through the analysis and design of CPU to make the students deep understand the computer system and the process how hardware support software’s execution. And the students can also master how to solve the problems of computer systems. This course emphasizes on the required software/hardware interfaces and the modern computer organization from the perspective of the programmers and optimization including the introduction to computer organization, machine language, assembly language, analysis and design of arithmetic/logic operation functions and units, principles of computer organization, design and implementation of computer system, principles of memory structure, principles of I/O interfaces and peripheral devices, the bus, the basic interactive modes of polling/interrupt/DMA, etc..


Computer Architecture

  1. Hours Per Class: 2.5
  2. Classes Per Week: 2
  3. Credit: 3.5
  4. Description:

    This course is one of the most important professional courses in computer science that systemically introduce the fundamental concepts and design approches of computer architecture from the view of the whole computer system. The topics cover fundamental concepts, task of computer design, quantitative principles, and performance evaluation; instruction set architecture and characteristics of CISC and RISC machines; basic concepts for pipelining, causes and resolutions for pipeline hazards; memory hierarchy, improvement of cache performance; I/O storages; and basic concepts for multiprocessors. At the same time, the students are required to master the hardware design approches and skillfully use hardware design toolkits. In the lab we will introduce how to gradually implement the pipelined CPU supporting 31 MIPS instructions in Xilinx ISE environment using Verilog, and verify its correctness on FPGA board.


Database System

  1. Hours Per Class: 3
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    Database is the cornerstone of modern information society. The course introduces the principles and techniques of database systems, including the relational data model, relational database standard language SQL, database design and entity-relationship data model, relational formalization, database application programming, object-relational model, XML,physical storage, index, query processing and optimization, concurrency control and discovery. Students are expected to have fully understanding of the basic concepts of database systems and DBMS implementation techniques,and be equipped with the ability to administrate DBMS and develop database applications.


Object-Oriented Programming

  1. Hours Per Class: 2
  2. Classes Per Week: 1
  3. Credit: 2.5
  4. Description:

    Students will grasp the concepts and method of object-oriented programming through the study of principle and practice. They will be required to build good programming style which accord with modern software design. Students will grasp C++ language skillfully, basically know how it runs, be able to do object-oriented programming using C++ skillfully. Totally, this course will guide students to have the ability of software analysis, design and coding, as well as the ability of cooperate developing.


Operating System

  1. Hours Per Class: 4
  2. Classes Per Week: 2
  3. Credit: 5
  4. Description:

    Operating system isprofessional core course of both theoretical and practical. This course is to help students understand the role of operating system in a computer system, and learn how to apply the basic concepts, methods, algorithms and technologies of operating system when managing the resources of software and hardware. The content of this course consists of introduction, process management, memory management, file system management, I/O system, and some selected advanced topics. Students are supposed to Computational Thinking ability,algorithm analysis and design ability, large scale software design and implementation ability , and computer software and hardware system cognition、 analysis、design and application ability


Theory of Computation

  1. Hours Per Class: 2
  2. Classes Per Week: 1
  3. Credit: 2
  4. Description:

    This is a theoretical course designed for graduated students. There are 32 academic hours in total. This course covers the theory of automata and formal languages, computability by Turing machines and recursive functions, uncomputability. This term is devoted to establishing a foundation for the formal study of computation. This foundation consists of tools from mathematics such as set theory, logic, and graph theory, and concepts from theoretical computer science, such as formal languages, abstract machines.


Compiler Principle

  1. Hours Per Class: 3
  2. Classes Per Week: 2
  3. Credit: 4
  4. Description:

    This course investigates principles, techniques and tools to design and implement a compiler. The content of this course consists of preprocessor, scanner, parser, symbol table. Code generator, semantic analyzer and target code optimizer. Students are assumed to learn the following fundamentals: regular expression, automation, context-free grammars and etc, and they are supposed to grasp the lexical analyzer basing automation, the parser of top-down parsing, bottom-up parsing and the syntax-directed translation. This course enables students to achieve strong abilities for developing the computer system software.


Software Engineering

  1. Hours Per Class: 2
  2. Classes Per Week: 1
  3. Credit: 2.5
  4. Description:

    "Software Engineering" guides the students to understand the significance of some fundamental concepts of software engineering. The frame works are introduced, such as software process models, software engineering methods and tools, and software management. Both conventional methods and object-oriented methods are discussed. Projects are assigned to help students experience the life-cycle of a software during practice, including requirement analysis, system design, component-level design, coding, testing, maintenance, and team work. Students will learnt to use conventional tools such as data flow diagrams, data dictionary, entity-relation diagrams, and system hierarchy; as well as object-oriented tools such as use-cases, even trace diagrams, state transition diagrams and CRC cards.


Computer Networks

  1. Hours Per Class: 3
  2. Classes Per Week: 3
  3. Credit: 4.5
  4. Description:

    The main task of this course is to study the basic theory and professional knowledge related to computer networks. From the perspective of network architecture, network principles and related fundamental concepts and methods in digital communication, internetworking and advanced protocols are introduced in this course. Some significant functions and relative protocols in network architecture together with recent developments of network and their technologies are also introduced. Students can get familiar with fundamental computer network principles and basic knowledge of the field through the course learning. And a thorough understanding of commonly used network and network security technology can be obtained with intimate knowledge of network architecture, functional principles and various of network protocols (especially that of TCP/IP).


Communication Skills in Information Technology

  1. Hours Per Class: 2
  2. Classes Per Week: 1
  3. Credit: 2
  4. Description:

    Being able to communicate effectively with computers is an important skill to people in the field of information technology. On the other hand, just as important is being able to communicate effectively with technical and non-technical colleagues. This course is aimed to train their communication skills when the students have to face people in the field of information technology. With a series of case studies and practices, the students are supposed to learn the principles and practical skills on how to express their own opinions, communicate with their teammates, search for references, read effectively, write technical documents, and give presentations. With this course we hope to improve the information organization and communication skills of the students in the field of information technology.

Elective Courses

Introduction to Artificial Intelligence

  1. Hours Per Class: 3
  2. Classes Per Week: 1
  3. Credit: 3.5
  4. Description:

    In this course, we will introduce some basic concepts, history and the current status of artificial intelligence, but focus on the fundamental theory, method and important algorithms of AI and machine learning. From this course, students are supposed to grasp the AI’s fundamental connotations, and further get a deep insight into the AI’s key components from an interdisciplinary perspective, resulting in the in-depth understanding of numerous key points such as supervised/unsupervised learning, linear/nonlinear manifold learning, probabilistic topic modeling, deep neural networks, reinforcement learning, etc.


Introduction to Applied Operations Research

  1. Hours Per Class: 4
  2. Classes Per Week: 1
  3. Credit: 3.5
  4. Description:

    This course aims at decision models and solving methods for optimization problems under various constraints. The topics cover linear programming, nonlinear programming, integer programming, combinatorial optimization and algorithmic game theory. Students will learn from the course the fundamental theory and methods of operations research, and improve their abilities in solving and analyzing optimization problems.


Algorithm Design & Analysis

  1. Hours Per Class: 1.5
  2. Classes Per Week 2
  3. Credit: 2.5
  4. Description:

    Algorithm design and analysis is a fundamental course in computer science, which mainly talks about the theoretical foundation of algorithms. This course covers sorting and selection, max-flow, matching, computational bioinformatics, machine learning, randomized algorithms, computational complexity and inapproximability, and cake cutting protocols. .


Image Analysis and Artistic Processing

  1. Hours Per Class: 2
  2. Classes Per Week: 1
  3. Credit: 2.5
  4. Description:

    This course will introduce some basic concepts and some advanced image processing such as image editing and synthesis. At the same time, this course will introduce the current status, most excited advance and unresolved challenge. From this course, students should know global visual features (such as color, texture and shape) and local visual features (such as SIFT and visual words), similarity computation, image signal processing (convolution, filtering and coding), high dimension reduction, image blending and morph, artistic styles rendering.


Great Ideas in Computer Science

  1. Hours Per Class: 2
  2. Classes Per Week: 0
  3. Credit: 2
  4. Description:

    This course will take a philosophical and historical perspective on the development of computer science, especially since 1966 Turing award winner’s life, scientific thinking, and outstanding achievements and so on. The concrete content includes: the history of some research fields in computer science: tracking development in some research fields in computer science, revealing its scientific thought; The masters’ thought on computer science: introducing some great computer scientists’ life, and achievements, expounding the basic exploration and discovery in computer science, and sharing the future views. The improvement of classic problem in computer science: developing the solution to some classic problems, leading the students to carry on the deep reading, revealing the idea and its influence of the future. The course can make the students to understand the history of computer science, great scientific event and so on, and to understand the essence behind the computer science, to dedicate to their scientific research.


Numerical Analysis

  1. Hours Per Class: 2.5
  2. Classes Per Week: 1
  3. Credit: 2.5
  4. Description:

    Problems solving by numerical methods has now become one of the fundamental means of research in the physical sciences and engineering, and also in social sciences and humanities. This course is an introduction to numerical computation employed so widely in industry and research. We will discuss errors in numerical computation, roots of nonlinear equations, systems of linear equations, algebraic eigenvalue problems, function approximations by polynomial interpolation and cubic spline interpolations, quadratures, and numerical differentiation. We will explain how, why, and when these methods can be expected to work efficiently. Students will learn from lectures and a series of projects the basic theories and how to program for solving practical problems. This course is to provide a firm basis for future study of scientific computing, to steady a solid foundation in mathematics, and to train the students how to conduct scientific research.


Wireless Network Application

  1. Hours Per Class: 2
  2. Classes Per Week: 1
  3. Credit: 1.5
  4. Description:

    This is a general education course for the undergraduate students. It utilizes the innovation teaching patterns of online intelligent study and offline exploratory experiments, proceeds from the wireless network application demands in the daily life, and through selected study and practice of the newest network entry online curricula from the world famous Cisco Networking Academy, in the wireless and wired computer network experiment environments, by easy-to-understand remote demo teaching methods, it makes the different discipline students of liberal arts, science, engineering, agricultural, and medical to quickly and basically grasp many kinds of practical techniques of network access and network communications using wireless and wired networks, which mainly include: configuration and application of the common wireless and wired network equipment such as intelligent wireless routers and wireless APs, configuration and application of many common network services, wireless networking technique application, common problem-solving techniques related to the network security and the network troubleshooting. This is a very skilled general education course, which is experiment-centered and theory-assisted. It emphasizes the training of the hands-on abilities and the capability of solving practical problems. The teaching methods of in-class lecture and in-lab experiment are used in this course. The course assessment methods consist of experiment inspection, lab reports, course project design, and open-book online exam.

Comments