Git Product home page Git Product logo

curriculum-notebooks's Introduction

GWC-DCMB

A meta-repository to help navigate the repos and resources of Girls Who Code at UM-DCMB.

About Us

Founded by current doctoral students in the Department of Computational Medicine and Bioinformatics (DCMB) at the University of Michigan, our Girls Who Code club seeks to provide a collaborative and supportive environment for high school women of all skill levels and backgrounds interested in learning how to code.

Due to the research expertise of our graduate student Facilitators, our club curriculum is focused on computational data analysis and the Python programming language. Participants learn core coding concepts and implement their new skills in a data science capstone project of their choosing.

Resources

Repository Description Language(s)
ClubCurriculum Curriculum for our weekly club for high school students.
SummerExperience Curriculum for our week-long Data Science Summer Experience.
CapstoneProject Capstone Project datasets & instructions. Jupyter Notebook, Python
challengeQuestions Jupyter notebooks of challenge questions for learners. Jupyter Notebook, Python, Shell
codeDemos Stand-alone Python coding demos. Jupyter Notebook, Python
FEMMES Resources for activities for U-M FEMMES.
ozobotLessons Lesson plans for Ozobots.
curriculum-notebooks Jupyter notebooks for our Summer Experience and Club Curriculum. Jupyter Notebook, Shell, Python
GWC-DCMB A meta-repository to help navigate our repos and resources. Python, Shell

Additional Resources

Get Involved

Are you a UMich student, post-doc, faculty, or other member of the University of Michigan community? Join our mailing list or send us an email to find out how you can get involved!

Are you a high school student or younger looking to learn with us? Send us an email and stay tuned to our website for announcements on our next recruiting cycle.

License

All materials hosted here are subject to the licenses described in the LICENSE file.

Citation

The paper describing our curriculum and the development process is out in JOSE! If you would like to cite our work, please use:

Duda & Sovacool et al., (2021). Teaching Python for Data Science: Collaborative development of a modular & interactive curriculum. Journal of Open Source Education, 4(46), 138, https://doi.org/10.21105/jose.00138

A bibtex entry for LaTeX users:

@article{duda_teaching_2021,
  doi = {10.21105/jose.00138},
  url = {https://doi.org/10.21105/jose.00138},
  year = {2021},
  publisher = {The Open Journal},
  volume = {4},
  number = {46},
  pages = {138},
  author = {Marlena Duda and Kelly Sovacool and Negar Farzaneh and Vy Nguyen and Sarah Haynes and Hayley Falk and Katherine Furman and Logan Walker and Rucheng Diao and Morgan Oneka and Audrey Drotos and Alana Woloshin and Gabrielle Dotson and April Kriebel and Lucy Meng and Stephanie Thiede and Zena Lapp and Brooke Wolford},
  title = {Teaching Python for Data Science: Collaborative development of a modular & interactive curriculum},
  journal = {Journal of Open Source Education}
}

curriculum-notebooks's People

Contributors

akriebs avatar audreydrotos avatar bnwolford avatar brissend avatar echou89 avatar geeklogan avatar github-actions[bot] avatar katiefurms avatar kelly-sovacool avatar lechten avatar marlenad avatar morganoneka avatar negarf avatar sarah-haynes avatar thomasa avatar zenalapp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curriculum-notebooks's Issues

Inconsistent index counting in lessons 16 and 17

In lesson 16, you show iloc[99:105] with the comment 100 through 105. In lesson 17, iloc[5:11] with 5 through 10. I suggest to use a consistent numbering. Personally, I prefer the latter variant (maybe with a reminder that counting starts at 0).

I did not attempt to spot other locations. Similarly to issue #14, notebooks do not contain source code, making it hard to search through code on my filesystem...

Lesson 21: clarify rank

In Lesson 21, there are references to rank 1 and rank 2. Since students haven't taken linear algebra yet, we might want to change this to refer to one dimensional and two dimensional data instead?

Spotify dataset needs more documentation

One of our facilitators noted this year that the Spotify dataset is a big difficult to understand especially for beginners, so we should either document what the values mean for this dataset or remove it from our capstone project dataset folder.

Seeking support

This is in relation to the JOSE review.

"Community guidelines" ask for guidelines on seeking support. While you address contributing and reporting issues excellently, I do not find seeking support explicitly mentioned. I would personally assume that I can try opening an issue asking for support on something, but my assumption may be wrong and in any case, it might be a good idea to also briefly mention in your README whether and how you can ask for support on the lesson material.

JOSE: Prerequisites and collaboration on notebooks?

This is related to your JOSE submission.

I did not use Google Colab before. After reading the paper I thought that the Python source code for the notebooks was available on GitHub (so that I could retain/reuse/revise/remix/redistribute it as OER, without Google Colab). I may be missing something fundamental here, but this does not seem to be the case. E.g., how would I create a PR to address issue #14 and change & into and?

Besides, if I open a workbook via a link from the README, pressing "play" asks me to log in to Google. Is that a hard prerequisite to use the notebooks? If so, please document this.

Jupyter can't convert notebooks containing images to PDF

Jupyter cannot convert Key notebooks that contain images (e.g. Lesson 09 & 24). When running jupyter nbconvert in the build action, it fails with this error:

LaTeX Warning: File `https://raw.githubusercontent.com/GWC-DCMB/curriculum-note
books/main/Figures/IfElifElseDiagram.png' not found on input line [598](https://github.com/GWC-DCMB/curriculum-notebooks/actions/runs/3686899000/jobs/6239765330#step:7:599).

! Unable to load picture or PDF file 'https://raw.githubusercontent.com/GWC-DCM
B/curriculum-notebooks/main/Figures/IfElifElseDiagram.png'.
<to be read again> 
                   }
l.598 ...books/main/Figures/IfElifElseDiagram.png}
                                                  
? 
! Emergency stop.
<to be read again> 
                   }
l.598 ...books/main/Figures/IfElifElseDiagram.png}

Using local file paths instead of https links doesn't resolve the problem. It appears to be a known issue: jupyter/nbconvert#1079

Since we're mostly teaching in a flipped classroom style rather than with live-coding these days, let's temporarily stop trying to keep the PDFs updated until nbconvert resolves the issue.

Note to editor in lesson 8

Lesson 8 contains a "note to editor" about is. For an upcoming iteration my suggestion would be to remove it here. A typical use is in tests for None, which you do not seem to cover. In the subsequent lesson 09 it might be good to mention that we neither use is nor == with Boolean values (but just the value itself instead of == True; or not for == False).

JOSE: Paper contents

This is related to your JOSE submission.

The paper is well written and addresses the questions relevant to JOSE. I've got some comments/questions:

At the end of the summary you write that anyone can contribute. I suggest to emphasize that you describe Open Educational Resources (OER) under free and open licenses. Actually, I wonder about the videos. They do not indicate license information, do they? Are they OER too? Are they only available on Youtube or also elsewhere for download and reuse?

Section "Collaborative Curriculum Development"

  • You describe a process of quality control via PRs. I do not see those PRs in this repository. Are they publicly visible somewhere?
  • JOSE papers prominently feature a link to the repository. Thus, the link at the end of the section may not be necessary. Besides, is this section really the best place for such a link?

I suggest to phrase learning objectives with action verbs (what will students be able to do?). The first objective is too vague in this regard, while the other two are fine.

You write about "paired programming". I suggest "pair programming".

String comparisons in Loops 2

In the Loops 2 lesson & practice (and possibly other) notebooks we have some string comparisons using is, e.g.:

image

We should consider changing is to == instead for equality comparison (instead of identity comparison, which will only sometimes work due to string interning)

Practice 21: Boston dataset no longer loadable

The Boston dataset referenced in practice notebook 21 is no longer available for download--we should choose a new dataset and re-write this practice notebook, referencing the concepts used in the lesson.

Lesson 09: using Boolean variables in if/else blocks

Moving this part from #16: "In the subsequent lesson 09 it might be good to mention that we neither use is nor == with Boolean values (but just the value itself instead of == True; or not for == False)."

We could do something like this toward the end:

my_list = [0, 1, 2, 3, 4, 5, 6, 7]

is_short = len(my_list) < 10
is_medium = not is_short and len(my_list) < 20

if is_short:
  print("This list is short!")
elif is_medium:
  print("This list is a medium length.")
else:
  print("This list is on the long side!")

Files:

  • Lesson Key (Lessons/_Keys/KEY_LessonXX_Topic.ipynb)
    • all cells run
  • Lesson notebook (Lessons/LessonXX_Topic.ipynb)
    • all cell outputs cleared
  • Practice Key (Practices/_Keys/KEY_PracticeXX_Topic.ipynb)
    • all cells run
  • Practice notebook (Practices/PracticeXX_Topic.ipynb)
    • all cell outputs cleared

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.