Skip to content

About

This course is designed and created by Dr. Trenton Wirth, Psychology Professor at the University of Cincinnati.

It is made with the intention of introducing anyone to the basics of programming, with a focus on Python. The course is designed to be accessible to anyone, regardless of their prior experience with programming.

The code for this project follows the GNU General Public License v3.0, and the course content follows the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You can find details of these licenses in the Licenses tab of this website.

Trent is not a computer scientist, and doesn't claim to be an expert on programming. However, his journey of learning programming as a behavioral scientist himself equips him with the empathy and patience to develop a course targetting non-technical students who want to learn how to engage in scientific programming.

You can reach Trent at his University email: wirthtd AT ucmail DOT uc DOT edu

Future of this Course

Last Updated: 2024-12-11

This course will remain available for free for anyone to learn from for as long as I (Trent) have the capacity to maintain it.

I have a variety of changes planned for the next time I run the course:

  1. While many students enjoyed the relatively slow pace of the class, I want to build more rabbit holes for students to fall/wander into. This includes buffing up the "Side Quests" portion of the website.
  2. As I was focused on constructing the Learning Paths this first time around, there aren't as many Coding Assignments as I think there could/should be. This material is hard to use effectively if you're not actually a registered student in my course (because I can't post the answers on here) but I do think they're useful exercises to test how much you're learning.
  3. I want to build more steps between the "Data Dive" and Step 22 - I found that students finished up the Data Dive portion of the class much quicker than I had anticipated.
  4. I want to build forked paths that diverge once students get through Object Oriented Programming concepts: the path that's established here is what I think of as the "Data Visualization & Statistics Path" that is most appropriate for psychology students. The goal is to cross list this course at U Cincinnati with the Game Development and Animation major, and for that reason I'd like to build a "Mechanics of Game Development Path". Finally, for advanced students who want to go beyond data visualization, I'd like to build a path that focuses on "Machine Learning and AI".

Use of Generative AI (LLMs)

The initial creation of this course within a single semester would likely not have been possible without the use of generative AI.

I (Trent) used AI extensively to draft aspects of the course, particularly the Learning Paths. Here is how I used AI in the creation of this course:

  1. I knew the general goals of the course, and I interacted with a mixture of Copilot and GPT4 (original, not o) to build up the first few learning path steps in a way that I felt satisfied the goals of my class.
  2. These initial steps were then edited and tested by me before I presented them to students.
  3. With the first few steps of the path complete, for every subsequent step I used all previous steps as a part of the prompt for creating the next one - I believe this helped to maintain a relatively consistent style and pacing throughout.

    Rather than copy paste each of the files, I would attach a .md file that contained "all of the steps" up to that point - this was a part of my prompt.

People have a lot of feelings about the use of generative AI - I feel that the way I've used it here is reasonable and ethical, this is basically a curated version of the concept of the generative textbook.

If you think I've done something terrible, please drop me a line - I'd be happy to hear from you. : )