Back
to top

Software Engineering

Discrete Mathematics and Application

Discrete mathematics is the study of mathematical structures that are fundamentally discrete rather than continuous. In contrast to real numbers that have the property of varying smoothly, the objects studied in discrete mathematics - such as integers, graphs, and statements in logic do not vary smoothly in this way, but have distinct, separated values. discrete mathematics has been characterized as the branch of mathematics dealing with countable sets. However, there is no exact, universally agreed, definition of the term discrete mathematics. Indeed, discrete mathematics is described less by what is included than by what is excluded: continuously varying quantities and related notions.

 

Fundamentals of Data Structures

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.

 

Object-Oriented Programming

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.

 

Advanced Data Structures and Algorithms

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.


Fundamentals of 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 several of network protocols (especially that of TCP/IP).


Principles of Computer System

The course includes computer architecture, computer organization, the basic algorithm analysis and implementation, I / O systems and interfaces and so on the basis of the basic principles of knowledge. By learning to fully understand the various components of a computer system working principle, structure, familiar with the interface between hardware and software, interfaces.

 

Principles of Operating System

Learning and understanding the operating system’s role in a computer system . Learning the resource management technologies used by operating system , Learning operating system concepts, methods, algorithms, technology. The course includes sessions of introduction, process management, memory management, file system management, I/O system, and some selected advanced topics.

 

Fundamentals of Software Engineering

This course is fundamental to the students majored in software engineering.  The course introduces the basic concepts, principles and methods of software engineering, in the following four parts: software product and process, software engineering practice, Web engineering, and software project management.  Covered by this course are the popular process models; conventional methods of software engineering including requirements analysis, software design, and testing; basic concepts and methods of project management and quality assurance.  Web application is introduced as a special category of software development. The course is aimed to help students understand the systematic and complete fundamental theories of software engineering, build the concepts and habits of engineering thinking of software development, and hence improve their abilities of analyzing, problem solving, team work, negotiation, and communication.

 

Database System Design

The course introduces the principles and methods of database systems from implementation perspective. The content includes database system architecture , physical storage, index structure, query processing and optimization, transaction management, concurrency and recovery, database security. Through designing and implementing the class project MiniSQL, students are expected to get extended and deep understanding of DBMS, and enhance the developing capability for system software.

 


The College of Computer Science and Technology educates future leaders in computer science with interdisciplinary innovation capabilities to address global challenges in the AI2.0 world.