Computing for Data Sciences (CDS), aka BAISI-4, is one of the five courses offered at ISI Kolkata during the First Semester of the PGDBA program. The Fall 2017 edition of the course -- CDS 2017 -- is taught by Sourav Sen Gupta from R C Bose Centre, Indian Statistical Institute, Kolkata.
Reach Sourav : email@example.com | +91 94323 44852 | Room 404, Deshmukh Building
Wednesday & Friday @ 11:00 - 13:00
Assignments = 30% (group)
Mid-Sem Eval. = 20% (individual)
End-Sem Eval. = 50% (incl. project)
Format for evaluations to be decided.
We have time for about 26 two-hour lectures during Fall 2017 -- that's 52 hours in total! We will try to distribute this time carefully between Classroom Lectures (about 36-40 hours), Invited Talks (about 8 hours), and Interactive Sessions (about 4-8 hours) -- as required for the course. The schedule of the Classroom Lectures, and all relevant references and resources are posted as follows.
To prevent unwanted execution, the Python files (sometimes other code files too) linked below will be downloaded as
|01||26-07-2017||Introduction to Computing||Demaine and Devadas : Lec. 1||Binary Search|
|02||28-07-2017||Introduction to Complexity||Cormen et al. (Algo) : Ch. 1, 2, 3||Asymptotic Notation|
|--||28-07-2017||Introduction to Python||Python Class by Google||pythonIntro.py|
|03||02-08-2017||Introduction to Convergence||Demaine and Devadas : Lec. 11, 12||Newton's Method|
|04||04-08-2017||Finding Roots and Minima||Solomon (Numerical) : Ch. 8.1||Video 1 | Video 2|
|05||09-08-2017||Linear Regression and Optimization||Andrew Ng : Lec. 2||Gradient Descent|
|06||10-08-2017||Linear Regression and Estimation|| James et al. (ISLR) : Ch. 3.1
Hastie and Tibshirani : Ch. 3 Lectures
|07||16-08-2017||Linear Regression Fundamentals|| James et al. (ISLR) : Ch. 3.1, 3.2
Hastie and Tibshirani : Ch. 3 Lectures
|08||17-08-2017||Linear Regression and Projection||
Gilbert Strang : Lec. 10
Andrew Ng : Lec. 2
There is no single textbook for CDS. The following books and compiled lecture notes treat, quite comprehensively, the topics that CDS broadly tries to cover -- highly recommended.
Software for Data Analysis: Programming with RJohn Chambers Springer (Second Printing), 2009
Introduction to AlgorithmsThomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein The MIT Press (Third Edition), 2009
Numerical AlgorithmsJustin Solomon Available online at this link
An Introduction to Statistical LearningGareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani Available online at this link
The Elements of Statistical LearningTrevor Hastie, Robert Tibshirani and Jerome Friedman Available online at this link
Mining of Massive DatasetsJure Leskovec, Anand Rajaraman and Jeff Ullman Available online at this link
The books listed above are the basic references for CDS. During the course, we will refer to these books from time-to-time, as and when required, but we may not see through any of these books cover-to-cover.
There are several lecture notes and video lectures that perfectly complement the material that CDS plans to cover. The students are encouraged to follow these amazing resources.
Algorithms | Demaine and DevadasLecture videos available online at this link
Numerical Algorithms | Justin SolomonLecture videos available online at this link
Linear Algebra | Gilbert StrangLecture videos available online at this link
Statistical Learning | Hastie and TibshiraniLecture videos available online at this link
Machine Learning | Univ. of WashingtonCoursera course available online at this link
Machine Learning | Andrew NgLecture videos available online at this link
Machine Learning | Nando de FreitasLecture videos available online at this link
The courses and video lectures listed above are closely related to the topics covered in CDS. During the course, we will refer to these lectures from time-to-time, as and when required, but we may not need to go through any of these courses end-to-end. In addition to the above, please feel free to explore Coursera.
The main tool for computing used during CDS is R. The following resources may help you in getting yourself acquainted with the basics of R. Get comfortable, and get your hands dirty!
- Introduction to R by DataCamp | Quite nice introduction, and even better, free!
- R by Example | By Ajay Shah | Quick illustrative examples of features.
Advanced topics in R and Understanding Memory in R | By Hadley Wickham
Really good articles on the advanced technical nitty-gritties of R.
R and Data Mining | By Yanchang Zhao
Wonderful book with a number of cool applications of Data Mining.
Monte Carlo Methods with R | By C.P. Robert and G. Casella
Lovely introduction to Monte Carlo simulations with hands-on applications in R.
Monte Carlo Simulations in R | By Will Kurt
Nice blog-post introducing Monte Carlo simulations using R.
The most versatile language for Scientific Computation is Python. The following resources may help you in getting yourself acquainted with the basics of Python. Get used to it!
- Learn Python 3 the Hard Way | By Zed A. Shaw | Solve every problem.
- Python Class by Google | After the "Hard Way", take a decent online class.
- Think Python | By Allen B. Downey | Available online at this link
scikit-learn -- Machine Learning in Python
Undoubtedly the best Python package for Data Analytics and Machine Learning.
Visual Map for ML Algorithms | Video Tutorials from Data School
Building Machine Learning Systems with Python
Wonderful book with a number of cool applications of Machine Learning.
By Willi Richert and Luis Pedro Coelho | Source Codes from GitHub
- A Programmer's Guide to Data Mining | By Ron Zacharski | Really nice!
Assignments will be posted on a regular basis. Each group has to submit 6 assignments during the course of the semester, out of which top 5 will be counted towards the grade.
|Assignment 0||28-07-2017||09-08-2017||Not graded|
|Assignment 2||17-08-2017||25-08-2017||To be posted|
|Assignment 3||28-08-2017||05-09-2017||To be posted|
|Assignment 4||12-10-2017||20-10-2017||To be posted|
|Assignment 5||23-10-2017||31-10-2017||To be posted|
|Assignment 6||02-11-2017||10-11-2017||To be posted|
About 30% weightage (out of 50%) will be reserved in the End-of-Semeseter evaluation for the Term Project. Each group is supposed to deliver a Project Presentation (30 mins per group), including a Q&A session (5 mins per group), and a Project Report (theory/code).
Each group is at the liberty of choosing the topic for their Term Project. However, the term project chosen by each group must be approved by Sourav before they may be executed. The last date for finalizing the topics for the term projects is Thursday, 7 September 2017.
Term Projects may also be inspired by earlier Stanford CS229 projects available at 2016, 2016 Spring, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, or by the diverse list of Business Case Studies posted by the Sloan School, MIT.