Resources for Comp151

Development Tools

  • create a Jetbrains student account to get the professional Jetbrains products for free.
  • Jetbrains Toolbox I recommend you use Jetbrains toolbox to manage your IDEs
  • Pycharm IDE : In this class, we will use pycharm  to develop code and projects - you can install it directly with the toolbox app
  • Get Git you need git to turn in projects for this class., It is likely pre-installed on Linux, and will install with the mac xcode command line tools. You will definitely need to install it yourself on windows though.
  • Get the python programming language compiler, tools etc. (if you are on windows 10/11, you can get it from the windows store)


More General Resources

  • The official Python Language Documentation
  • The original 'awesome python' list of widely used third party libraries
  • A useful tool to help us visualize a python program
  • the comp151Colors file (currently it is named comp151Colors.txt because webhost eats .py files, rename it to comp151Colors.py when you download it)
  • Early October Class Exercise Files: The Silly Rec file     The movies vs Games File
  • Early November Class Exercise files: CountryPop.txt file The GamesSales2d.txt file
  • Images for Late November class exercises ship png for class projectand coin pile png for class project
  • A reworking of the geeks for geeks overlap function to work with our tuples and top left origin
    • def do_overlap(l1, r1, l2, r2):
          # If one rectangle is to the left of the other
          if l1[0] > r2[0] or l2[0] > r1[0]:
              return False

          # If one rectangle is above the other
          if r1[1] < l2[1] or r2[1] < l1[1]:
              return False

          return True
    • Alternatively - if we are using dictionaries rather than tuples,
    • def do_overlap(l1, r1, l2, r2):
          # If one rectangle is to the left of the other
      if l1.get('x') > r2.get('x') or l2.get('x') > r1.get('x'):
      return False

      # If one rectangle is above the other
      if r1.get('y') < l2.get('y') or r2.get('y') < l1.get('y'):
      return False

      return True



Slides

From time to time I'll post my lecture slides here. They are really my notes to remind me what we need to talk about, so they are not enough by themselves, but they will hopefully be of use when paired with the notes that you take.