Skip to content Skip to navigation

Academics

Computer Science and Technology

1. Program Description

The goal of this program is to train students’ to master the theory, knowledge and application of computer hardware and software. After graduation from this program, the students should become high-level professional talents with profound basic theories and sound specialized knowledge in computer science and technology. The program provides international perspective and competitiveness, a solid foundation and innovative ability, as well as outstanding leadership and teamwork abilities in engineering and management. The program lasts four years, but the learning period is also flexible. A Bachelor’s degree in Engineering is awarded when a minimum of 173 total credits is achieved as required. 

2. Program Duration and Credit

This is a four-year undergraduate program, which can be completed within a minimum of three years and a maximum of seven years.

A total of 173 credits are required upon the completion of the program.

3. Curriculum

Three modules of courses are offered for the program: Basic Curriculum, Essential Curriculum, and Elective Curriculum. The Basic and Essential curricula are compulsary for a Bachelor’s degree. 

The Elective Curriculum in the list includes extended disciplinary courses offered by the school into which an individual student is admitted, as well as cross disciplinary courses offered by other schools. Students can choose the extended and cross disciplinary courses according to their personal interests and career plans; however, credits should be approved by the School.

(1)Basic Curriculum

I.General Platform Courses

Course Code

Course

Credit

Semester

Remark

100701062101

Advanced Mathematics A(I)

6

1

 

100701062102

Advanced Mathematics A(II)

6

2

 

100701062108

Linear Algebra

3

3

 

100712062102

Probability Theory and Mathematical Statistics  A

5

4

 

II. Professional Basic Courses

100809192201

Introduction and Discussion of Computer Science and Technology

3

1

Including 1  practice credit

100809192204

C Language Programming

4

1

Including 1 practice credit 

100809192206

Digital Logic Circuit C

4.5

3

Including 0.5 practice credit

100809192205

Discrete Mathematics

4

2

 

(2)Essential Curriculum

Course Code

Course

Credit

Semester

Remark

100809193018

Introduction to Electronic Circuits

3.5

2

Including  0.5 practice credit

100809193001

C++ Object-oriented Programming

3

2

 

100809193002

C++ Object-oriented Programming Practice

1

2

practice course

100809193006

Data Structure

4

3

 

100809193007

Data Structure Practice

1

3

practice course

100809193004

Introduction to Computer System  C

4.5

3

Including  0.5 practice credit

100809193016

Computer Organization and Architecture C

4.5

4

Including  0.5 practice credit

100809193009

Operating System Principles

4

5

 

100809193010

Operating System Practice

1

5

practice course

100809193011

Compiler Principle

4

6

Including 1 practice credit

100809193012

Database Principle and Application

4

4

Including 1 practice credit

100809193013

Computer Networks C

4.5

5

Including  0.5 practice credit

100809193031

Principle of Microcomputer and Interfacing Technique

4.5

5

Including  0.5 practice credit

100809193024

Software Engineering

4

5

Including 1 practice credit

100809193015

Java Programming

4

4

Including 1 practice credit

100809193003

Curriculum Project of C++ Object-oriented Programming

1

3

practice course

100809193008

Curriculum Project of Data Structure

1

4

practice course

100809193030

Curriculum Project of Java Application

1

6

practice course

100809193028

Curriculum Project of Digital Logic Circuit

1

4

practice course

100809193017

Curriculum Project of Computer Organization

1

5

practice course

100809193032

Graduation Field Work

2

8

practice course

100809193033

Graduation Thesis

4

8

practice course

(3)Elective Curriculum

Course Code

Course

Credit

Semester

Remark

100809194003

Windows application development(.NET)

3

3

Including 1 practice credit

100809194004

Computer English

2

7

 

100809194005

Design and Analysis of Computer Algorithms

4

4

Including 1 practice credit

100809194006

Computer System Security

3

6

Including 1 practice credit

100809194007

Digital Image Processing

3

6

Including 1 practice credit

100809193023

Software Testing and Quality Control

3

7

Including 1 practice credit

100809193027

Software Project Management

3

7

Including 1 practice credit

100809194026

Enterprise Training

2

7

Including 2 practice credit

100809194010

Network Programming and Application

3

5

Including 1 practice credit

100809194008

Embedded System and Application

3

6

Including 1 practice credit

100809194011

Mobile Platform Development(Android& iOS)

3

5

Including 1 practice credit

100809194002

Web Information System Design and Development(Java)

3

6

Including 1 practice credit

100809194012

Mobile Internet Integrated Practice

3

7

practice course

100809194013

Cloud Platform Architecture

3

5

Including 1 practice credit

100809194014

Parallel Programming

3

6

Including 0.5 practice credit

100809194015

Data Mining

3

6

Including 0.5 practice credit

100809194016

Data Visualization Technology

3

5

Including 1 practice credit

100809194024

Big Data Applications Integrated Practice

3

7

practice course

100809194017

Introduction to Information Retrieval

3

5

Including 1 practice credit

100809194015

Data Mining

3

6

Including 0.5 practice credit

100809194020

Machine Learning

3

6

Including 0.5 practice credit

100809194009

Artificial Intelligence

3

5

Including 0.5 practice credit

100809194025

Intelligent Information Processing Integrated Practice

3

7

practice course

(Note: 1. Odd-number semesters are the fall semesters and even-number semesters are the spring semesters in each academic year. 

      2. The asterisk * marks a core course.

4. Core Courses and Introductions

100809192204     C Language Programming      (4.00 cr.)

Prerequisites:   None

Course aim is: training students to grasp the method of structured programming and modular program design method, can use C language to analysis problem, design function, programming. Students should know: 1 Basic concepts of programming: data types, statement, function, storage structure, etc; 2 Structured programming method; 3 Modular program design method; 4 Classic algorithms based on linear structure.

C is process-oriented programming language which has profound influence, is also the main way of learning to the object-oriented programming. The main contents are as follows: 1 Sequence structure program based on the I/O and operation of numerical variables. 2 Branch, loop structure of program based on the numerical variables. 3 Structured programming based on one/two dimensional array. 4 Modular program design based on numerical variables. 5 Modularized program design based on array. 6 Programming based on custom types. 7 Programming based on pointer and link list.

100809192206     Digital Logic Circuit C    (4.50 cr.)

Prerequisites:  None

In the background of the current strengthening of computer system ability training, Digital logic circuit course is a part of electronic technology, which is a basic course for undergraduate computer science and technology. Through teaching the analysis and design method of logic circuits and devices, it lets students to understand the characteristics of digital circuit, to master the operational principle of digital circuit and system, to learn to use standard integrated circuit and high-density programmable logic device (FPGA) and master the basic analysis and design method of digital logic system. Digital logic circuit course will lay a good foundation for the study of Computer Composition and Architecture principle and Development of embedded application system or others courses. 

The course's learning text is《Electronic Technology Foundation》(Digital Part- Sixth Edition)by Kang HuaGuang from Department of electronics, HuaZhong University of Science and Technology. The course includes three basic modules which are Basic Knowledge、Device and Circuit Analysis and Design.The module Basic Knowledge will focus on the establishment of logical functions, simplification and transformation which is based on introducing the concept of logical algebra and the law. The module Device will introduce its structure and focus on the external features and characteristics of the device. Then teaching how to use correctly and to make students know how to stand at user's point of view but not too rigidly adhere to the details. The module Circuit Analysis and Design will introduce typical application circuit, and base on it, we will focus on its common features and general analysis and design method. It includes the design method based on the HDL language and its development environment at the same time. The contents of the course include: Digital Logic Foundation, Integrated Logic Gate Circuit, Logic Circuit Analysis and Design, Common Combination of Logic Function Device, Trigger, Sequential Circuit Analysis and Design, Common Time Series Logic Device, Programmable Logic Device, Hardware Description Language VHDL and VerilogHDL and Digital System Design. This course requires to have a good foundation of the electronic circuit, especially the bipolar devices , the FET devices and the principle and the method of analysis.

100809193001  C++ Object-oriented Programming  (3.00 cr.)

Prerequisites:  None

The aim of this course is to teach students the method of object-oriented programming with C++ language as a platform, and the ability of programming in C ++ language.

This course is to help the student grasp the basic idea, knowledge and technique of the object oriented programming (OOP) language. The main content of this course is C++ programming language and the kernel of this language are abstract, encapsulation, inheritance, and polymorphism, which can be regarded as the base of the OOP programming. After learning the course, the student can deeply understand C++ language and can master the compiling, linking and running procedures of the language.

100809193006  Data Structure  (4.00 cr.)

Prerequisites:  None

Data structure is an important professional basic course of computer science and technology specialty and software engineering specialty. Through this course of study, students are required to master the basic concepts and techniques of data structure and algorithm, and design the corresponding operation algorithm. Master linear list, stack and queue, string, generalized table, tree and two fork tree, graph and other typical data structure and related algorithms, as well as sorting, search and other important technologies. The purpose of the course is to improve the students' ability of the algorithm design, so that students can choose the appropriate data structure for a given problem, design high quality algorithm, and can solve complex problems. This course provides a solid foundation for some of the following computer professional courses, such as the operating system, compiler theory, and database application system development, etc.

Data structure is a study of the program design of non numerical calculation of the computer's operating object and its relationship with the operating algorithm. Its main contents include: 1 logical structure of data - logical relationship between data; 2 the storage structure of data -- the logical structure of data in computer; 3 operation algorithm - insert, delete, query, sort, etc..

This course mainly studies the basic concepts and techniques of data structure and algorithm, the evaluation criteria and the method of the algorithm, the sequential storage structure and chain storage structure of linear list, stack, queue, string, array, generalized table, tree and two fork tree, graph and so on.

100809193016  Computer Organization and Architecture  (4.50 cr.)

Prerequisites:  None

Through learning this course , the students can understand each unit of computer from the perspective of designer, observe the characteristics of the computer from the perspective of programmers, and can Understand how the program is executed. To lay a theoretical foundation for the students to further study programming languages, parallel processing, distributed processing, microcomputer principle, computer architecture and so on.

The related concepts, theories and technology content are introduced in Computer Organization and Architecture, mainly including Instruction Set Architecture(ISA), data representation and storage, and working principle of the various components of the computer. This course is divided into eight chapters. Computer system and its performance evaluation are overview in first chapter. The second chapter introduces the MIPS instruction system. The third chapter introduces machine level representation of the data and operations, as well as structure and design of arithmetic logic unit. The four chapter introduces the memory hierarchy structure, contains main memory, cache and virtual memory. A variety of CPU design technology are introduced from the fifth chapter to the seventh chapter. Chapter 8 introduces multi-core, multi processor and clusters, this is the latest content of computer architecture.

100809193009    Operating System Principles    (4.00 cr.)  

Prerequisites:  None

This course is key to the study of computer science and technology, and students are expected to master the followings after they finish the course:Basic concepts of computer operating system; The general principles of how operating system runs; The policies and algorithms for the management and scheduling of various software and hardware resources; Understanding of operating system interfaces; Systematic thinking and the method for large software buildup.

The purpose of this course is to teach the principles of operating systems and the design of operating systems. Topics the course will cover include concepts of operating systems and systems programming; utility programs, subsystems, multiple-program systems; processes, inter-process communication, and synchronization; memory allocation, segmentation, paging; resource allocation, scheduling, performance evaluation; I/O systems, storage devices, file systems.

100809193011       Compiler Principle         (4.00 cr.)

Prerequisites:  None

By learning Compiler Theory course, to make students:

1. In theory and technology, hold the Basic principles and ideas of grammar, finite automata, lexical analysis, syntax analysis, and semantic analysis and code optimization, etc.

2. In practice, (1) Understand how to open and read source program, separate and determine the word. Further, understand how to implement the determination of nondeterministic finite automata and the minimization of deterministic finite automata.  (2) Implement LL(1)-based sentence recognition, expression recognition based on operator precedence grammar, SLR(1)-based sentence recognition, and hold the separation mechanism of data and recognition program. (3) Implement translate generative grammar to attribute grammar.

This course is divided into two parts, theory teaching and experiment, in which theory teaching globally introduces the work process, typical structure and main functions of a compiler program, and its role in system software, and etc. Then, this course introduces two basic knowledge: Formal language theory and automaton theory, and focuses on the introduction of lexical analysis, syntax analysis, semantic analysis, store management, and intermediate code generation and code optimization and etc, specially presents corresponding solution, and implementation technology and algorithm design. 

In experimental aspect, in order to reach the theory contact reality and the purpose of learning to use, we strive to the students  translate a small language into intermediate code(mainly focusing on the translation of the C language word analysis and assignment and if...else statement). Around the source program scan and simple statement syntax analysis of the C language, students need to finish the following experiments: Identifier identification, constant integer recognition, simplification of finite automata and implementations of LL(1) and SLR(1) analysis methods, and etc. In addition, combining with the real application of finite state automata, e.g. design and implementation of intrusion detection model and process reengineering engine,etc. In order to enhance students' sense of achievement and improve their practice interesting, we hope students to implement a simply real issue. Meanwhile, in this way students can also deepen the understanding of classroom learning content.

This course includes the following four parts: Section one is Grammar and finite automata theory. Section two is lexical analysis, syntax analysis(top-down and bottom-up parsing) technology. Section three is semantic analysis technology, and store management and intermediate code generation. Section four is code optimization.

100809193012  Database Principle and Application  (4.00 cr.)

Prerequisites:  None

The goals for this course include introducing the basic concepts, principles and design techniques of database through classical database management systems. Students are expected to be able to understand the comprehensive theory and technology about database management systems, program with SQL language and design stored processes and triggers after taking this course. Students are also expected to design databases for different purposes in real data processing problems by applying the basic theory and methods of database design.

This course introduces the basic concepts related to database systems, the basic theory and techniques, methods and principles of database design and SQL programming. It covers five parts, listed as below:

1. Data management techniques, basic concepts related to database systems, relational data model and related theories.

2. On the base of basic concepts and basic theory, starting from the project needs analysis, the methods how to design database conceptual structure, logic structure, physical structure, database security and integrity are introduced.

3. SQL and its application, introduce SQL programming and the design of stored procedure and trigger.

4. The management and maintenance of database, introducing the backup and restore of database, transaction concurrency control.

5. Database-related new technologies, such as: data warehousing and online analytical processing.

100809193013   Computer Networks C    (4.50 cr.)

Prerequisites:  None

Through studying the computer networks course, the students are expected to learn the essential working principle of computer networks and to be familiar with its basic configuration. This course aims at constructing the solid foundation for students to engage in the research, development and application of computer networks in the future, so as to meet the needs of the information epoch with computer networks as the core.

The contents of the course include: the overview of computer networks, the base knowledge of network, the Ethernet, the wireless networks, the network interconnection, the Internet, the data transmission, the basic applications of the Internet, the network multimedia, the network security, and so on.

The contents of the experiment are as follows: the network transmission media, the elemental composition of networks, the network configuration of the switch and router, the routing technology, the network application service, the configuration and usage in the simulation software.

100809193024   Software Engineering    (4.00 cr.)

Prerequisites:  None

The purpose of this course is to train undergraduates to have a comprehensive understanding of medium-sized software development process which involves design methods, project development techniques and tools.It can guide software production and management. Through the software project development process and  practice ,students can  master the basic processes ,methods and ideas in the software analysis,  design, maintenance and management activities and lay a good foundation for future work.

This course is a curriculum with strong comprehensive and practical requirement, It needs prerequisite Courses such as  Data Structures, Database Theory, Programming Languages, Object-Oriented technology etc .

The course is divided into 12 chapters. Chapters 1-3 as a software engineering introduction,  introduces some important concepts ,  research areas, basic principles of software engineering, software development process and software process models by subtheme. Chapters 4-11 introduce the implementation process of the main stages of software development process, methods and techniques used. 12-14 introduces a software project testing, maintenance and management, curriculum teaching by 10 thematic section to explain.

Share: