The course provides an overview of the challenges of big data and existing solutions. Covered in this course include an introduction to the following topics: data capturing, storage, processing, retrieval, analysis, and visualization. The students will also learn some useful software tools or libraries for processing or analyzing big data. 

This course covers the principles and methodology of object-oriented analysis and design, with emphasis on the use of the Unified Modeling Language (UML), and also the object-oriented development methodology under the unified process. Students will study how to utilize various UML diagrams as well as several design patterns in software analysis and design processes.

Practical study related to 13016219 Object-Oriented Analysis and Design

This course provides an introduction to the theory of computation, covering the following topics: strings and languages, finite automata, equivalence of deterministic finite automata and nondeterministic finite automata, regular languages, regular expressions, regular grammars, relations between regular languages and regular grammars, properties of regular languages, pumping lemma for regular languages, context-free grammar, pushdown automata, relations between pushdown automata and context-free languages, properties of context-free languages, pumping lemma for context-free languages, Turing machines, equivalence of nondeterministic Turing machines and deterministic Turing machines, undecidable problems, computational complexity, important complexity classes (such as P, NP, and EXPTIME), reduction, and complete complexity classes.

The course covers the following topics: meanings of artificial intelligence, various knowledge representations (including semantic networks, frames, rules, logic, etc.), problem solving by search (including uninformed search and heuristic search), playing games using search, elementary logic, logical reasoning, knowledge-based systems, rule-based systems, expert systems, machine learning, planning, intelligent agents, and programming languages for artificial intelligence.

This course studies the structures and mechanisms of database management systems, physical structures of databases, access mechanisms, query processing, transaction processing, database recovery, concurrency control, distributed database systems, and object-oriented database systems.

An overview of computer networks, computer network referenced models such as OSI and TCP/IP, wire and wireless digital communication basis, concepts and agreements for peer-to-peer communication, LAN and WAN such as Ethernet and ATM, network layer design issues, routing algorithm, congestion control methodologies, standards and examples of networking, transport layer design issues, quality of services, standards and examples of transport protocols such as TCP and UDP and some computer network applications such as e-mail, WWW and network security.

Practical experiments related to 13016241 Computer Networks and Communications

This course studies fundamental concepts of human perception, ergonomics, cognition, and psychology of the interaction between human and computer systems, and also covers the following topics on the design of interactive software: requirement analysis for interactive software, principles and techniques of user interface design, types of input devices, choosing appropriate input devices, and validation and usability evaluation of interactive software.

This course studies some architectures of the microprocessors and microcontrollers, which are widely used in embedded systems, as well as peripherals interfacing, and software development on those architectures. The topics include the architectures of microprocessors and microcontrollers in embedded systems, memory interfacing, buses, interrupts, interfacing with input/output devices, the conversion between analog signals and digital signals, interfacing with sensors and actuators, and data communication through ports (such as RS-232 ports, USB ports, and parallel ports).