Introduction to Machine Learning


Machine learning has grown to be an important field of study in computer science in the recent years. This course introduces students to the algorithms and statistical models that help computer systems learn to perform a task without specific instructions and automatically improve their performance through data/experience. The course provides the necessary foundations and background to build practical machine learning systems and conduct research in machine learning. The course covers the mathematical background, derivations, modeling subtelities, and practical considerations for decision trees, naive Bayes, logistic regression, neural networks, support vector machines, and k-nearest neighbors.

Design and Analysis of Algorithms


Design and analysis of algorithms is one of the core topics in computer science. Sound knowledge and understanding of algorithms is crucial for landing and succeeding in software development jobs. This course covers important topics such as time complexity analysis, recursions and Big-O notations. The course also covers various sorting algorithms (e.g., selection sort, insertion sort) and important algorithmic paradigms such as divide and conquer, greedy algorithms and dynamic programming. The course also includes important topics such as trees and graphs. We discuss topics such as binary search trees, AVL trees, minimum spanning trees, Prim’s algorithm, Dijkstra’s algorithm and matching.

Introduction to Computer Networks


This course provides in-depth coverage of networking and communication protocols. Students will learn about the TCP/IP protocol stack including application layer, transport layer, network layer and link layer. Specifically, students will learn — application layer concepts and protocols (e.g., client-server model, HTTP, FTP, SMTP), transport layer concepts and protocols (e.g., reliable data transfer, TCP, UDP), network layer concepts and protocols (e.g., IP addressing, routing , forwarding) and link layer concepts and protocols (e.g., ARP, MAC addressing, MAC protocols). The course also provides an overview of wireless networking technologies (e.g., WiFi, bluetooth, cellular) and network security.

Introduction to Probability


Probability is a key mathematical concept that is essential for modeling and understanding computer system performance and real-world data generated from day-to-day activities and interactions. In particular areas such as machine learning, natural language processing, data science and computer vision rely heavily on probabilistic models. This introductory course in probability is designed to provide the necessary background for learning and understanding machine learning and data science concepts. Specifically, the course will introduce the concept of probability, provide an overview of discrete and continuous random variables and describe how to compute expectation and variance. The course will also discuss specific distributions such as geometric, binomial, poisson, uniform, exponential and normal distributions.

A 30-minute Course on Introduction to Java Programming


Probability is a key mathematical concept that is essential for modeling and understanding computer system performance and real-world data generated from day-to-day activities and interactions. In particular areas such as machine learning, natural language processing, data science and computer vision rely heavily on probabilistic models. This introductory course in probability is designed to provide the necessary background for learning and understanding machine learning and data science concepts. Specifically, the course will introduce the concept of probability, provide an overview of discrete and continuous random variables and describe how to compute expectation and variance. The course will also discuss specific distributions such as geometric, binomial, poisson, uniform, exponential and normal distributions.

How to kickstart your computer science research career?


Most computer science students are exposed to research for the first time during their undergraduate and graduate studies. Conducting research is challenging and many students find it difficult to get started. This course is designed to help computer science students to get started with research in computer science. This short course contains videos related to reading a research paper, conducting effective literature survey, writing a research paper and reviewing one.


Thank You Note: All videos here have been created by Prof. Arti Ramesh and Prof. Anand Seetharam. We have referred to and borrowed from multiple textbooks, slides, and lecture notes from professors around the world to create this content. We would like to extend our gratitude to all of them!