From cc8139ee8e9d8c4dee55b5551f7efce2d6b974dc Mon Sep 17 00:00:00 2001
From: tomvannuenen
Date: Mon, 10 Apr 2023 16:17:14 -0700
Subject: [PATCH] add Python workshops
---
Brewfile | 29 ++
Gemfile | 2 +-
Gemfile.lock | 75 +++--
_featured/1.md | 14 +-
_featured/2.md | 14 +-
_featured/3.md | 14 +-
_featured/4.md | 10 -
_featured/5.md | 10 -
docs/Brewfile | 29 ++
docs/index.html | 168 ++++++----
docs/static/stylesheets/style.css | 31 +-
index.md | 510 +++++++++++++++++++++++++++++-
static/stylesheets/style.css | 31 +-
13 files changed, 803 insertions(+), 134 deletions(-)
create mode 100644 Brewfile
delete mode 100644 _featured/4.md
delete mode 100644 _featured/5.md
create mode 100644 docs/Brewfile
diff --git a/Brewfile b/Brewfile
new file mode 100644
index 0000000..3046e0a
--- /dev/null
+++ b/Brewfile
@@ -0,0 +1,29 @@
+tap "homebrew/bundle"
+tap "homebrew/cask"
+tap "homebrew/core"
+brew "harfbuzz"
+brew "pango"
+brew "adwaita-icon-theme"
+brew "augeas"
+brew "bchunk"
+brew "berkeley-db@4"
+brew "enca"
+brew "geckodriver"
+brew "git"
+brew "git-lfs"
+brew "libidn2"
+brew "gtk-mac-integration"
+brew "iso-codes"
+brew "gspell"
+brew "gtksourceview3"
+brew "krb5"
+brew "libxml2"
+brew "pandoc", link: false
+brew "postgresql@14"
+brew "py3cairo"
+brew "pyenv"
+brew "rename"
+brew "ruby"
+brew "wget"
+cask "emacs"
+cask "wine-stable"
diff --git a/Gemfile b/Gemfile
index 22e379b..d99d5b0 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,4 +6,4 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
# gem "rails"
-gem "jekyll", "~> 3.8"
+gem "jekyll", "~> 4.2"
diff --git a/Gemfile.lock b/Gemfile.lock
index be3287e..82e0a10 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,63 +1,70 @@
GEM
remote: https://rubygems.org/
specs:
- addressable (2.7.0)
- public_suffix (>= 2.0.2, < 5.0)
+ addressable (2.8.1)
+ public_suffix (>= 2.0.2, < 6.0)
colorator (1.1.0)
- concurrent-ruby (1.1.5)
- em-websocket (0.5.1)
+ concurrent-ruby (1.2.2)
+ em-websocket (0.5.3)
eventmachine (>= 0.12.9)
- http_parser.rb (~> 0.6.0)
+ http_parser.rb (~> 0)
eventmachine (1.2.7)
- ffi (1.11.1)
+ ffi (1.15.5)
forwardable-extended (2.6.0)
- http_parser.rb (0.6.0)
- i18n (0.9.5)
+ google-protobuf (3.22.2-x86_64-darwin)
+ http_parser.rb (0.8.0)
+ i18n (1.12.0)
concurrent-ruby (~> 1.0)
- jekyll (3.8.4)
+ jekyll (4.3.2)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
- i18n (~> 0.7)
- jekyll-sass-converter (~> 1.0)
+ i18n (~> 1.0)
+ jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
- kramdown (~> 1.14)
+ kramdown (~> 2.3, >= 2.3.1)
+ kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
- mercenary (~> 0.3.3)
+ mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
- rouge (>= 1.7, < 4)
+ rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
- jekyll-sass-converter (1.5.2)
- sass (~> 3.4)
+ terminal-table (>= 1.8, < 4.0)
+ webrick (~> 1.7)
+ jekyll-sass-converter (3.0.0)
+ sass-embedded (~> 1.54)
jekyll-watch (2.2.1)
listen (~> 3.0)
- kramdown (1.17.0)
- liquid (4.0.3)
- listen (3.1.5)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- ruby_dep (~> 1.2)
- mercenary (0.3.6)
+ kramdown (2.4.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.4)
+ listen (3.8.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.1)
- rb-fsevent (0.10.3)
- rb-inotify (0.10.0)
+ public_suffix (5.0.1)
+ rb-fsevent (0.11.2)
+ rb-inotify (0.10.1)
ffi (~> 1.0)
- rouge (3.11.0)
- ruby_dep (1.5.0)
+ rexml (3.2.5)
+ rouge (4.1.0)
safe_yaml (1.0.5)
- sass (3.7.4)
- sass-listen (~> 4.0.0)
- sass-listen (4.0.0)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
+ sass-embedded (1.60.0-x86_64-darwin)
+ google-protobuf (~> 3.21)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
+ unicode-display_width (2.4.2)
+ webrick (1.8.1)
PLATFORMS
ruby
DEPENDENCIES
- jekyll (~> 3.8)
+ jekyll (~> 4.2)
BUNDLED WITH
1.16.2
diff --git a/_featured/1.md b/_featured/1.md
index bc18019..af59834 100644
--- a/_featured/1.md
+++ b/_featured/1.md
@@ -1,10 +1,10 @@
---
-title: Deep Learning in R
-course_name: Deep Learning in R
-instructor: Evan Muzzall
-github_link: https://github.com/dlab-berkeley/Deep-Learning-in-R
-datahub_link: http://datahub.berkeley.edu/user-redirect/interact?account=dlab-berkeley&repo=Deep-Learning-in-R&branch=master&path=
+title: Python Fundamentals
+course_name: The absolute basics
+instructor:
+github_link:
+datahub_link:
nbviewer_link:
-binder_link: https://mybinder.org/v2/gh/dlab-berkeley/Deep-Learning-in-R/master
+binder_link:
---
-Convey the basics of deep learning in R using keras on image datasets. Students are empowered with a general grasp of deep learning, example code that they can modify, a working computational environment, and resources for further study.
+This three-part interactive workshop series is your complete introduction to programming Python for people with little or no previous programming experience, with a focus on data science application. It covers the basics of Python and Jupyter, variables and data types, and a gentle introduction to data analysis in Pandas.
diff --git a/_featured/2.md b/_featured/2.md
index e399780..ee1e526 100644
--- a/_featured/2.md
+++ b/_featured/2.md
@@ -1,10 +1,10 @@
---
-title: Geospatial Fundamentals in R with sf
-course_name: Geospatial Fundamentals in R with sf
-instructor: Patty Frontiera
-github_link: https://github.com/dlab-berkeley/Geospatial-Fundamentals-in-R-with-sf
-datahub_link: http://datahub.berkeley.edu/user-redirect/interact?account=dlab-berkeley&repo=Geospatial-Fundamentals-in-R-with-sf&branch=master&path=
+title: Python Data Wrangling
+course_name: Manipulate DataFrames using Pandas in Python
+instructor:
+github_link:
+datahub_link:
nbviewer_link:
-binder_link: https://mybinder.org/v2/gh/dlab-berkeley/Geospatial-Fundamentals-in-R-with-sf/master
+binder_link:
---
-D-Lab's Geospatial Fundamentals in R with sf (simple features) workshop, focusing on core concepts of geospatial information, vector data, and plotting; spatial analysis; raster data.
+In this workshop, we provide an introduction to data wrangling with Python. We will do so largely with the pandas package, which provides a rich set of tools to manipulate and interact with data frames, the most common data structure used when analyzing tabular data. We'll learn how to manipulate, index, merge, group, and plot data frames using pandas functions.
diff --git a/_featured/3.md b/_featured/3.md
index 660f5ef..fb1db17 100644
--- a/_featured/3.md
+++ b/_featured/3.md
@@ -1,10 +1,10 @@
---
-title: Geocoding in R
-course_name: Geocoding in R
-instructor: Patty Frontiera
-github_link: https://github.com/dlab-berkeley/Geocoding-in-R
-datahub_link: http://datahub.berkeley.edu/user-redirect/interact?account=dlab-berkeley&repo=Geocoding-in-R&branch=master&path=
+title: Python Data Visualization
+course_name: Pandas, Matplotlib, and Seaborn
+instructor:
+github_link:
+datahub_link:
nbviewer_link:
-binder_link: https://mybinder.org/v2/gh/dlab-berkeley/Geocoding-in-R/master
+binder_link:
---
-geocode in R using three online services: Google Geocoding API, ESRI World Geocoding Service, US Census Geocoder
+In this workshop, we provide an introduction to data visualization with Python. First, we'll cover some basics of visualization theory. Then, we'll explore how to plot data in Python using the matplotlib and seaborn packages.
diff --git a/_featured/4.md b/_featured/4.md
deleted file mode 100644
index c424d0a..0000000
--- a/_featured/4.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Computational Text Analysis
-course_name: Computational Text Analysis
-instructor: Caroline Le Pennec-Caldichoury
-github_link: https://github.com/dlab-berkeley/computational-text-analysis-spring-2019
-datahub_link: http://datahub.berkeley.edu/user-redirect/interact?account=dlab-berkeley&repo=computational-text-analysis-spring-2019&branch=master&path=
-nbviewer_link:
-binder_link: https://mybinder.org/v2/gh/dlab-berkeley/computational-text-analysis-spring-2019/master
----
-This workshop will equip newcowers with the foundation for applying computational text analysis methods in their work. The focus is on high-level descriptions of what existing methods do and user-friendly implementations. We will also spend some time on interpreting results correctly.
diff --git a/_featured/5.md b/_featured/5.md
deleted file mode 100644
index 356edb7..0000000
--- a/_featured/5.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Visualization with Python
-course_name: Visualization with Python
-instructor: TBD
-github_link: https://github.com/dlab-berkeley/visualization-with-python
-datahub_link: http://datahub.berkeley.edu/user-redirect/interact?account=dlab-berkeley&repo=visualization-with-python&branch=master&path=visualization-with-python.ipynb
-nbviewer_link:
-binder_link: https://mybinder.org/v2/gh/dlab-berkeley/visualization-with-python/master
----
-An introduction to visualization with Python. We'll cover visualization theory and plotting with Matplotlib and Seaborn, working through examples in a Jupyter notebook. The plot types that will be covered include: line, bar, scatter, boxplot. We'll also learn about styles and customizing plots. Throughout the workshop, we'll discuss the plot types best suited for particular kinds of data. Basic familiarity with Python is assumed.
diff --git a/docs/Brewfile b/docs/Brewfile
new file mode 100644
index 0000000..3046e0a
--- /dev/null
+++ b/docs/Brewfile
@@ -0,0 +1,29 @@
+tap "homebrew/bundle"
+tap "homebrew/cask"
+tap "homebrew/core"
+brew "harfbuzz"
+brew "pango"
+brew "adwaita-icon-theme"
+brew "augeas"
+brew "bchunk"
+brew "berkeley-db@4"
+brew "enca"
+brew "geckodriver"
+brew "git"
+brew "git-lfs"
+brew "libidn2"
+brew "gtk-mac-integration"
+brew "iso-codes"
+brew "gspell"
+brew "gtksourceview3"
+brew "krb5"
+brew "libxml2"
+brew "pandoc", link: false
+brew "postgresql@14"
+brew "py3cairo"
+brew "pyenv"
+brew "rename"
+brew "ruby"
+brew "wget"
+cask "emacs"
+cask "wine-stable"
diff --git a/docs/index.html b/docs/index.html
index 8fb6552..25c8e58 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -18,55 +18,21 @@
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
Python Modules
@@ -126,7 +89,7 @@
Python Modules
-
I don't know anything about Jupyter, Python, or packages like Pandas. I want to start from the top!"
+
I don't know anything about Jupyter, Python, or packages like Pandas. I want to start from the top!"
@@ -174,7 +137,7 @@
Python Fundamentals
-
"I know the basics of Jupyter and Python, like opening a Jupyter Notebook or assigning a variable. I want to learn more."
+
"I know the basics of Jupyter and Python, like opening a Jupyter Notebook or assigning a variable. I want to learn more."
@@ -221,7 +184,7 @@
Python Intermediate
-
"I know the basics of Jupyter, Python, and Pandas, including loops and functions, and basic operations on DataFrames. I want to learn how to retrieve online data."
+
"I know the basics of Jupyter, Python, and Pandas, including loops and functions, and basic operations on DataFrames. I want to learn how to retrieve online data."
@@ -318,7 +281,7 @@
Python Web APIs
-
"I know the basics of Jupyter, Python, and Pandas. I want to learn more about data analysis and visualization."
+
"I know the basics of Jupyter, Python, and Pandas. I want to learn more about data analysis and visualization."
@@ -412,7 +375,7 @@
Python Data Visualization
-
"I know a fair bit about Python and Pandas and want to learn more advanced topics"
+
"I know a fair bit about Python and Pandas and want to learn more advanced topics"
@@ -597,7 +560,7 @@
Python Deep Learning
+
+
+
+
+
+
Featured Modules
+
+
+
+
+
+
+
+
Python Fundamentals
+
The absolute basics
+
+
+
+
+
+
This three-part interactive workshop series is your complete introduction to programming Python for people with little or no previous programming experience, with a focus on data science application. It covers the basics of Python and Jupyter, variables and data types, and a gentle introduction to data analysis in Pandas.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Python Data Wrangling
+
Manipulate DataFrames using Pandas in Python
+
+
+
+
+
+
In this workshop, we provide an introduction to data wrangling with Python. We will do so largely with the pandas package, which provides a rich set of tools to manipulate and interact with data frames, the most common data structure used when analyzing tabular data. We’ll learn how to manipulate, index, merge, group, and plot data frames using pandas functions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Python Data Visualization
+
Pandas, Matplotlib, and Seaborn
+
+
+
+
+
+
In this workshop, we provide an introduction to data visualization with Python. First, we’ll cover some basics of visualization theory. Then, we’ll explore how to plot data in Python using the matplotlib and seaborn packages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/static/stylesheets/style.css b/docs/static/stylesheets/style.css
index ee11f2f..5bc6e44 100644
--- a/docs/static/stylesheets/style.css
+++ b/docs/static/stylesheets/style.css
@@ -22,4 +22,33 @@ nav {
h3 {
margin-top: 3rem !important;
-}
\ No newline at end of file
+}
+
+
+.card {
+ border: 1px solid #17a2b8;
+ margin-bottom: 10px;
+}
+
+.content {
+ display: none;
+ overflow: hidden;
+ background-color: #f1f1f1;
+}
+
+.clickable {
+ cursor: pointer;
+ display: block;
+ padding: 6px 12px;
+ background-color: #007bff;
+ color: #fff;
+ font-weight: bold;
+ text-align: left;
+ text-decoration: none;
+ border-radius: 5px;
+ transition: background-color 0.3s;
+}
+
+.clickable:hover {
+ background-color: #0056b3;
+}
diff --git a/index.md b/index.md
index 494f372..878434b 100644
--- a/index.md
+++ b/index.md
@@ -3,4 +3,512 @@ layout: index
title: D-Lab Workshops
---
-The materials here represent current and past workshops taught at the Social Sciences D-Lab: https://dlab.berkeley.edu/training
+The materials here represent current and past workshops taught at the Social Sciences D-Lab.
+
+
+
+
+
+
Python Modules
+
+
+
+
+
+
+
+
+
+
+
+
I don't know anything about Jupyter, Python, or packages like Pandas. I want to start from the top!"
+
+
+
+
+
+
+
+
Python Fundamentals
+
The absolute basics
+
+
+
+
+
This three-part interactive workshop series is your complete introduction to programming Python for people with little or no previous programming experience, with a focus on data science application. It covers the basics of Python and Jupyter, variables and data types, and a gentle introduction to data analysis in Pandas.
+
"I know the basics of Jupyter and Python, like opening a Jupyter Notebook or assigning a variable. I want to learn more."
+
+
+
+
+
+
+
Python Intermediate
+
Building on the basics
+
+
+
+
+
This three-part interactive workshop series is a follow-up to D-Lab's Python Fundamentals. It is intended for people who want to learn about core structures of Python that underpin data analysis. We cover loops and conditionals, creating your own functions, analysis and visualization in Pandas, and the workflow of a data science project.
+
"I know the basics of Jupyter, Python, and Pandas, including loops and functions, and basic operations on DataFrames. I want to learn how to retrieve online data."
+
+
+
+
+
+
+
+
Python Web Scraping
+
Scrape HTML/CSS data from websites
+
+
+
+
+
In this workshop, we cover how to scrape data from the web using Python. Web scraping involves downloading a webpage's source code and sifting through the material to extract desired data.
+
In this workshop, we cover how to extract data from the web with APIs using Python. APIs are often official services offered by companies and other entities, which allow you to directly query their servers in order to retrieve their data. Platforms like The New York Times, Twitter and Reddit offer APIs to retrieve data.
+
+
+
"I know the basics of Jupyter, Python, and Pandas. I want to learn more about data analysis and visualization."
+
+
+
+
+
+
+
Python Data Wrangling
+
Manipulate DataFrames using Pandas in Python
+
+
+
+
+
In this workshop, we provide an introduction to data wrangling with Python. We will do so largely with the pandas package, which provides a rich set of tools to manipulate and interact with data frames, the most common data structure used when analyzing tabular data. We'll learn how to manipulate, index, merge, group, and plot data frames using pandas functions.
+
+
In this workshop, we provide an introduction to data visualization with Python. First, we'll cover some basics of visualization theory. Then, we'll explore how to plot data in Python using the matplotlib and seaborn packages.
+
+
+
"I know a fair bit about Python and Pandas and want to learn more advanced topics"
+
+
+
+
+
+
+
Python Machine Learning
+
Classification, regression, clustering in Python
+
+
+
+
+
In this workshop, we provide an introduction to machine learning in Python. First, we'll cover some machine learning basics, including its foundational principles. Then, we'll dive into code, understanding how to perform regression, regularization, preprocessing, and classification.
+
+
Bag-of-words, sentiment analysis, topic modeling, word embeddings, and more
+
+
+
+
+
+ This workshop equips newcowers with the foundation for applying computational text analysis methods in their work. The focus is on high-level descriptions of what existing methods do and user-friendly implementations. We will also spend some time on interpreting results correctly.
+
Analyzing geospatial data using GeoPandas in Python
+
+
+
+
+
Geospatial data are an important component of data visualization and analysis in the social sciences, humanities, and elsewhere. The Python programming language is a great platform for exploring these data and integrating them into your research.
+
Create and train neural networks using Tensorflow and Keras.
+
+
+
+
+
This workshop conveys the basics of deep learning in Python using keras on image datasets. Students are empowered with a general grasp of deep learning, example code that they can modify, a working computational environment, and resources for further study.
+