prev next
 

Programming Resources

There are a variety of resources available for learning and mastering both Unix and Python. Listed here are several sources, some of which are created by us for the class, and some of which are links to external websites with useful information. Hopefully, in addition to the Textbook and facilitators, these resources can ensure a smooth learning process and can serve as handy reference guides.

  • Review Sheet: Weeks 1-4
  • The Syllabus. The Syllabus contains a course description and weekly schedule for the progression of the course. It will also have homework and tutorial dates, to be updated as the semester progresses.
  • The Textbook. Somewhat Self explanatory, the textbook is the full enumeration of every concept addressed in the class.
  • Tutorial: Setting up your computer to remotely log in to the UG ASTRO computers This tutorial will show you, on Windows, Mac, and Ubuntu, how to remotely log in via the command line into a "terminal" on the ugastro computers. It also demonstrates how to set up an SCP client if needed, to transfer files back and forth between your personal computer and the servers.
  • Cheat Sheet: Unix This handy cheat sheet has a ton of helpful commands for UNIX to help you navigate around the linux systems, move, copy, create, and set permissions on files, etc.
  • Tutorial: Using VI and VIM text editors For those of you thinking about which text editors to use when making your codes, or editing them, VIM probably seems like an intimidating option. Maybe you dont even know what it is. Take a look at this handy tutorial if you want to get an idea for how vim works, and if you'd like to use it. In any case, as a standard linux/unix editor, at least being able to use it functionally will be a helpful skill to have.
  • Code Academy Code Academy is an online, interactive set of tutorials for learning python. The exercises are straightforward and easy (and sometimes repetitive and dull); however, if you feel like getting some extra practice coding, or you want to revisit/practice something you are having trouble with, it can be a good resource. Just for reference, you can finish the whole python course there in about a week (if you're leisurely about it) or a weekend(if you are not).
  • Computer Science Circles If code academy was too sissy for you, and/or you finished it and want EVEN MORE practice with python, Computer Science Circles(through University of Waterloo) is a sort of amped up version of code academy, with less frills and more content. If you have done code academy or are feeling fairly proficient, try skipping to the later exercises which quickly get more complex and difficult. [NOTE: CSC uses python 3.0, whereas we use 2.7.3 in this class. There are some subtle syntax differences, so be aware of that].
  • Stack Overflow If you ever, ever have a question about how to do something in python, there is a 99.99% chance someone has asked it before, on this site specifically. This site is your best friend. It is your lover. Cuddle it and whisper sweet nothings to it at night, because when you start programming independently, this site will save you many, many times. There is a saturation of people who know python better than you do on that site, and chances are you can find out how to loop through that thing in that way in about 5 minutes by visiting this site.