One of the challenging things about teaching programming at undergraduate level (or any level, in fact) is that students come with very different levels of prior experience.
Some have been coding at home since they were 9, some are brand-new to programming. Keeping everyone happy (challenged but not lost) is the target.
This course is designed with the complete beginner programmer in mind. We start right from the beginning. As a result, some more experienced programmers may get a little bored during class.
If this is you, then here are some suggestions:
Work through the exercises below each episode: There are short exercises at the end of each episode. If you think that you already have a full understanding of the material, test your knowledge using these questions.
Help another student in the class: One of the best ways to cement your understanding of something is to explain it to another person. If you can see someone is struggling in class, see if you can support them.
Explore the Journal of Open Source Software (JOSS): JOSS is a journal for software developers. It has a huge amount of code from a variety of domains. Pick a paper, read it, and explore the code. Connect it to what we are learning in class. What do you need to do next so you can write publication-quality code? The papers can be found here.
Work through challenges on the Advent of Code: Start at challenge 1 (easiest) and work your way up to challenge 25 (hardest).
Interested in simulation?: Explore this Github repo containing code for simulating particles using Lennard-Jones Molecular Dynamics. There is an associated video here.