Data science and advanced Python concepts workshop for neuroscience

Course number: 27-5020-01

Data science and advanced Python concepts workshop for neuroscience

Course type: workshop

Academic year: 2023/4      

First Semester Scope of hours: 2h per week

Online course website: TBD

Course Goals:

Students will obtain hands-on experience with building a data science pipeline, including collecting data, data preprocessing, training a machine learning model, analyzing the results, and publishing open-source code.

Learning outcomes:

1.Train and evaluate machine learning and deep learning models

2.Write clear and efficient code in Python

3.Demonstrate proficiency in fundamental concepts in machine learning, including               supervised, self-supervised and unsupervised learning

4.Apply data science and machine learning techniques to neuroscience-related data

Course content:

The course focuses on hands-on data science with diverse dataset, including dataset from neuroscience, cognitive science, vision, sound, language and text.

Students will review machine-learning related Python modules, and understand advanced Python concepts. They will work to reproduce results that were published in a recent literature of the data science or neuroscience community.

The course of the lessons:

Mainly hands on. Students should bring laptops to class.

A detailed teaching plan for all classes: (a detailed list of the lecture topics in chronological order)

1.         Introduction. Data collection and labeling

2.         Working with tables and large datasets, pandas

3.         Data visualization, matplotlib, seaborn

4.         Building and evaluating machine learning models with scikit-learn

5.         Deep learning with pytorch

6.         Projects overview and discussion

7.         Data science pipelines. Discussions after students choose projects

8.         Individual Project reviews

9.         Individual Project reviews cont.

10.       Advanced Python concepts: iterators and generators, Python built-ins, regular    expressions 

11.       Web scraping and web APIs, beautiful soup

12.       Explainability, shap, lime

13.       Mid-course project presentations all groups

14.       Individual Project reviews

15.       End-course project presentations

16.       End-course project presentations cont.

 

Prerequisites:

1.Students must have working knowledge of Python programming language.  This means they have already completed a course where home assignments were done in Python.

2.Students should have completed, or currently participate in, a course in machine leaning. For example, neural networks (27-504) or equivalent courses.

Duties/requirements/assignments:

Students should submit 80% of home assignments and a final project.

Grading distribution

The course grade is based on home assignments 40%, and the final project 60%.

Bibliography (required and recommended reading):

Machine Learning and Pattern recognition, C. Bishop (2006)

Deep Learning, I. Goodfellow and Y. Bengio (2015)

The Elements of Statistical Learning, T. Hastie et al. (2001)