Thursday 21 May 2015

CPSC 301

CPSC 301 (with Dr. Ian Mitchell)

  • Course Taken: T/Th 9:30am (January, 2015 - April, 2014)
  • Format: Lectures are relatively slow-paced, and only goes through "tricky" aspects rather than teaching how to code. All his lecture slides are posted on his website. The course first uses Scratch (https://scratch.mit.edu/) and then uses Python 3 + BioPython. Lectures typically are used to only clarify concepts and not teach, and Dr. Mitchell expects students to read the textbook to get the basic concepts. There are a lot of iClicker and in-class group worksheets for participation marks. The labs are done in pairs, and are the most helpful part of the course. Often it will take the entire lab section to finish the lab, and some people need to finish the "after-lab" section later. The lab worksheet + the programs you write will be due the next Wednesday online, and the TAs typically mark and return the labs 1.5-2 weeks later. The TAs are extremely helpful. 
  • Grading Scheme: Midterm (20%), Final (40%), Lab Exam (Must pass to pass course, 0%), Labs (20%), Class Participation (10%), Best Score among midterm, final, labs (10%)
  • Textbook: Practical Programming: An Introduction to Computer Science Using Python 3 (Paul Gries, Jennifer Campbell, Jason Montojo)
  • Class Average: 82% 
  • Personal ExperienceOverall, I found this course relatively easy and fulfilled its purpose of introducing students to basic programming. Scratch is very intuitive to use and is a good introduction to students who have never programmed before. The course uses Python 3 with Anaconda distribution (which already has many packages including BioPython and PIL). In the lab, the goal is to get the same output as the problem set. However, in the midterms & exams, it is expected that you understand what each step does and what the computer will end up remembering. The in-class worksheets are a good reflection on what to expect on exams. Dr. Mitchell can be difficult to understand when he lectures especially if you are not up to date on the readings. 
  • Advice: If deciding between CPSC 110 and CPSC 301, it depends on how much more CPSC you want to do. CPSC 301 primarily focuses on Python which is extremely useful and immediately applicable to many research fields. The course is a great introduction to programming for students with a biology background. CPSC 110 uses Dr. Racket which can be a tedious program and not directly applicable to use outside CPSC courses; however, it teaches good programming habits. You will need CPSC 110 to take more advanced computer science courses. 

0 comments:

Post a Comment