This is a graduate topics course in computational economics, with applications in datascience and machine learning.
- Get a GitHub ID and apply for the Student Developer Pack to get further free features
- Consider clicking
Watch
at the top of this repository to see file changes - (Optionally) installing GitHub Desktop for easy downloads/updates of materials
- Login to https://vse.syzygy.ca/ with your CWL to ensure you can access our JupyterHub
- Click Here to install the QuantEcon Julia Lectures there
- Later you will need to do a local installation by following the Getting Started but this is a better way to begin
- For support with vse.syzygy.ca, email [email protected]
- To automatically launch the QuantEcon lecture notes on vse.syzygy.ca
- Open the lecture notes in a website (e.g. go to Introductory Examples)
- Hover your mouse over the button "jupyter notebook | run" at the top
- When it pops up a configuration, choose
vse.syzygy.ca (UBC Only)
from the list, move your mouse to somewhere else on the screen - Now when you click on the "jupyter notebook | run" on any of the Julia lectures (no need to hover again), it will launch in our hub.
- Download the extra notebooks from this repository with Here
- To update this repository when we create new notebooks, just click on that link again to clone.
In all cases, the reset a notebook, delete it and click on the launch of clone links again.
Most of the course will be taught using Julia, but we will briefly introduce Python (or R) for discussing topics where Julia is not ideal.
See Syllabus for more details
Problem sets should be submitted as a single Jupyter notebook on Canvas, with the code and output clean.
-
Problem Set 1 - Due Friday September 13th
- Exercises 7, 8(a), and 8(b) in Introductory Examples
- Redo any exercise of your choice from 1 to 6 in Introductory Examples
- In all "Redo" look at the provided solutions afterwards, but still submit your code
- Exercise 7 in Julia Essentials
-
Problem Set 2 - Due Monday September 23th
- Unlike the first assignment, we will start grading this on style and reproducibility rather than just on whether you get the correct numbers. See the Digression on Style and Naming
- Exercises 2, 3, and 4 in Fundamental Types
- Exercises 1, 2, and 3 in Introduction to Types
-
Problem Set 3 - Due Saturday September 28th
- Exercises 4, 5, 6 in Introduction to Types
-
Problem Set 4: Due Saturday, October 5th
- Exercise 1 in Generic Programming
- (Optional) Exercise 2 in Generic Programming
- Exercises 1a, 1b, 1c, 2a, and 2b in Git and Github
- For the git/github in your ipynb notebook add links to the various PRs or screenshots with some evidence that you executed the steps. No need to do much about the formatting
- The easiest is certainly if you do all of this with public github repos, and then you can just provide links to the "evidence"
- One more comment on this: For the PRs, make sure to look at the style of the underlying code or text. For example, if no punctuation is used anywhere in a document, then that is the style used. Making style suggestions as PRs is not the best approach.
-
Problem Set 5: Due Saturday, October 12th
- Exercise 1 in Testing and Packages
- Exercise 1, 2a, and 2b in Numerical Linear Algebra
-
Problem Set 6: Due Monday, October 28th
- Complete one of the exercises from optimization algorithms Turn in a link to a public git repo containing your work (preferred) or a jupyter notebook.
-
Problem Set 7: Due Monday, November 4th
- Work on one of the issues in GMMInference.jl.
- If you have a GMM model you're interested in, Issue #7 would be a good choice
- If you are interested in econometric theory, issues #5 and the second bullet of #8 are good and will require some research
- If you like thinking about code organization and package design, #2 or #6 are relevant
- As with the previous assignment, you need not complete the task; make whatever progress you can in 6 hours or so. If you want your work to be added to the repository, either make a pull request or say so on whatever you turn in.
- Work on one of the issues in GMMInference.jl.
-
Problem Set 8: Due Wednesday, November 13th
- Improve the performance of a piece of code. Take some code from a package, previous assignment, or lecture and attempt to improve its performance. Include benchmarks of the initial version and your modified version. Briefly describe the things you tried.
-
September 4th: Environment and Introduction to Julia
-
September 9th: Introduction and Variations on Fixed-points
-
September 11th: Introduction to types
- Self-study: Julia Essentials
- Self-study: Fundamental Types
- Start Intro to Generic Programming
- Flip through the Matlab - Julia Cheat Sheet
-
September 16th
- Self-study: Intro to Generic Programming
- Self-study: Generic Programming
-
September 18th
- Generic Programming
- Self-study: General Packages
- Self-study: Data and Statistical Packages
- Notes on Quadrature applying generic programming
-
September 23th
- Self-study: Linear Algebra
- Self-study: Orthogonal Projections
- Notes on Numerical Linear Algebra applying generic programming
-
September 25th
- The Schur Decomposition
- Desktop Tools/Package Management
- Git and Github
-
September 30th:
-
October 2nd
-
October 7th
-
October 9th:
-
October 14th: NO CLASS (Thanksgiving)
-
October 16th: Clusters + Debugging
- See https://github.com/ubcecon/cluster_tools for instructions on setting up/using the cluster.
- Juno debugger
-
October 21th:
-
October 23th:
-
October 28th:
-
October 30th:
-
November 4th:
-
November 6th:
-
November 11th: NO CLASS (Remembrance Day)
-
November 13th:
-
November 18th:
-
November 20th:
- Neural Networks
- Good references: Deep Learning and Knet.jl book
-
November 25th:
-
November 27th:
-
December 18th
- Final Project due December 18th