Feedback

Prof. Chittaranjan Hota  

Senior Professor,
Dept. of Computer Science and Information Systems

Birla Institute of Technology & Science, Pilani
Hyderabad Campus
Jawahar Nagar, Kapra Mandal
Dist.-Medchal-500 078
Telangana, India

Courses(2024-25)

First Semester, BITS F464 (Machine Learning):

Scope and Objectives of the course:  This course is an undergraduate course on Machine Learning. ML is the sub-field of Artificial Intelligence. It helps engineers build automated systems that learn from experiences. It helps machines make data-driven decisions. For example, Google Maps for navigation uses the route network, real-time traffic characteristics, time of travel etc. to predict an appropriate path for you using ML algorithms. ML is a muti-disciplinary field, with roots in Computer Science, and Mathematics. ML methods are best described using linear and matrix algebra and their behaviour are best understood using the tools of probability and statistics. By integrating mathematical principles, you will learn to effectively address machine learning challenges, developing a deep understanding similar to that of professional data scientists. According to the latest estimates, 328 million terabytes of data are created daily. With this increasing amounts of data, the need for automated methods for data analysis continues to grow. The goal of this course is to develop methods that can automatically detect patterns in data, and then use the uncovered patterns to predict the future outcomes of interest. This course will cover many ML and Gen AI models and algorithms, including Linear regression, Multi-layer neural networks, Support vector machines, Bayesian networks, Gaussian mixture models, Clustering algorithms, Generative adversarial networks (GANs), RNNs, and Reinforcement learning techniques. Hands-on experience will be emphasized, allowing you to select optimal models and master the essential implementation details critical to their success. Practical sessions (Coding assignments) will involve working with real-world data, enhancing your proficiency in debugging and refining models through various ML techniques. The course objectives are the following:

  • To understand various ML techniques like Model selection, Under-fitting, Over-fitting, Cross-validation, Regularization etc.
  • To understand and build appropriate supervised learning algorithms for classification problems like Decision Trees, Naïve Bayes, Support vector machines (SVMs), Artificial Neural Networks etc.
  • To understand and build appropriate supervised learning algorithms for regression problems like Linear regression, Polynomial regression, Ridge regression etc.
  • To understand and build appropriate un-supervised learning algorithms for clustering, linear and non-linear dimensionality reduction etc.
  • To understand architectures and build Sequential and Generative AI models like RNNs, LSTMs, GANs etc.
  • To test run appropriate ML algorithms on real world and synthetic datasets and interpret their results over ML frameworks like ScikitLearn, TensorFlow, Keras, PyTorch etc.

Course Handout: Click here.

Class Presentations:

Sl. No.

Topic

Class Presentations

1.

Course Administration and Motivation

Click here

2.

Machine Learning Overview

Click here

3.

Machine Learning Frameworks

Click here

4.

Supervised Learning - I (Version Space) Click here

5.

Supervised Learning - II (Decision Trees/ Random Forests)

Click here

6.

Model Evaluation (Bias, Variance, Cross-validation, Confusion Matrix, Out-of-Bag metric etc.)

Click here

7.

Regression Models (Linear Regression, Logistic Regression, Gradient Descent, Stochastic GD)

Click here

8. 

Linear Discriminant Functions for Classification, Least Squares for Classification, Fisher's Discriminant Function

Click here

9.

Probabilistic approach to Machine Learning (Bayesian Networks, Naïve Bayes Algorithm)

Click here

10.

Neural Networks - I (Connectionist Models: Perceptron, Multi Layer Perceptron (MLP), Back Propagation Algorithm, Regularization, Augmentation)

Click here

11.

Neural Networks - II (Convolutional Neural Networks, Recurrent Neural Networks, Autoregressive Models and Generative Adversarial Networks (GANs))

 

12.

Instance-based and Kernel-based Learning (k-Nearest Neighbor (k-NN), and Support Vector Machines (SVMs))

 

13.

Un-supervised learning (K-Means Clustering, Gaussian Mixture Models, Principal Component Analysis (PCA) for feature reduction)

 

14.

Re-inforcement Learning (Markov Decision Process and Q-Learning)

 

 

Programming Assignments:

Sl. No.

Problem Definition                                                                                                        

Problem Statement

1

Data Exploration, Pre-Processing and Data Wrangling

Click here

2

Decision Forests using TensorFlow

Click here

3

Regression and LDA using TensorFlow

Click here

4

Gaussian Naïve Bayes and Perceptron

Click here

5

Mini Project

Click here

 

Second Semester, CS F211 (Data Structures and Algorithms):

Scope and Objectives of the Course: A data structure is a collection of large amounts of data values, the relationships among them, and the functions or operations that can be applied on them. In order to be effective, data has to be organized in a manner that adds to the effectiveness of an algorithm, and data structures such as stacks, queues, linked lists, heaps, trees, and graphs provide different capabilities to organize and manage large amounts of data. While developing a program or an application, many developers find themselves more interested in the type of algorithm used rather than the type of data structure implemented. However, the choice of data structure used for a particular algorithm is always of paramount importance. For example, B-trees have unique abilities to organize indexes and hence are well suited for implementation of databases; Linked lists are well suited for backtracking algorithms like, accessing previous and next pages in a web browser; Tries are well suited for implementing approximate matching algorithms like, spell checking software or predicting text in dictionary lookups on Mobile phones; Graphs are well suited for path optimization algorithms (like in Google maps) or searching in a Social graph (like Facebook). As computers have become faster and faster, the problems they must solve have become larger and more complex, requiring development of more complex programs. This course will also teach students good programming and algorithm analysis skills so that they can develop such programs with a greater degree of efficiency.

The primary objectives of the course are as under:  

  • Apply various basic data structures such as stacks, queues, linked lists, trees etc. to solve complex programming problems. Understand basic techniques of algorithm analysis.
  • Design and implement advanced data structures like graphs, balanced search trees, hash tables, priority queues etc. Apply graph and string algorithms to solve real world problems like finding shortest paths on huge maps or detecting plagiarism percentage.
  • Apply basic algorithmic techniques such as brute-force, greedy algorithms, divide and conquer, dynamic programming etc. to solve complex programming problems and examine their efficiency.

At the end of the course, you should understand common data structures and algorithms, be able to develop new data abstractions (interfaces) and use existing library components in C++.

Will appear soon...