Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

2

Introduction to Python for Neuroscientists

Course repository for the Fall 2025 edition of Introduction to Python for Neuroscientists, run by the Columbia Neurobiology and Behavior PhD program.

Course description: This class will give students a general and applied introduction to Python within the context of neuroscience. Topics covered will include setting up python, using git to track and publicize work, programming basics, data manipulation and visualization, machine learning, and navigating existing codebases. The course will culminate in a project where students will analyze data of their choice in Python (options will be provided for students who don’t have their own datasets). Students will then work to understand each other’s projects to get experience reading and understanding each others’ code, and to incentivize good documentation. Students will present their work to the class.

Course Structure: Classes will consist of live programming and instruction, alongside optional out-of-class homework (see important dates below for details). Pair and group-programming will be used in addition to individual programming. Please bring your laptop – if you do not have one / that will be an issue, please contact us.

Prerequisites: No background in programming or math is required. All we ask is that you come with a desire to learn :)

Grades will be based on participation and the final project.

Email: pfncolumbia@gmail.com

Important dates:

  • By 9/2: Watch pre-videos, setup computer, and make a github account following these instructions.
  • Weeks 6-7: set up a time if you want to discuss your project with us

Schedule (subject to change):

WeekTopicLecturerHomework Due
Week 1 (9/2)Python Workflow:
- Use python locally in VSCode in file form and as Jupyter Notebooks (hello world)
- Set up conda environment
- Git Basics – create a repo and commit to it
SharonHW0 (Submit on courseworks)
Week 2 (9/9)Python Basics:
- Why use python?
- Data Types & Variables (float, int, str, list, dict, tuple)
- Booleans & If/Else
Sharon
Week 3 (9/16)Python Basics:
- Lists
- Dictionaries- Tuples
- For Loops
- List Comprehension
- Enumerate
Sharon
Week 4 (9/23)Python Basics:
- While Loops
- Functions
- return
- *args and **kwargs
- Errors
- Try/Except
- Typehinting/Docstrings
TBD
Week 5 (9/30)Numpy:
- Why do we need numpy?
- Basic numpy functionalty
- How to manipulate and read out arrays
- How to solve mathematical problems in Python.
TBDHW4 (Submit on courseworks)
Week 6 (10/7)TBD
Week 7 (10/14)Pandas and Data Visualization:
- Why is Pandas useful, and why do we need it for data science in Python?
- How do we use Pandas to manipulate data?
- How can we load and save data in pandas?
- How can we plot basic data in Python?
TBD
Week 8 (10/21)Data Visualization and Object-oriented programming
- How can we make more complicated plots in Python?
- How can we use Seaborn to travers and plot large, complex datasets?
- How do we use documentation to find solutions to programming questions and problems?
- What is the basic structure of OOP in Python?
- How do we read others' OOP code?
TBD
Week 9 (10/28)Navigating an expert codebase:
- Given a problem/input and a desired output, how can we use existing resources to implement a solution?
- Working through documentation and online resources to learn a package
- Adapting prewritten pipelines to custom needs
TBDHW8 (Submit on courseworks)
Week 10 (11/4)TBD
Week 11 (11/11)Machine learningAbhi
Week 12 (11/18)Project Day
TBD - Likely skip (11/25)Skip for Thanksgiving Day
Week 13 (12/2)Understanding Day

Miscellaneous Resources

About

Course repository for the F2025 edition of Python for Neuroscientists, run by students at the Columbia Center for Theoretical Neuroscience.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages