Course Related Pages

Fall 2018 Syllabus [for information only]

Winter 2020 syllabus is not available yet.

Contact Information

Instructor Prof. Chris Ferrall;
Office Mac-Corry A519
Hours Please check onQ for regular hours. Feel free to request an appointment at other times by email or in person.
Phone 533-6658

A&S Calendar Description & Course Format

An introduction to numerical methods as used in economics, finance, and related fields. Topics include

Includes a major project where students implement economic models or replicate work found in the literature. Prerequisite: ECON 255 Co-requisite ECON 250 (or Stats 263). Programming experience is recommended but not required.


Econ 354 does not follow a standard lecture-assignment-exam format.  Some differences:

  • Some class meetings are more "active" through students working on code and algorithms both individually and in teams.
  • Not-for-credit assignments are posted in a discussion forum which allows students to see answers submitted by other students after they have submitted their own.  
  • Students select one of two grading schemes. The "Crash Course" is a lower risk and lower "return" plan designed for students with limited programming experience. The "Challenge Course" has higher risk and higher return to appeal to students with stronger programming backgrounds. Students are free to choose either stream, but based on midterm performance I may discourage some students from choosing the Challenge stream.

Learning Outcomes

By the end of this course, students will:

  1. Be able to design, write, debug and test simple Ox programs
  2. Understand how numbers, matrices, and functions are represented in computers and the implications for accuracy of computations
  3. Be familiar with standard algorithms used to solve economic models and how they are implemented in Ox.
  4. Students in the Crash Course stream will have written Ox programs to solve specific problems. Students in the Challenge Course will have designed, tested and documented a program that relates to economics.


Four items will enter the course grade

The Course Completion item depends on the stream you choose after the midterms:
Crash Course has a do-alone homework assignment and a short final exam combined into one score.
Challenge Course works on a project or different projects (details below).
  • Pass/Fail on Midterm 1 covering Part I of C4E (0,1)
  • Pass/Fail on Midterm 2 covering Part II of C4E (0,1)
  • Effort on posted assignments, hackathons and attendance (0,1,2)
  • Course Completion (i.e. the final)

Midterm Grades and Effort

Each midterm grade is an individual exam carried out on paper done in class.
All other activities count towards effort, which involves posting answers to assignments before the due date and participating in class. Grades will be assigned as 0 (little to no effort), 1 (modest effort) and 2 (serious effort).
Midterm and effort scores are added together to generate a score between 0 and 4. Scores of 3 or 4 will result in a uptick on the course grade (e.g. from A to A+). Scores of 0 or 1 will result in a downtick (B to B-). A score of 2 results in no change.

Course Completion Marks

      Grade             Crash           Challenge
        4                 A-               A
        3                 B-               B
        2                 C+               C
        1                 D+               D
        0                 F                F
That is, the maximum grade in the Crash Course Stream is A (A- on the completion task and an uptick on the midterm and effort). The Crash Course is meant to be a lower-risk option. The Challenge Course is meant to be more open-ended, but it also demands more independence. Thus the maximum grade is higher but the minimum grade is lower.


  • After the two midterms have been marked, each student selects which stream to join. Students who do not pass both midterms are advised to chose the Crash Course stream.
  • Students will complete the Course Completion for their stream which will be graded and determine their final mark.
  • Course completion work will be graded over values 0-4. Then the midterm/effort effect will be added to determine the course grade.

Crash Course versus Challenge Streams

Based on previous iterations of Econ 354, I anticipate a bi-modal distribution of student backgrounds. One group will have little to no experience in computer programming and will see Econ 354 as a way to quickly learn some basic skills relevant to economics. Students in the other group will have taken programming courses and will see Econ 354 as either an easy course or a way to learn more advanced and specific tools. My goal is to make Econ 354 useful and challenging to both groups which is why two different course completion streams are provided.


Students who are novice programmers … should see this as a crash course in programming. They are unlikely to be ready to take on a sophisticated programming task by the end of the term. So they can finish the course with a standard homework assignment and a short final exam. Both will emphasize understanding of basic programming of economic models. Students at this point may only be ready to write simple programs, but they will understand what is required to design, debug and document a program. In turn this will be a base for learning other languages or taking further courses that expect some programming background. In return for this opportunity to make up ground quickly, students choosing the Crash Course stream forego the chance of getting an A+. The Crash Course stream reduces the uncertainty these students face in getting a program to work.


Students with a programming background … can chose to work in the Crash Course stream as well. They will probably find course completion relatively easy and can be fairly confident of getting an A- or A if they put in a modicum of effort. The Challenge Stream gives students an option to do something more ambitious. They then have the time and support from me to pursue that goal. With sufficient focus and effort this project can earn a A+. The downside is that a student choosing the Challenge stream but putting in little effort faces a lower grade than over in the Crash Course stream. In other words, there is a greater maximum "return" to the Challenge Stream but also greater risk.


Novice programmers are free to chose the Challenge Stream, but this should be done with early consultation with the instructor.


Course completion in the Challenge stream depends on the number of students who select into it. There may be a single project done with instructor input. If more students select the stream, or if students have diverse interests, then there may be separate projects. Students can work on their own or with others.


Required Resources

C4E: Computation For Economists
Lecture notes. The printed version is available directly from the instructor. It costs $20 payable in cash or by Interac transfer.
Ox Console on Your Laptop
Students are expected to have a laptop available for use during some classes and to carry out assignments.
Code Directory
Programs referred to in the lecture notes and exercises. One of the files in the directory is a Zip file containing all the programs that you can download to your laptop.


Assignments and the Assignment Forum

The course notes have exercises. Some of these exercises start with a code like [A01] or [A15]. This means they will be posted as a topic in the Econ354 onQ Assignment Forum. The number is the order in which assignments are due, although the assignments are not required and no credit is given for completing them. They are chosen to keep the student on track with the material and to prepare for the midterms and course final. The due date is when the forum topic is locked and students cannot post a response to the topic. I create "topics" which are exercises from the lecture notes or other short programming assignments. You respond to the assignment by creating a "thread" under the topic. You then cut-and-paste your code and output in the message (a video guide is available onQ). Do not attach your code and output as files because it slows down the process of reading the answers. For readability: you will see a formatting bar above the window when creating your thread. Mark your code and output and then select Preformatted so it appears as is.


Once you create your thread you can see other student responses. Notice, however, that all you have to do is post something as a new thread. If you don't post a program, or if your program doesn't work does not matter. You will then see other posts (and can see how to do the assignment) and the next assignments will become visible to you. By the same token, both I and your fellow students will see your non-answer answer.


Some assignment posts are not visible to you until you have post a thread to an earlier one. Since assignments have lock dates you cannot post a reply after that day/time which means you have to keep up with the assignments to continue to benefit from the Assignment Forum.



Hackathons are planned in-class programming activities. Typically they start from an assignment in the Assignment Forum that is locked just before class. Students begin with that program and we build on it incrementally. Instructions show up on the screen with no code.