Skip to content

A collection of resources I've created to help with various courses in Computing Science I help to deliver

License

Notifications You must be signed in to change notification settings

Ethan-CS/Teaching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teaching Resources Repo

This repo contains a collection of resources I've created to help with various courses in Computing Science I help/have helped to deliver. There are lots of things you can do here, and you may have been pointed here by me, so hello! I'm adding new projects all the time, so do check back in if you're ever looking for help or practice coding. Below are some helpful tips and pointers about what you can do here. I hope this helps with whichever course you're taking and if you aren't taking a course at all. Feel free to get in touch anytime if you could do with a hand navigating this, a chat about any of it or just to say hey: contact me.

Contents

There's more information in each of the directories about what each of the projects aims to teach, explain or demonstrate but below is a broad overview.

  • CS1PX-resources - Any Jupyter notebooks and other materials I've currently made available for the 1PX (Further Programming - Python) first-year course at the University of Glasgow. This may be empty or sparse, especially at the start of the semester!
  • ProgIT-resources - Contains any materials I've made available for the Programming course (in the MSc in IT degree, University of Glasgow) - may be fairly sparse at the start of term, to avoid spoiling what's coming up!
  • Blackjack - I aim to continue creating variants of this project in order to demonstrate different design patterns as and when required, and where appropriate in this context, but above all else this project is a great way to practice importing and developing in an IDE.
    • vanilla variant demonstrates the implementation of the Singleton design pattern
    • adapter variant implements the Adapter design pattern in the.
  • factory - a very simple example of the Factory design pattern (also in Java).
  • game-of-life- John Conway's Game of Life in some different implementations and with various supporting material to explain some (hopefully) interesting bits about the game.
  • rock-paper-scissors - A really great implementation of Rock, Paper, Scissors by Derek Somerville for his course, Foundations of Professional Software Engineering, that I point students towards very often. I have this copy on my own GitHub so that I can play around and then suggest any changes back to Derek.

Suggesting changes

If you take a look at the rest of my work, either on my personal site or my other repos, you'll see I'm a mathematician (and philosopher) by training, so my programming background is a little light compared to your typical computing science PhD student! This means there are definitely better ways of writing code that I produce, so any suggestions, amendments or bug fixes are most welcome. To do this, you may want to consider "forking" this repo. To do that, you'll need your own (free) account on GitHub and from there, navigate to the repo ethankelly/teaching and hit the "Fork" button. This will create a parallel repo associated to your own GitHub, identical in everyway to the repo at the time you forked it. Then, you can implement any changes, amendments and so on in your own version associated with your account, with the benefit being that you can experiment to your heart's content without any impact on the original repo.

Then, if/when you're happy to pass any changes back to the original repo, create a "pull request" (this link explains how to do this). When you create a pull request, you get an overview of any changes you've made to the repo (compared with the original you forked) and you can comment on any changes you like, explaining briefly why you think it's a beneficial amendment and what you mean for it to do. When you submit this, I can see all of the changes you're proposing and accept, comment on or reject any changes. In large, open-source projects, much of the time the first pull request you submit isn't immediately accepted - sometimes, you won't be either accepted or rejected but told to amend something, perhaps to fit with the code style of the project, to provide more comments and explanation and so on. In the case of this repo, if I agree with your amendment and your comments explain it well enough, I'll be more than happy to accept your changes and pull them into the main repo here.

If you can think of any amendments in any of the code here, if you're a student I'd especially encourage you to give cloning/forking a go along with a pull request. It's great practice for navigating codebases, working on open-source stuff and getting to know GitHub a little better. Feel free to get in touch if you need a hand doing any of this, or you want to discuss whether something is worth doing this for. I'm more than happy to discuss! You can find my contact details here: contact me.

About

A collection of resources I've created to help with various courses in Computing Science I help to deliver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published