Should I place out?

Students should not consider placing out of this course unless they have strong programming skills in the listed areas. By "strong" we mean that you understand these concepts very well, are able to implement them in at least one programming language, and are confident in your ability to quickly pick up the details to implement them in another language.

Control flow and variable concepts

  • Conditional logic (if/then/else)
  • Loops (for/while)
  • String parsing and manipulation
  • Functions - defining and calling them as well as consciousness of scope
  • Understanding of basic data types (string, integer, float/double, boolean)
  • Understanding of basic collections (list/array, dictionary/map)
    • Familiarity with nested collections is key

Numerical programming

  • Understand inherent floating point precision errors
  • Working directly with matrices - i.e. not using loops to do matrix multiplication
    • This experience may be with Python/NumPy or with Matlab/R/etc.
  • Translating mathematical expressions into executable code
    • Basic understanding of linear algebra

Handling tabular data

  • Incorporating SQL DQL (SELECT queries) into executable code - (i.e. outside of your SQL client front-end)
  • Joining, grouping, aggregate functions, ordering, filtering tabular data using both SQL and somehting like Python/Pandas or R

Utilizing resources

  • Finding and parsing official documentation
  • Incorporating MREs (Minimum Representitive Examples) into a your specific use case
    • Think "uses Google and StackOverflow efficiently"

An example of a recent final exam is linked below. Students were required to supply the code between ### BEGIN SOLUTION and ### END SOLUTION. Be sure to check the top of the exam as solving all of the exercises is not required for a score of 100%.

Past Final Exam

Updated: 2022-12-16