CS101. Introduction to Computer Scicence 2 credits
Lecture，2 credits, 2 hours per week. Pre-requesites：None. This course systematically introduces the fundamentals and up-to-date developments of computer science, focusing on computer architecture, operating systems and algorithms, programming languages and software engineering, data structure and databases, as well as machine learning, mobile computing, and artificial intelligence, outlining a framework of various computer science knowledges.
CS102. Computer programming fundamentals 3 credits
Lecture，3 credits, 4 hours per week. This course introduces the fundamentals of object oriented programming language and programming techniques. In this course, the students will be familiar with a programming language and be able construct software for solving simple programming problems.
CS201. Discrete mathematics 3 credits
Lecture，3 credits, 3 hours per week. Pre-requesites：Calculus I, II (MA101b
,MA102b), Linear Algebra I (MA103b) . This course presents basic concepts in discrete mathematics needed for the study of computer science: logic and proofs, induction, set theory, functions, counting techniques, discrete probability, recursion, basic number theory and cryptography, relations, trees and graph theory. The approach of this course is specifically computer science application oriented.
CS203. Data structures and algorithm analysis 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Computer programming fundamentals (CS102). This course will teach students the fudamentals of data organization, storage and processing in computer science. Students will be required to grasp why and how a data structure can be applied according to applications.
CS204. Digital Media and Creative programming 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Computer programming fundamentals(CS102). This course aims to introduce creative thinking in programming via digital media. Students will be required to develop necessary skills of exploitory programming and complete a creative project.
CS209. Computer system design 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Computer programming fundamentals (CS102). This course aims to teach advanced skills of computer programming and apply them in developing a software project to solve some practical problems.
CS208. Algorithm design and analysis 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：No. This course introduces basic algorithms, including sorting and searching, divide and conquer, etc.，and their related date structures, to undergraduate students with some programming skills. After completing this course, students should have a conceptual understanding of the algorithms and have necessary knowledge on implementing the algorithms.
CS301. Embedded system and microcomputer principle 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Digital Logic (CS207). This course introduces fundamental microprocessor architecture and organization knowledge on number system, digital logic, CPU, memory, I/O peripheral, as well as basic microprocessor system development skills including Assembly/C programming, logic circuit implementation, and embedded system integration, as well as embedded system design methods for specific applications.
CS303.Artificial intelligence 3 credits
Lecture，3 credits, Lab 1 Credit，4 hoursper week. Pre-requesites：Discrete mathematics (CS201), probability and statistics (MA212). This course is a basic introduction to artificial intelligence covering fundamental material in problem solving, heuristic search, knowledge representation, deduction, planning, uncertain reasoning, learning, and natural-language processing.
CS305. Computer networks 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Computer Organization Principle（CS202）. This course introduces fundamental communications and networking knowledge on physical, link, network, transportation, application layers, as well as basic network skills including setup, configuration, analysis and programming.
CS309. Object Oriented Analysis and Design 3 credits
Lecture，3 credits, Lab 1 Credit，3 hours per week. Pre-requisites：Data Structures (CS203), Computer Organization Principle (CS202), and Computer programming fundamentals (CS102). This course introduces the fundamental concepts such as object oriented and united modeling language (UML), then mainly explores the requirement elicitation, system analysis, system design, design principles, design pattern, implementation and test. And the programming paradigms and software development methodologies will be discussed.
CS315. Information theory and coding 2 credits
Lecture，2 credits, 2 hours per week. Pre-requesites：Calculus I, II (MA101b
、MA102b), Linear Algebra I (MA103b). This course provides an introductory look into the broad areas of information theory and coding theory. As stated in the textbook, “Information theory answers two fundamental questions in communication theory: what is the ultimate data compression (answer: the entropy H) and what is the ultimate transmission rate of communication (answer: the channel capacity C). In later stages of this course, some coding techniques will be discussed.
CS302. Operating systems 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites: embedded systems and microcomputer principle (CS301). This course introduces fundamental computer operation and management knowledge on scheduling, memory, file system, I/O peripheral, user interface, networking, as well as resource allocation methods. It will help students to develop programing skills for computer system management, and design proper operating systems for specific applications.
CS304. Software engineering 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Object Oriented Analysis and Design (CS309). This course starts with the software lifecycle with emphasis on the different phases and methodologies available for development. It will cover the theory of object orientation, which will be demonstrated by use case diagrams, activity diagrams, sequence diagram, class diagrams and state diagrams. It will also introduce the management of software projects, the testing of systems, alternative modeling techniques and software risk management. The lab session will be a group software project which will last for a whole semester.
CS401. Intelligent Robots 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites: Data Structures (CS203), Computer Organization Principle (CS202), and Computer programming fundamentals (CS102) This course introduces fundamental knowledge, key techniques and typical applications in robotic fields and improves students’ practical abilities by using mobile robot experimental platforms. Main teaching modules include robot world, mechanism, configuration and system, kinetics, robot sensor, robot vision and audition system, task planning, motion planning, SLAM, and special topics on industrial robots, service robots and human robot interaction.
CS405. Machine learning 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：linear algebra(MA103b), probability and statistics (MA212). This course focuses on introducing Bayesian inference and artificial neural network based machine learning mechanisms and algorithms, either supervised or unsupervised, to perform feature extraction, data modeling, pattern recognition, and behavior prediction, for both static data and sequential data samples.
CS407.Virtual reality technology 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Computer programming fundamentals(CS102). This course is to provide students with both a deep understanding of the fundamentals of Virtual Reality and to gain practical experience.Students will be required to develop a VR system to solve practical problems.
CS409. Internet of things 3 credits
Lecture，3 credits, Lab 1 Credit， 4 hours per week. Pre-requesites：Computer Network (CS305)，Object Oriented Analysis and Design (CS309) . This course starts with the basic concept of wireless network, wireless ad hoc network, and then wireless sensor network. The essential techniques of wireless sensor nodes, embedded software design, routing algorithms, data fusion, interference, security, etc will be introduced as the foundation of Internet of Things (IoT). IoT architecture, associated techniques, and applications will be included in the module. The Lab sessions will offer opportunities to practice ZigBee, Bluetooth, WiFi and/or other low data rate, low communication range and low power consumption technologies.