Skip to content

Commit

Permalink
deploy: c4cdd0b
Browse files Browse the repository at this point in the history
  • Loading branch information
roualdes committed Jan 5, 2024
1 parent 7001070 commit 1522320
Show file tree
Hide file tree
Showing 17 changed files with 748 additions and 116 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
2 changes: 1 addition & 1 deletion _sources/help.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ TODO

## Common error messages

## Where can I get help using R outside of class time?
## Where can I get help using Python outside of class time?

### From a live person

Expand Down
285 changes: 260 additions & 25 deletions _sources/syllabus.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,40 +14,275 @@ kernelspec:

# Syllabus

Jupyter Book also lets you write text-based notebooks using MyST Markdown.
See [the Notebooks with MyST Markdown documentation](https://jupyterbook.org/file-types/myst-notebooks.html) for more detailed instructions.
This page shows off a notebook written in MyST Markdown.
## Course description

## An example cell
This course is designed as a primer to get the complete novice up and
running with the basic knowledge of how to use the programming
language Python in an environment that emphasizes reproducible
research and data analysis. The target audience is anyone who wants
to do their own data analysis. The course will culminate with a
peer-evaluated exploratory data analysis project on either a
pre-specified dataset or your dataset of choice.

With MyST Markdown, you can define code cells with a directive like so:
## Logistics

```{code-cell}
print(2 + 2)
```
* Course website: <https://roualdes.github.io/MATH131>
* Prerequisite: basic computer literacy
* Modality: this course run for 5 weeks only.
* Discord server: <https://discord.gg/ck497bJty5>

When your book is built, the contents of any `{code-cell}` blocks will be
executed with your default Jupyter kernel, and their outputs will be displayed
in-line with the rest of your content.
| | Section 01 |
|-|------------|
|days | TODO |
|time | TODO |
| location | TODO |
|instructor | Edward |
| office location | Holt 204 |
| email | <[email protected]> |

```{seealso}
Jupyter Book uses [Jupytext](https://jupytext.readthedocs.io/en/latest/) to convert text-based files to notebooks, and can support [many other text-based notebook files](https://jupyterbook.org/file-types/jupytext.html).
```
## Canvas usage

## Create a notebook with MyST Markdown
The Course website listed above will be used instead of Canvas. A
link in Canvas leads to this website.

MyST Markdown notebooks are defined by two things:
## Student support

1. YAML metadata that is needed to understand if / how it should convert text files to notebooks (including information about the kernel needed).
See the YAML at the top of this page for example.
2. The presence of `{code-cell}` directives, which will be executed with your book.
### office hours

That's all that is needed to get started!
TODO in Holt 204

## Quickly add YAML metadata for MyST Notebooks
### Discord

If you have a markdown file and you'd like to quickly add YAML metadata to it, so that Jupyter Book will treat it as a MyST Markdown Notebook, run the following command:
To facilitate peer to peer and effective instructor to peer assistance
Discord will be used for discussion and questions outside of
class. This server hosts students across multiple Statistics and Data
Science classes, with a specific channel for all sections of Math 131.

```
jupyter-book myst init path/to/markdownfile.md
```
Click this link to join the server:
https://discord.gg/ck497bJty5. Verify your email and agree to the
rules and code of conduct. This helps create a safe learning
environment.

Go to the #get-roles text channel in the left sidebar, choose your
pronouns (optional but helpful), and click the Python TODO icon emoji
under the second post to self-assign you to the Math-131 role. This
will let you see and access the class channels. More on how to use
Discord in Week 01.

### Community Coding

Similar to drop in Mathematics tutoring hours, students, staff,
faculty, and the public are invited to join our Community Coding
sessions. Bring your computer, coding projects, and your questions to
this open working environment.

Schedule and info found at <https://www.csuchico.edu/datascience/community-coding.shtml>.

## Learning Outcomes

By the end of the course, students will be able to

* Import data into Python from external files such as text files and spreadsheets.
* Calculate summary statistics.
* Create new variables using different data types.
* Perform data management techniques such as filtering, grouping, and summarizing/aggregating.
* Create informative data visualizations and tables.
* Create a reproducible research document.
* Conduct an exploratory data analysis in a reproducible manner.


## Schedule of Topics

The general outline of topics is listed below.

* Week 01

* Introduction to the Python language and Google Colab

* Conducting reproducible research within a Colab notebook using Markdown and Python code

* Week 02

* How to use functions

* Introduction to data processing

* Week 03

* Univariate Data Visualization using base, and plotnine graphics

* Data processing and Aggregation with Pandas

* Week 04

* Bivariate and Multivariate Data Visualization using ggplot2

* Importing data into Python from external files

* Week 05

* Exploratory Data Analysis (individual project)

## Required Materials

* A reliable laptop, chromebook, or tablet that can use a browser to
access the internet.

* Reliable internet connection while on and off campus.

Students who do not have a computer (i.e. a iPad or Chromebook) can
use the Wildcat virtual lab


## Time commitment

> For all CSU degree programs and courses bearing academic credit, the
> “credit hour” is defined as … not less than one hour of classroom or
> direct faculty instruction and a minimum of two hours of
> out-of-class student work each week for approximately fifteen weeks
> for one semester or trimester hour of credit.
This adds up to 15 hours in class, and 30 hours outside of class
during these 5 weeks. That’s 3 hours in class, and 10 hours of
homework per week. If you are new to programming and unfamiliar with
computers, you may end up taking more time. Be sure to schedule
sufficient time during Week 05 to work on the project.

You will get out of this class what you put into it. Recall this is
just a co-curriculuar or supplemental introductory class. You will
not learn everything there is to know about Python, nor necessarily
feel proficient by the time you are done. But you will be on a better
path towards learning Python than when you started.

## Grading

Credit / No Credit. There are 100 points available in this course. You
must earn 75 points to receive credit for the course.

* Assignments: 4 @ 10 pts each.
* Fill out course notes: 7 @ 5 pts each
* Project:
* Exploratory Data Analysis (20 pts)
* Peer Review (5 pts)

## Class policies and statements

### Everyone is welcome here

It is our intent that students from all diverse backgrounds and
perspectives be well-served by this course, that students’ learning
needs be addressed both in and out of class, and that the diversity
that the students bring to this class be viewed as a resource,
strength and benefit. It is our intent to present materials and
activities that are respectful of diversity: gender identity,
sexuality, disability, age, socioeconomic status, ethnicity, race,
nationality, religion, and culture. Your suggestions are encouraged
and appreciated. Please let us know ways to improve the effectiveness
of the course for you personally, or for other students or student
groups.

We would like to create a learning environment that supports a
diversity of thoughts, perspectives and experiences, and honors your
identities (including race, gender, class, sexuality, religion,
ability, etc.) To help accomplish this:

* If you have a name and/or set of pronouns that differ from those
that appear in your official Chico records, please let us know!

* If you feel like your performance in the class is being impacted by
your experiences outside of class, please don’t hesitate to come and
talk with us. We want to be a resource for you. Remember that you
can also submit anonymous feedback (which may lead to a general
announcement to the class, if necessary to address the
concerns). TODO: set up anonymous feedback

* If you prefer to speak with someone outside of the course, the
Office of Diversity and Inclusion is here to assist. Their number is
530-898-4764, and email [email protected]

* We (like many people) are still in the process of learning about
diverse perspectives and identities. If something was said in class
(by anyone) that made you feel uncomfortable, please talk to me
about it. (Again, anonymous feedback is always an option).

Adapted from [Monica Linden at Brown University](https://www.brown.edu/sheridan/teaching-learning-resources/inclusive-teaching/statements).

### Appreciation

We acknowledge and are mindful that Chico State stands on lands that
were originally occupied by the first people of this area, the
Mechoopda, and we recognize their distinctive spiritual relationship
with this land, the flora, the fauna, and the waters that run through
campus.

We are humbled that our campus resides upon sacred lands that since
time immemorial have sustained the Mechoopda people and continue to do
so today.

## University policies and campus resources

### Adding and dropping the course

This course only runs for a few weeks and all materials are available
on the course website. It will be difficult to get caught up if you
add the class after the first week.

### Academic integrity

Students are expected to be familiar with the University’s Academic
Integrity Policy. Your own commitment to learning, as evidenced by
your enrollment at California State University, Chico, and the
University’s Academic Integrity Policy requires you to be honest in
all your academic course work. Faculty members are required to report
all infractions to the Office of Student Judicial Affairs. The policy
on academic integrity and other resources related to student conduct
can be found on the Student Judicial Affairs web site at
<http://www.csuchico.edu/sjd/integrity.shtml>.

### IT Support Services

Computer labs for student use are located on the first and fourth
floor of the Meriam Library, Room 116 and 450, Tehama Hall Room 131,
and the Bell Memorial Union (BMU) basement. You can get help using
your computer from IT Support Services; contact them through the ITSS
web site at <http://www.csuchico.edu/itss>. Additional labs may be
available to students in your department or college.

### Americans with Disabilities Act

If you need course adaptations or accommodations because of a
disability or chronic illness, or if you need to make special
arrangements in case the building must be evacuated, please make an
appointment with me as soon as possible, or see me during office
hours. Please also contact Accessibility Resource Center (ARC) as they
are the designated department responsible for approving and
coordinating reasonable accommodations and services for students with
disabilities. ARC will help you understand your rights and
responsibilities under the Americans with Disabilities Act and provide
you further assistance with requesting and arranging accommodations.

Accessibility Resource Center 530-898-5959 Student Services Center 170
[email protected] <http://www.csuchico.edu/arc>

### Chico State Basic Needs Project

The Hungry Wildcat Food Pantry provides supplemental food, fresh
produce, CalFresh application assistance and basic needs referral
services for students experiencing food and housing insecurity.

All students are welcomed to visit the Pantry located in the Student
Service Center 196. Check the website for a location map and for the
most up to date information on open hours:
<https://www.csuchico.edu/basic-needs/pantry.shtml>.

### Confidentiality and mandatory reporting

As an instructor, one of my responsibilities is to help create a safe
learning environment on our campus. I also have a mandatory reporting
responsibility related to my role as a your instructor. I am required
to share information regarding sexual misconduct with the
University. Students may speak to someone confidentially by contacting
the Counseling and Wellness Center (898-6345) or Safe Place
(898-3030). Information on campus reporting obligations and other
Title IX related resources are available here:
<www.csuchico.edu/title-ix>.
26 changes: 20 additions & 6 deletions _sources/week-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ kernelspec:

# Week 01: Python basics

[Homework 01 (Colab notebook)](https://colab.research.google.com/drive/1hh49hQRkhxcE1ldXCB7QKNkr3RkCiA4J?usp=sharing)
* [Week 01 Notes](https://colab.research.google.com/drive/1VQhUmSxM6WfSw1ZZeKfhkRhkfM9JPXQx?usp=sharing)
* [Week 01 Assignment](https://colab.research.google.com/drive/1h9Ck7kWNN9_I2Yun9Yc4uBoI2lgv6chi?usp=sharing)

## Learning objectives

Expand All @@ -31,6 +32,15 @@ This lesson is designed to explain the basics of programming in Python.
* array
* DataFrame, Series, some details

## Preparation

To follow along with this Lesson, please open the Colab notebook [Week
01
Notes](https://colab.research.google.com/drive/1VQhUmSxM6WfSw1ZZeKfhkRhkfM9JPXQx?usp=sharing).
The first code cell of this notebook calls to the remote computer, on
which the notebook is running, and installs the necessary packages.
For practice, you are repsonible for importing the necessary packages.

## Variable

A **variable** consists of a name and value, where the name references the
Expand Down Expand Up @@ -263,11 +273,12 @@ l[::-1]
The slice `::-1` says to start at index `0`, go up to the last index, and take
steps of size `-1`. Hence, one gets a list in reverse order.

### Dict
### Dictionary

A `dict` indexes its elements with keys. In other computer science worlds, a
Python `dict` might be called an associative container because it associates to
each key a value.
A dictionary indexes its elements with keys. The type of a dictionary
in Python is `dict`. In other computer science worlds, a Python
`dict` might be called an associative container because it associates
to each key a value.

```{code-cell}
d = {
Expand Down Expand Up @@ -582,11 +593,14 @@ diamonds. Notice the `~`, read tilde, in front of `idx`.
np.mean(diamonds.loc[~idx, "price"])
```


```{seealso}
For more about indexing in Pandas see [Selection by
label](https://pandas.pydata.org/docs/user_guide/indexing.html#indexing-label)
and [Selection by
position](https://pandas.pydata.org/docs/user_guide/indexing.html#indexing-integer).
Such tools have a steep learning curve and a huge payoff.
```

```{seealso}
[Week 01 Assignment](https://colab.research.google.com/drive/1h9Ck7kWNN9_I2Yun9Yc4uBoI2lgv6chi?usp=sharing)
```
Loading

0 comments on commit 1522320

Please sign in to comment.