Computer Science Course Catalogs

CS001: Principles of Computer Science

This course provides knowledge about basic principles of computer science: computer systems, operating systems, symbolic and numeric computation, basic theoretical foundations, algorithms and programming, database systems, information systems, and the applications of IT.

CS002: Information Technology Ethics

This course provides an insight about professional and ethical behaviors regarding information technology (IT) in the modern business world. The topics covered in this course are about ethical concepts as well as moral problems within IT, discussed from a global point of view, ranging from codes of ethics, aspects of integrity, computer and Internet crime, privacy, freedom of expression, intellectual property, hacking, and the digital divide, to ethics in social networking and online communities. They can be seen as the foundation for students to make appropriate decisions when faced with difficult situations and make a positive impact in their future IT-related business.

CS111: Introduction to Computer Science

Introduction to the practices and principles of computer science and programming and their impact on and potential to change the world. Algorithmic, problem-solving, and programming techniques using high-level languages (Java) and design techniques emphasizing abstraction, encapsulation, problem decomposition. Topics also consists of Intro to object oriented programing. Prerequisite for all other courses in CS

CS201: Data Structures and Algorithms

Analysis, use, and design of data structures and algorithms using an object-oriented language like Java to solve computational problems. Emphasis on abstraction including interfaces and abstract data types for lists, trees, sets, tables/maps, and graphs & its algorithms. Methods for external storage such indexing are also introduced. Prerequisites: CS111.

CS202: Discrete Maths for Computer Science

Mathematical notations, logic, and proof; linear and matrix algebra; graphs, digraphs, trees, representations, and algorithms; counting, permutations, combinations, discrete probability, Markov models; advanced topics from algebraic structures, geometric structures, combinatorial optimization, number theory. Prerequisites: MATH101

CS203: Computer Organization and Programming

Computer structure, machine language, instruction execution, addressing techniques, and digital representation of data. Computer systems organization, logic design, microprogramming, and interpreters. Symbolic coding and assembly systems. Practice with C language. Prerequisites: CS111, CS202 or consent of instructor.

CS204: Software Design and Implementation

Techniques for design and construction of reliable, maintainable and useful software systems. Programming paradigms and tools for medium to large projects: revision control, tools, performance analysis, UML, design pattern, GUI & Usability, software engineering, testing, documentation. Prerequisites: CS201

CS205: Introduction to Operating Systems

Basic concepts and principles of multiprogrammed operating systems. Processes, interprocess communication, CPU scheduling, mutual exclusion, deadlocks, memory management, I/O devices, file systems, protection mechanisms. Prerequisites: CS111

CS206: Design and Analysis of Algorithms

Design and analysis of efficient algorithms including sorting, searching, dynamic programming, greedy algorithm, graph algorithms, fast multiplication, and others; nondeterministic algorithms and computationally hard problems. Prerequisites: CS201 & CS202

CS320: Introduction to Artificial Intelligence

Algorithms and representations used in artificial intelligence. Introduction and implementation of algorithms for search, planning, decision, theory, logic, Bayesian networks, neural network, robotics. Prerequisites:

CS331: Introduction to Information Systems

This course is intended to provide a broad introductory understanding of information. Topic includes: (1) IS concepts: the sociotechnical character of information systems, notions of information, data, capture of data, storage and display, information processing. (2) IS within organizations: the roles and functions of information systems within organizations including providing management information, supporting knowledge work and undertaking transaction processing. (3) Information and communications technologies: review of the development of information and communication technology, introduction to computer hardware and software. Prerequisites:

CS350: Introduction to HCI

Survey of human-computer interaction concepts, theory, and practice. Basic components of human-computer interaction. Interdisciplinary underpinnings. Informed and critical evaluation of computer-based technology. User-oriented perspective, rather than system-oriented, with two thrusts: human (cognitive, social) and technological (input/output, interactions styles, devices). Design guidelines, evaluation methods, participatory design, communication between users and system developers.

CS380: Independent Study

Self-study a new technology, a programming language, a system, or a hot topic, etc. Prerequisites: consent of instructor.

CS391: Web Programming

Introduction to the programming languages (e.g., PHP), authoring tools, and other technologies needed to design and implement effective sites on the World Wide Web. Topics include HTML, Javascript, XML, AJAX, cgi-bin, multimedia, security and MySQL. Course project is to design or redesign a web site.

CS392: SOA & Cloud Computing

This course includes two parts: 1) Introduction to Service Oriented Architecture and its application to software system. Topics include: Web service and its composition with BPEL language. 2) Overview of cloud computing: Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), Data as a Service (DaaS), etc. Course project is to implement a web service composition deployed in the existing PaaS such Google App Engine, Window Azure.

CS406: Parallel Computing

CS421: Machine Learning

Machine Learning is the study of computer algorithms that improve automatically through experience. Applications range from data mining programs that discover general rules in large data sets, to information filtering systems that automatically learn users' interests. Topics include: decision tree learning, artificial neural networks, evaluating hypotheses, Bayesian learning, computational learning theory, Instance-Based learning, genetic algorithms, learning sets of rules, analytical learning. Prerequisites:

CS422: Data Mining

Data mining is a broad area that integrates techniques from several fields including machine learning, statistics, pattern recognition, artificial intelligence, and database systems, for the analysis of large volumes of data. This course gives a wide exposition of these techniques and their software tools. Topics include: association analysis, classification, clustering, numeric prediction, pattern discovery in sequential data, and Bayesian networks. Prerequisites:

CS423: Introduction to Computer Vision

The goal of computer vision is to compute properties of the three-dimensional world from digital images. Problems in this field include identifying the 3D shape of an environment, determining how things are moving, and recognizing familiar people and objects, all through analysis of images and video. This course provides an introduction to computer vision, including such topics as feature detection, image segmentation, motion estimation, image mosaics, 3D shape reconstruction, and object recognition. Prerequisites:

CS424: Introduction to Image & Video Processing

CS426: Natural Language Processing

This course provides an introduction to the field of computational linguistics, aka natural language processing (NLP). We will learn how to create systems that can understand and produce language, for applications such as information extraction, machine translation, automatic summarization, question-answering, and interactive dialogue systems. The course will cover linguistic (knowledge-based) and statistical approaches to language processing in the three major subfields of NLP: syntax (language structures), semantics (language meaning), and pragmatics/discourse (the interpretation of language in context)

CS430: Database Systems

Databases and relational database management systems.  Data modeling, database design theory, data definition and manipulation languages, storing and indexing techniques, query processing and optimization, concurrency control and recovery, database programming interfaces. Current research issues including XML, web data management, data integration and dissemination, data mining. Hands-on programming projects. Prerequisites:

CS437: System Analysis and Design

In business, System Analysis and Design refers to the process of examining a business situation with the intent of improving it through better procedures and methods. System analysis and design relates to shaping organizations, improving performance and achieving objectives for profitability and growth. This course focuses on development life cycle of an IS as a case study. Topic includes: project selection, feasibility study, analysis, design, implementation, and maintenance. Prerequisites: CS310

CS440: Computer Networks

Networking and distributed systems. Network infrastructure support for distributed applications ranging from email to web browsing to electronic commerce. Principles underlying the design of our network infrastructure and the challenges that lie ahead. The socket API, security, naming network file systems, wireless networks, Internet routing, link layer protocols (such as Ethernet), and transport protocols (TCP). Hands-on programming assignments covering issues in distribut­ed systems and networking.

CS441: Graphs & Networks

A mathematical examination of graphs and their application in the sciences. Families of graphs include social networks, small-world graphs, Internet graphs, planar graphs, well-shaped meshes, power-law graphs, and classic random graphs. Phenomena include connectivity, clustering, communication, ranking and iterative processes.

CS442: Digital Communication Systems

CS443: Wireless Communication Systems

CS450: Computer Graphics

Overview, motivation, and history; OpenGL and OpenInven­tor; coordinate systems and geometric transforms; drawing routines, antialiasing, supersampling; 3d object representation, spatial data structures, constructive solid geometry; hidden-surface-removal algorithms, z-buffer, A-buffer; illumination and shading models, surface details, radiosity; achromatic light, color specification, colorimetry, different color models; graphics pipeline, SGI reality engine, Pixel 5; animation, levels of detail.

CS453: Interactive Visualization

This course is an introduction to key design principles and techniques for interactively visualizing data. The major goals of this course are to understand how visual representations can help in the analysis and understanding of complex data, how to design effective visualizations, and how to create your own interactive visualizations using modern (Web-based) frameworks.

CS470: Software Engineering

Writing specification, design and development of large, reliable software systems. Students are required to work in group. Topics include: feasibility study, requirement analysis, design, implementation, test and maintenance. Advanced topics include: professionality, project management, and license.

Prerequisites: CS204 and skilled in programming.

CS472: Software Project Management

Software project management refers to the knowledge of planing, organizing, and monitoring the development process to make sure:

i) our solution/application is the perspective of organization;

ii) good communication and collaboration among team members, and others;

iii) resources are contributed to right object and right time;

iv) work process, cost and plan always in control and documentation.

Topics include: software project development methods (e.g., waterfall, iterative, or agile), resource changing, risk, virtual group management and failures. Hands-on programming projects.

Prerequisites: CS470

CS480: Independent Research

Individual research in a field of special interest under the supervision of a faculty member, the central goal of which is a substantive paper, project, or written report containing significant analysis and interpretation of a previously approved topic. Prerequisites: consent of instructor

CS481: Internship

A faculty member will supervise a program of study related to the work experience, including a substantive paper containing significant analysis and interpretation on a computer science-related topic. Consent of director of internship programs required. Engaged in both industrial work and laboratory research.

CPS401: Modeling and Simulation

CPS402: Quantum Mechanics

The course introduces to junior and senior students, who select the computational science concentration, fundamental concepts in quantum mechanics such as wave functions, Hilbert spaces, time-dependent/independent Schrodinger equation, the Heisenberg uncertainty principle, etc., and some applications of quantum mechanics in science and engineering problems.

CPS403: Computational Economics