This page is where I share useful courses (maybe) that I have taken or have been recommended to take (but don’t have a chance to take yet).

Course I have taken

CS50 - Introduction to Artificial Intelligence with Python: Computer Science Courses from Harvard. It covers some basic concepts of artificial intelligence such as search problem (BFS, DFS, A*, etc.), knowledge, uncertainty, and neural networks.

CS144 - Introduction to Computer Networking: Learners can learn and practice implementing network L2/L3/L4 protocols (ARP, TCP/IP, etc.)

Coursera - Deep Learning Specialization: By Andrew Ng, co-founded Google Brain and Coursera, led AI at Baidu, and has reached and impacted millions of learners with his machine learning courses.

Coursera - Machine Learning Specialization: Coursera, By Andrew Ng.

Course I want to take

ECE447 - Introduction to Computer Architecture: This course introduces the basic hardware structure of a modern programmable computer, including the basic laws underlying performance evaluation. We will learn, for example, how to design the control and data path hardware for a ARM-like processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. In addition, we will develop a cycle-accurate simulator of this processor in C, and we will use this simulator to explore processor design options.

EECS498.008 - Deep Learning for Computer Vision: This course is a deep dive into details of neural-network based deep learning methods for computer vision. During this course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. We will cover learning algorithms, neural network architectures, and practical engineering tricks for training and fine-tuning networks for visual recognition tasks.

EECS498.009 - Applied Parallel Programming with GPUs: The goal of this class is to teach parallel computing and developing applications for massively parallel processors (e.g. GPUs). Self­driving cars, machine learning and augmented reality are examples of applications involving parallel computing. The course will cover popular programming interface for graphics processors (CUDA for NVIDIA processors), internal architecture of graphics processors and how it impacts performance, and implementations of parallel algorithms on graphics processors.