Academics
Graduate
Classification | Course No. | Course Title | Credits | |
---|---|---|---|---|
Required | Research | CSE590 | ECE Graduate Seminar | 1 |
Required | Research | CSE690 | Master’s Research | 1-3 |
Required | Research | CSE890 | Doctoral Research | 3-9 |
Required | Lecture | CSE511 | Advanced Computer Architecture | 3 |
Required | Lecture | CSE513 | Formal Languages and Automata | 3 |
Required | Lecture | CSE514 | Advanced Operating Systems | 3 |
Required | Lecture | CSE515 | Advanced Algorithms | 3 |
Required | Lecture | CSE516 | Advanced Compilers | 3 |
Required | Lecture | CSE518 | Modern Cryptography | 3 |
Required | Lecture | CSE520 | Computational Geometry | 3 |
Required | Lecture | CSE522 | Advanced Information Visualization | 3 |
Required | Lecture | CSE523 | Advanced Human-Computer Interaction | 3 |
Required | Lecture | CSE524 | Advanced Software Engineering | 3 |
Required | Lecture | CSE525 | Parallel Computing | 3 |
Required | Lecture | CSE526 | Programming Language Design | 3 |
Required | Lecture | CSE528 | Cloud Computing | 3 |
Required | Lecture | CSE529 | Autonomous Robots | 3 |
Required | Lecture | CSE539 | Advanced Computer Networks | 3 |
Required | Lecture | CSE544 | Advanced Machine Learning | 3 |
Required | Lecture | CSE545 | Advanced Computer Vision | 3 |
Required | Lecture | CSE551 | Advanced Computer Security | 3 |
Required | Lecture | CSE552 | Program Analysis | 3 |
Required | Lecture | CSE553 | Distributed Analysis | 3 |
Required | Lecture | CSE610 | S.T in Computer Engineering Ⅰ | 3 |
Required | Lecture | CSE611 | S.T in Computer Engineering Ⅱ | 3 |
Required | Lecture | CSE612 | S.T in Computer Engineering Ⅲ | 3 |
Required | Lecture | CSE613 | S.T in Computer Engineering Ⅳ | 3 |
Required | Lecture | CSE614 | S.T in Computer Engineering Ⅴ | 3 |
Required | Lecture | CSE710 | Natural Language Processing | 3 |
Required | Lecture | CSE714 | Artificial Intelligence | 3 |
Required | Lecture | CSE717 | Computational Complexity | 3 |
Required | Lecture | CSE719 | Information Retrieval | 3 |
Required | Lecture | CSE721 | Bioinformatics | 3 |
Required | Lecture | CSE723 | Big Data Systems | 3 |
Required | Lecture | CSE810 | Advanced Topics in Computer Engineering Ⅰ (Input topic) | 3 |
Required | Lecture | CSE811 | Advanced Topics in Computer Engineering Ⅱ (Input topic) | 3 |
Required | Lecture | CSE812 | Advanced Topics in Computer Engineering Ⅲ (Input topic) | 3 |
Required | Lecture | CSE813 | Advanced Topics in Computer Engineering Ⅳ (Input topic) | 3 |
Required | Lecture | CSE814 | Advanced Topics in Computer Engineering Ⅴ (Input topic) | 3 |
-
1Advanced Computer ArchitectureCSE511
This course provides the in-depth understanding of the design issues of processors, memory hierarchy, data bus architectures, and storage technologies.
-
2Formal Languages and AutomataCSE513
This course introduces the theory of formal languages and automata. Finite automata, regular expression, context-free grammar, pushdown automata, turing machine and computability will be covered in this course.
-
3Advanced Operating SystemsCSE514
This course is to introduce the core concepts in operating systems and distributed systems, and study recent research topics on computer systems. This course will cover topics including classic systems, large scale systems, multicore systems, and fault tolerance.
-
4Advanced AlgorithmsCSE515
This course introduces some of the main ideas and techniques in algorithms design and analysis. The topics we will cover include: a review of graph algorithms and data structures, NP-completeness and reductions, approximation algorithms, randomized algorithms, dynamic programming, maximum flow, linear programming, FFT.
-
5Advanced CompilersCSE516
This course introduces the concepts, architecture, and individual mechanisms behind the modern compilers. Specifically, students will learn how modern compilers analyze and transforms programs at compile time for various purposes including execution speed, memory consumption and security.
-
6Modern CryptographyCSE518
This is an introductory course on cryptography, covering fundamental cryptographic notions including pseudorandom generators, symmetric-key encryption, message authentication codes, public-key encryption, and digital signatures. Special emphasis is given to rigorous definition and provable security.
-
7Computational GeometryCSE520
Computational geometry studies efficient algorithms and data structures for solving large scale geometry problems. The topics to be covered include computational complexity, convex hull, line segment intersection, Delaunay triangulation, Voronoi diagram, Euclidean shortest path, mesh generation, and so on. The main goal of the course is to make students familiar with the fundamental data structures for geometric objects and train them to develop the efficient data structures. The knowledge and insight about algorithms and data structures gained from this course can be applied to various computer science research – database management systems, distributed systems, geographic information systems, computer graphics, etc.
-
8Advanced Information VisualizationCSE522
In this class, we will learn basic and state-of-the-art visualization techniques and systems. The class will cover data models, multi-dimensional visualization, graph and network, visual analytics, and storytelling visualization. We will also cover widely used information visualization libraries, such as d3.js.
-
9Advanced Human-Computer InteractionCSE523
This course introduces the concepts of Human-Computer Interaction (HCI) that enables computer scientists to design systems that consider human factors. In this course, students will learn what are the good and bad design from the perspective of users, and analytic and empirical evaluation methods.
-
10Advanced Software EngineeringCSE524
How to build reliable software in today’s development environment where constant rapid changes of software has become a norm? A key answer to this challenging question lies in the following possibility: many development tasks such as software testing, bug finding, bug fixing, and even code writing can be _automated_ in various degrees. In this course, we will see various fundamental techniques that enable automation of development tasks. These techniques include static analysis, dynamic analysis, and program repair/synthesis.
-
11Parallel ComputingCSE525
Parallel computing enables many computations to be carried out concurrently on parallel platforms ranging from multi-core architectures to high-performance clusters. This course introduces parallel architectures, parallel algorithms, parallel programming models and libraries (Pthreads, MPI, PVM, OpenMP), scalability, locking protocols, data localization, and the theoretical models for parallel computation.
-
12Programming Language DesignCSE526
This course introduces concepts of the design of high-level programming languages. It includes various programming language features, structural operational semantics, denotational semantics, logic semantics, algebraic implementation of data types, attribute grammar formalism, and axiomatic semantics.
-
13Cloud ComputingCSE528
This course is to understand key concepts and techniques of cloud computing and virtualization, which is the core technology for cloud computing. This course will cover interesting topics including x86 virtualization, virtual machine management techniques, cloud resource management and optimization, big data analysis on cloud, and high performance computing on cloud.
-
14Autonomous RobotsCSE529
Robotics is a topic in artificial intelligence which focuses on the physical aspect of intelligence. A machine that can interact successfully with our physical world is an important incarnation of an intelligent agent. In this course, we will introduce some basic algorithms for robotic research. Topics include, but are not limited to: motion control (PID control), observers and tracking (Kalman filters), localization (particle filters, SLAM), vision (segmentation and object detection), walking (zero-moment point), action and sensor modeling (STRIPS planning, optimization of humanoid walk), path planning (Rapidly-exploring Random Trees), behavior architectures (subsumption architecture), multi-robot coordination (multi-robot patrolling), reinforcement learning (Q-learning, multi-armed bandit), multi-robot interaction (socially intelligent robots), applications (autonomous vehicles), and social implications (Isaac Asimov’s “Three laws of Robotics”).
-
15Advanced Computer NetworksCSE539
This course provides in-depth understanding on the design and implementation of computer and communication networks. It covers a variety of analytical techniques to understand system performance, and advanced networking technologies for performance improvement in wired and wireless environment.
-
16Advanced Machine LearningCSE544
The goal of Machine Learning is to build intelligent system that can adapt behaviors based on their experience. This course will study the theory ad application of machine learning methods in graduate level. The main body of the course will cover computational learning theory and various recently developed machine learning methods. The methods includes supervised/unsupervised learning, on-line learning method, Bayesian inference, Support Vector Machine (SVM), Deep Networks and Conditional Random Fields.
-
17Advanced Computer VisionCSE545
This course aims at understanding how to build computer algorithms that operate similar to human visual systems. Topics include more about recent computer vision techniques that are able to generate/synthesize images or videos using deep generative models (GAN, VAE) or statistical 3D models.
-
18Advanced Computer SecurityCSE551
Through this course, students will have a chance to gain experiences in understanding and exploiting software and system vulnerabilities. The series of lab assignments will adopt gradually strong and modern defense mechanisms which students will have chances to bypass. By taking this course, the students will have better understanding in the effectiveness and implication of various security mechanisms that they are implicitly using, and learn the importance of writing programs securely, following common rules for secure coding.
-
19Program AnalysisCSE552
Will my program run as intended? How can I optimize programs without breaking its functionality? To answer such questions, it is essential to understand the semantic of a program. Program analysis is at its core a technique to understand programs. In this course, we will look at various techniques for program analysis.
-
20Distributed AnalysisCSE553
Distributed systems are the core of large-scale services in enterprises such as Microsoft and Googe. Distributed systems enable processing to be done better for many types of bigger tasks that are either not possible or limited by single computer systems. In this course, we will cover principles and techniques that form distributed systems, and related topics such as concurrency, scheduling, debugging, communication, programming abstractions, etc.
-
21CSE Graduate SeminarCSE590
The purpose of this course is to extend knowledge to the state-of-the-art R&D level by invited talks of the experts in various related scientific or engineering fields, and also possibly by presentations of the students in the course to exchange their own ideas and updated information for creative and fine-tuned achievements.
-
22S.T in Computer Engineering ⅠCSE610
This course introduces new research topics in the field of Computer EngineeringⅠ~ Ⅴ
-
23S.T in Computer Engineering ⅡCSE611
This course introduces new research topics in the field of Computer EngineeringⅠ~ Ⅴ
-
24S.T in Computer Engineering ⅢCSE612
This course introduces new research topics in the field of Computer EngineeringⅠ~ Ⅴ
-
25S.T in Computer Engineering ⅣCSE613
This course introduces new research topics in the field of Computer EngineeringⅠ~ Ⅴ
-
26S.T in Computer Engineering ⅤCSE614
This course introduces new research topics in the field of Computer EngineeringⅠ~ Ⅴ
-
27Master’s ResearchCSE690
This course is related to the student’s graduate thesis and dissertation. As such, students should be actively working in a laboratory setting and gaining experience through hands-on experimentation.
-
28Natural Language ProcessingCSE710
This course introduces the theory and techniques to process natural language with computer systems.
-
29Artificial IntelligenceCSE714
This course provides diverse techniques for designing intelligent decision-making machines. The topics covered in this course are machine learning, expert systems, neural networks, game theory, operations research, and heuristic algorithms.
-
30Computational ComplexityCSE717
Computational complexity theory studies how much resource (time or memory, for example) is required to solve a given computational problem. Topics covered in this class includes time complexity, space complexity, randomized computation, quantum computation, and interactive proofs.
-
31Information RetrievalCSE719
This course introduces theory and design of text-based information retrieval systems. It discusses the models and methodologies used in information retrieval systems, statistical characteristics, representation of information, clustering algorithms, collaborative filtering, automatic text categorization, etc.
-
32BioinformaticsCSE721
Bioinformatics studies methods for storing, retrieving, and analyzing biological data, such as protein sequence, structure, and genetic interactions. It deals with various computer science fields including algorithms, databases, information systems, artificial intelligence, data mining, image processing, and discrete mathematics.
-
33Big Data SystemsCSE723
This course will cover the state-of-the-art in large-scale data processing platforms while primarily focused on system runtimes that have been proposed to make those platforms more efficient, responsive, intelligent and programmable. In particular, this course will discuss mechanisms and policies in the field of batch and real-time data analytics, distributed processing of deep learning workloads, resource scheduling and management, resource disagreegation, serverless platforms, and public and private blockchain.
-
34Advanced Topics in Computer Engineering ⅠCSE810
This course introduces advanced research topics in the field of Computer EngineeringⅠ~Ⅴ
-
35Advanced Topics in Computer Engineering ⅡCSE811
This course introduces advanced research topics in the field of Computer EngineeringⅠ~Ⅴ
-
36Advanced Topics in Computer Engineering ⅢCSE812
This course introduces advanced research topics in the field of Computer EngineeringⅠ~Ⅴ
-
37Advanced Topics in Computer Engineering ⅣCSE813
This course introduces advanced research topics in the field of Computer EngineeringⅠ~Ⅴ
-
38Advanced Topics in Computer Engineering ⅤCSE814
This course introduces advanced research topics in the field of Computer EngineeringⅠ~Ⅴ
-
39Doctoral ResearchCSE890
This course is related to the student’s graduate thesis and dissertation. As such, students should be actively working in a laboratory setting and gaining experience through hands-on experimentation.
Category | Master (more than 28 credits) | Combined (more than 60 credits) | Ph.D (more than 60 credits) | |||
---|---|---|---|---|---|---|
Cours
(minimum 15) |
Research
(minimum 4) |
Course
(minimum 21) |
Research
(minimum1 8) |
Course
(minimum 12) |
Research
(minimum 14) |
|
Required credits | 18 | 7 | 30 | 24 | 15 | 42 |