Pro Tips

This can be a challenging course, especially if you have limited programming experience. Below is a non-exhaustive list of the "little things" that we feel will greatly improve your chance for success.

General

  • This is a graduate level programming course! While we use analytics examples, the goal of the course is to build proficiency in using Python to solve new problems and to expose you to some analytics use cases. Do not expect to see the same homework problems with different data on the exams, you will be disappointed.

  • Learn to use search engines effectively.

    • Try to clearly state what you are using and a single discrete step that you need to complete.

    • Generally something like "numpy matrix vector multiplication" or "python iterate list in reverse order" will suit your needs.

  • Familiarize yourself with reading documentation. The popular libraries all have thorough official documentation. It will take time to get used to how it is laid out and how to navigate the web interfaces. It is worth spending this time to learn how to find what you need.

  • Watching the videos and completing the homeworks is not enough to get a high score in this course. You will need to experiment on your own with the tools, concepts, and data structures which are introduced in the course materials to get to a point where you can effectively use them in a timed exam.

Debugging

Debugging is an iterative process where you must trace the undesired behavior back to the root cause. Sometimes it's simple; other times it can be frustratingly complex.

  • Identify what is wrong. This needs to be as precise as possible. If you don't understand the error in the traceback - Google it!. Check the syntax, parameters, and inputs of any function calls.
  • Identify where the wrong thing got set. This will usually be an assignment or a function call.
  • Rinse and repeat until you have found and corrected the root cause.

Development

The development section was deliberately given after the debugging section. The idea here is to do the debugging process in reverse - incrementally make sure that everything is getting set correctly from the start and checking as you go. The process is far from foolproof, but it will usually leave you in a better situation.

  • Break the problem down into small steps. Sometimes writing out a step by step process in "pseudocode" (a mixture of English and code that is just for planning) will help.
  • Implement your solution one step at a time. Make sure that each step is correct before moving on.
  • One way to accomplish this is to return intermediate steps in your computation, and run your incomplete solution on some demo data. A demo dataset is provided in most homework exercises and will be provided for all exam exercises.
  • Start debugging when you find that your intermediate result isn't what you expect.

Submitting

  • Submit in Vocareum after completing each exercise. We can not stress this enough! The grading script will run your entire submission from top to bottom in a new environment. It is possible that you are able to pass a test in your workarea but will not pass in the grading environment. This could be due to running cells out of order, a timeout, or overuse of resources.
  • If your submission passes in the workarea but fails a test in the grading area restart the kernel and run everything from the top. This is how your submission is run in the grading environment and will indicate if running cells out of order is the cause for the grading failure.
  • Check the grading report there is still confusion on why your submission is not passing the grading script.
Updated: 2022-12-16