Curriculum
Mathematics and Basic Sciences
01006723 General Physics 1 3 (3-0-6)
Prerequisite: None
This course covers basic physics and mechanics including a study of motion, space and time, kinematics, Newton’s law of motion, forces, energy and momentum, work, power, conservation laws, systems of particles, linear momentum, circular motion, rotation, torques, harmonic oscillation and gravitation.
01006724 General Physics Laboratory 1 1 (0-3-2)
Prerequisite: None
The experiment that corresponds to the subject in 01006723 General Physics 1.
01006725 General Physics 2 3 (3-0-6)
Prerequisite: General Physics 1
This course provides the physical science required to analyze electrical and electronic devices. Covered topics include electrostatics and electromagnetics, electric field and potential, conductors, insulators, capacitors, dielectrics, electric current, electric circuits, magnetic fields, and electromagnetism.
01006726 General Physics Laboratory 2 1 (0-3-2)
Prerequisite: None
The experiment that corresponds to the subject in 01006725 General Physics 2.
01006710 Intro to Calculus 3 (3-0-6)
Prerequisite: None
Function, Limit, Continuity and their applications, Introduction to derivative, Differentiation, Applications of derivative, Definite integrals, Antiderivative integration, Application of definite integral, Indeterminate forms, Improper integrals, Numerical integration, Sequences and series of numbers, Taylor series expansions of elementary functions.
01006711 Advanced Calculus 3 (3-0-6)
Prerequisite: Intro to Calculus
Functions of several variables and their applications, Vector algebra in three dimensions, Polar coordinates, Calculus of real-valued functions of two variables, Differentiation, and integration of real-valued and vector-valued functions of multiple real variables, Introduction to line integrals, Lines, planes and surfaces in three-dimensional space, Calculus of real-valued functions in three-dimensional space,
01006717 Differential Equations 3 (3-0-6)
Prerequisite: Advanced Calculus
Differential equations and their solutions; First-Order Differential Equations; Applications of First-Order Differential Equations; Explicit Method of Solving Higher-Order Linear Differential Equations; Applications of Second-Order Linear Differential Equations; Systems of Linear Equations.
01276206 Probability and Random Variables 3 (3-0-6)
Prerequisite: None
This course introduces students to probability and random variables. Topics include conditional probability and independence; Bayes’ theorem; distribution functions; discrete probability distributions; continuous probability distributions; joint distributions; Chebyshev inequality; law of large numbers; central limit theorem. Further selected topics may also be covered, such as Markov chains, Poisson process and elementary queuing theory.
01276207 Introduction to Statistics 4 (3-3-8)
Prerequisite: 01276206 Probability and Random Variables
This course offers the introduction to statistics. Topics include descriptive statistics; review of probability and random variables; estimation; sampling distribution; hypothesis testing; goodness of fit tests; linear regression and correlation analysis, multiple linear regression, logistics regression, analyses of variance and covariance. The course includes laboratories that emphasize hands-on statistical data analysis with a high-level programming language such as Python and R.
01006716 Linear Algebra 3 (3-0-6)
Prerequisite: None
Matrices and system of linear equations; solving system of linear equations; vector spaces and subspaces; orthogonality; determinants; eigenvalues and eigenvectors; linear transformation.
01276209 Discrete Mathematics 3 (3-0-6)
Prerequisite: None
This course covers widely applicable mathematical tools for computer engineering. Topics include formal logic notation, propositional logic, first-order logic, logical inference, proof methods; sets, functions, relations; elementary number theory, integer congruences; counting principles; discrete probability; elementary graph theory. Further selected topics may also be covered, such as mathematical induction and recursion.
Computer Hardware and Architecture
01276111 Circuit and Electronics 4 (3-3-8)
Prerequisite: None
Fundamentals electric circuit. Ohm’s law, Kirchhoff’s law, Thevenin’s and Norton’s theorems, superposition, capacitor, Inductor. Semiconductor devices, device current-voltage and frequency characteristics, P-N junction, diode circuits, analysis, and design of BJT and MOS transistor circuits, operational amplifier, and its applications.
01276112 Digital System Fundamentals 4 (3-3-8)
Prerequisite: None
Introduction to digital systems; binary systems; Boolean algebra and simplification; combinational circuit; sequential components, i.e., Latches, flip-flops, registers, and counters; sequential circuits; basic ALU (arithmetic and logic unit) and control unit; hardware description language.
01276213 Computer Architecture and Organization 4 (3-3-8)
Prerequisite: 01276112 Digital System Fundamentals
Overview of computer architecture and organization; assembly programming and instruction set architecture; high-level software to low-level instructions; data representation; computer arithmetic; memory allocation and access; central processing unit; memory hierarchy; data transfer and input/output (I/O) techniques; measuring system performance. Additional topics include parallelism in computer architecture, and introduction to GPU.
01276314 Microcontroller Interfacing 4 (3-3-8)
Prerequisite: 01276112 Digital System Fundamentals
Microcontroller architecture; digital input and output; serial communications; analog-to-digital conversion; digital-to-analog conversion; timers; interrupt handling; sensors and actuators; displays; memory technology; microcontroller programming and development.
Systems Infrastructure
01276121 Computer Programming 4 (3-3-8)
Prerequisite: None
The course introduces the fundamental concepts of procedural programming with emphasis on problem solving. Topics include data types, control structures, functions, arrays, files, pointer and the mechanics of running, testing, and debugging.
01276222 Data Structure and Algorithms 4 (3-3-8)
Prerequisite: 01276131 Object-Oriented Programming
Fundamental of solving problems using data structures including linked lists, trees, stacks, queues, hash tables, and graphs. Algorithms for sorting, searching, and other fundamental operations. Introduction to foundations for analysis of iterative and recursive algorithms. Implementation of selected algorithms using object-oriented paradigm.
01276223 Computer Networks 4 (4-3-8)
Prerequisite: 01276112 Digital System Fundamentals
Fundamental concepts and protocols in computer networks, particularly IP networks. Packet switching and circuit switching networks, layered network architectures. Application layer protocols, TCP/IP protocol suite, routing protocols, link layer protocols and multiple access networks. Wired and wireless local area network standards.
01276324 Operating Systems 3 (3-0-6)
Prerequisite: 01276213 Computer Architecture and Organization
Organization and structure of operating systems. Control, communication, and synchronization of concurrent processes. Processor and job scheduling. Memory organization and management including paging, segmentation, and virtual memory. Resource management. Deadlock avoidance, detection, recovery. File system concepts and structure. Protection and security. Distributed processing. A brief introduction to OS virtualization and cloud computing.
01276325 Information and Computer Security 3 (3-0-6)
Prerequisite: None
Overview of theories, principles, and knowledge in information security; Risk management, Access control; Encryption and Decryption; Physical security; Security architecture; Business continuity plan; Application security; Operating system and Service platform protections; Threats and Malwares; Basis of network security; Privacy, Ethical, and Legal issues.
01276326 Theory of Computation 3 (3-0-6)
Prerequisite: 01276209 Discrete Mathematics
Finite automata, regular expressions, push-down automata, context free grammars, pumping lemmas, Turing machines, Time and space complexity measures, P and NP complete problems.
Software Development
01276131 Object-Oriented Programming 4 (3-3-8)
Prerequisite: 01276121 Computer Programming
This course introduces the key concepts of object-oriented programming including objects and classes, encapsulation, abstraction, inheritances, polymorphism, as well as exception handling. Rather than the syntax of a particular programming language, the course emphasizes on how to think in term of objects. Students need to analyze program specifications and identify appropriate classes and objects. Additional programming topics include basic UML modelling such as class diagram and object diagram, principles of object-oriented design, and design patterns.
01276232 Software Development Process 4 (3-3-8)
Prerequisite: 01276131 Object-Oriented Programming
Introduction to modern software development principles and practices, including the use of software processes in actual product development: life cycle models, IDE, version control system, user requirements gathering, object-oriented software and various UML diagrams, software architecture, software design and implementation, testing, software refactoring.
01276233 Web Programming 4 (3-3-8)
Prerequisite: 01276131 Object-Oriented Programming
This course introduces the concepts of web programming and web applications development. The topics covered include basic construction of web page, HTML5, document object model (DOM), cascading style sheets (CSS), JavaScript, model-view-controller design, web framework, design concepts, as well as brief introduction to RESTful web services.
Application Technologies
01276241 Database Systems 3 (3-0-6)
Prerequisite: None
Database system concepts; files and databases; database system architecture; data entities and relationships; data modeling using Entity-Relation Diagrams and normalization technique; hierarchical; network and relational models of databases; query language and database language.
01276342 Artificial Intelligence 3 (3-0-6)
Prerequisite: 01276222 Data Structure and Algorithms
Meanings of artificial intelligence; Various knowledge representations, such as semantic networks, frames, rules, logic, etc.; Problem solving by search, i.e., uninformed search, heuristic search, playing games using search, elementary logic, logical reasoning, knowledge base systems, rule-based production systems; Expert systems; Machine learning, planning; Intelligent agents; Computer languages for artificial intelligence.
01276343 Machine Learning 3 (3-0-6)
Prerequisite: 01276207 Introduction to Statistics
This course provides a broad introduction to machine and statistical learning. Topics covered include supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning); learning theory (bias/variance trade-offs; VC theory; large margins); reinforcement learning and adaptive control.
Computer Engineering Project Preparation
01276390 Computer Engineering Project Preparation 2 (1-3-2)
Prerequisite: None
Computer engineering project preparation for select senior project: defining a question, basic research knowledge, skills to selected project, preparing a comprehensive literature review of chosen topic, technical report writing and verbal communication.
Computer Hardware and Embedded Systems
01276511 Introduction to Micro robotics 3 (3-0-6)
Prerequisite: 01276112 Digital System Fundamentals
Introduction to robotic basic; study of theory and principle of micro-robot in hardware and software; design and development in robot: mechanic, control, display, movement, detector; Computer Programming in robot control; application of input output devices: sensor, motor, ultrasonic; assembling and testing system; control programs and interfacing technique; testing and debugging.
01276512 Real-Time Embedded Systems 3 (3-0-6)
Prerequisite: 01276314 Microcontroller Interfacing
This course is composed of two parts. The first part focuses on principle of real-time operating system (RTOS) including determinism, real-time scheduling, interrupt handling and latency, task synchronization, inter-task communications and real-time debugging. The second part covers basic concept of programming and debugging Linux application, Linux kernel configuration, device driver development, bootloader, filesystem, and deployment of embedded Linux devices.
01276513 Internet of Things and Smart Systems 3 (3-0-6)
Prerequisite: 01276314 Microcontroller Interfacing
Introduction to concepts and technology behind the Internet of Things: smart devices, communication (BLE, Wi-Fi, Wireless Sensor Networks, LoRa, Zixbee), agents and multi-agent system, protocol (HTTP, uPnP, CoAP, MQTT, XMPP), Internet of things service platform, security, and interoperability.
01276714 High Performance Computing 3 (3-0-6)
Prerequisite: 01276213 Computer Architecture and Organization
This course introduces high-performance computing and its usage in solving scientific problems. Major topics include grid and cluster computing, parallel computing, agent-based modelling, and simulation.
IT Infrastructure and Security
01276521 Introduction to Cloud Computing 3 (3-0-6)
Prerequisite: None
The course introduces student to cloud computing. It overviews the technology that support the cloud, and the concepts required to utilize cloud services. It covers managing data in the cloud, and how to program cloud services; computing in the cloud, from deploying single virtual machines or containers to cluster of machines; using the cloud as a platform for automating analysis procedures, machine learning, and analyzing streaming data; building your own cloud with open-source software; and cloud security.
01276722 Practice of System Administration 3 (3-0-6)
Prerequisite: None
Introduction to basic concepts of system administration. Topics covered include operating systems and networking overview, operating system installation, user and resource management, file systems and processes, performance tuning and maintenance, networking, systems, and Internet related security, system services and common applications, web services, database services, and mail servers. Students will gain hands-on experience through installation, configuration, and administration of operating systems and related virtualization software.
01276523 Practical Computer Networking 4 (3-3-8)
Prerequisite: 01276223 Computer Networks
The course focuses on the practical skills of computer networking including, network design, industry standards and communication protocols, logical and physical topologies for local area networks (LANs) and wide area networks (WANs), routing and switching concepts, IP subnetwork, Virtual LAN, spanning tree; inter-VLAN routing, gateway redundancy technologies, wireless LAN, IP telephony, security feature in switched networks. Additional topics cover the global structure of the Internet, autonomous system peering, and internet exchange points.
01276724 Information Security Management 3 (3-0-6)
Prerequisite: 01276325 Information and Computer Security
Information security concepts and theories, security architecture, security improvement process, security devices and protection tools, security management, security standards, security policy, and legal issues.
01276725 Penetration Testing and Ethical Hacking 3 (3-0-6)
Prerequisite: 01276325 Information and Computer Security
Introduction to the principles and techniques associated with the cybersecurity practice known as penetration testing or ethical hacking. The course covers planning, reconnaissance, scanning, exploitation, post-exploitation, and result reporting. The student discovers how system vulnerabilities can be exploited and learns to avoid such problems.
Software Development Technologies
01276531 Mobile Application Development 3 (3-0-6)
Prerequisite: 01276131 Object-Oriented Programming
This course introduces students to programming technologies, design and development related to applications for mobile devices, including smartphones and tablets. Students are introduced to the current mobile operating systems, such as Android and iOS. Students shall explore through various development tools starting from visual programming environment to advance software development framework. At the end of this course, students should be able to develop their own applications for mobile devices.
01276732 Blockchain Technology 3 (3-0-6)
Prerequisite: 01276325 Information and Computer Security
This course introduces fundamentals of blockchain, its underlying technologies, and applications. The course starts by exploring how blockchain and distributed ledger work. Types of blockchain network will be explained, namely public, private, and consortium. The course then covers cryptographic proof and blockchain consensus. Students will learn how to develop distributed applications with smart contracts and integrate blockchain technology into their projects. Addition topics include blockchain security issues, and related regulations.
01276533 Distributed Computing 3 (3-0-6)
Prerequisite: 01276324 Operating Systems
This course covers a broad range of topics related to distributed systems, including distributed architectures, group communication, synchrony, clock synchronization, message ordering, mutual exclusion, distributed consensus, data replication, fault tolerance, and CAP theorem.
01276534 Functional Programming 3 (3-0-6)
Prerequisite: 01276222 Data Structure and Algorithms
This programming course covers the principles of functional programming, including the use of functions as values, recursion, immutability, pattern matching, higher-order functions and collections, and lazy evaluation. Additional topics include practical uses of functional programming, such as big data processing.
01276535 Advanced Database Systems 3 (3-0-6)
Prerequisite: 01276241 Database Systems
Database management systems; structure and components; physical databases; access mechanisms; query processing; transaction processing; recovery control; concurrency control; distributed database systems; object-oriented databases; deductive databases.
Software Engineering and Design
01276541 Requirements Engineering 3 (3-0-6)
Prerequisite: 01276232 Software Development Process
Introduction to requirements engineering techniques for software-intensive systems; requirements modeling; requirements elicitation; software requirements specification (SRS) document; requirements representation (formal and informal); requirements validation.
01276542 Software Architecture 3 (3-0-6)
Prerequisite: 01276232 Software Development Process
The following are topics to be covered: The fundamentals of software architecture. Software architecture and quality requirements of a software system. Fundamental principles and guidelines for software architecture design. Methods, techniques, and tools for describing software architecture and documenting design rationale. Software architecture design and evaluation processes. Approaches and tools for designing and evaluating software architectures.
01276543 Software Testing 3 (3-0-6)
Prerequisite: 01276232 Software Development Process
Preparation for developing high-quality software through successful verification and validation techniques. Fundamental principles of software testing, implementing software testing practices, ensuring the thoroughness of testing to gain confidence in the correctness of the software.
01276544 Human–Computer Interaction 3 (3-0-6)
Prerequisite: None
Human computer interaction, human factors, psychology, task analysis, user-centered design, usability engineering, interface design and evaluation, ubiquitous computing, collaborative, and virtual environment.
01276545 User Experience and User Interface Design 3 (3-0-6)
Prerequisite: 01276233 Web Programming
This course provides a comprehensive overview of the user experience and user interface design process, and is intended to familiarize students with the methods, concepts, and techniques necessary to make user experience design an integral part of developing information interfaces. The course provides students with an opportunity to acquire the resources, skills, and hands-on experience they need to design, develop, and evaluate information interfaces from a user-centered design perspective.
Data Science and Machine Intelligence
01276551 Introduction to Data Analytics 3 (3-0-6)
Prerequisite: 01276207 Introduction to Statistics
This course presents a wide range of data analytic techniques and is structured around the broad contours of the different types of data analytics, namely, descriptive, inferential, predictive, and prescriptive analytics.
01276752 Data Mining 3 (3-0-6)
Prerequisite: 01276343 Machine Learning
Data mining concepts and techniques; Efficiency, pros and cons of data mining algorithms; Data preprocessing; Frequent pattern mining; Association rules; Classification; Prediction; Cluster analysis; Neural network; Mining special data: multimedia data, social network data, and spatial data; Data mining applications and trends; Data warehousing.
01276753 Recommender Systems 3 (3-0-6)
Prerequisite: 01276343 Machine Learning
This course presents basic concepts of recommender systems as well as various implementation approaches, namely collaborative filtering, content-based approach, knowledge-based approach, and hybrid recommendation approaches. The course also covers evaluation of recommender systems and practical applications.
01276554 Deep Learning 3 (3-0-6)
Prerequisite: 01276343 Machine Learning
Types of learning; Linear classification with perceptron; Basic optimization with gradient descent; Fully connected neural network; Loss function; Back-propagation algorithm; Convolutional neural network.
01276755 Natural Language Processing 3 (3-0-6)
Prerequisite: 01276343 Machine Learning
This course presents fundamentals of natural language processing. Topics covered include text processing; N-gram language models; sentiment analysis; part of speech tagging; sequence labelling; neural networks for natural language processing; syntactic parsing; statistical parsing; information extraction; semantic analysis; machine translation; dialog and conversational agents.
Multimedia Computing
01276561 Image Processing 3 (3-0-6)
Prerequisite: None
Image Signal; Analysis Image Signal; Image Acquisition; Image Enhancement in the Spatial Domain; Image Enhancement in the Frequency Domain; Image Filtering; Image Segmentation; Image Representation; Image Coding.
01276562 Multimedia Systems 3 (3-0-6)
Prerequisite: None
Media Classification; Digital data representation and communication; Digital image representation; Digital image processing; Digital audio representation; Digital audio processing; Digital video data representation and communication; Digital video processing.
01276563 Computer Graphics 3 (3-0-6)
Prerequisite: None
Overview of graphic systems; input-output devices; scan-conversion; two-dimensional transformations; translation; scaling; rotation; reflection; shearing; windowing concepts; clipping algorithms; window-to-viewport transformation; three-dimensional concepts; three-dimensional representations; three-dimensional transformations; three-dimensional viewing; hidden-surface and hidden-line removal; shading and color models; application of computer graphics.
01276764 Augmented Reality 3 (3-0-6)
Prerequisite: None
Augmented reality architecture, image recognition, 3D interaction, tracking technology, geolocation functionality, augmented reality programming; sensors, fiduciary markers, and markerless. Augmented reality game project.
Alternative Study
01276991 Capstone Design Project 1 3 (0-9-5)
Prerequisite: 01276390 Computer Engineering Project Preparation
Computer engineering project or research topic in the related fields is carried out under supervision of department members. Progress of works must be reported regularly throughout semester. At the end of semester, reports and project summary must be submitted and an oral presentation of works is reported to the examination committee.
01276992 Capstone Design Project 2 3 (0-9-5)
Prerequisite: 01276991 Capstone Design Project 1
The continuation of work, in Capstone Design Project 1, is made to the completion. Progress of works must be reported regularly throughout semester. At the end of semester, the completed work and full report are required in submission. Oral presentation and demonstration of works are presented to the examination committee.
01006301 Co-operative Education 6 (0-45-0)
Prerequisite: None
The students participate in the cooperative work with industrial partners at least 16 weeks. The approval and evaluation by the department committee is required.
01006302 Study Aboard 6 (6-0-12)
Prerequisite: None
This course is reserved for students who participate in the study aboard program. Upon the completion of the program, the students must prepare and deliver oral presentations describing their experience from the program.