Finals #

This final consists of content that you learned through the entire semester. However, the broad scope of the exam also means that there’s the most content to practice for out of all the tests that you’ve done currently.

Most of the content of this exam will be similar to midterm 2, with only a smaller portion of the additional points coming from the content learned after midterm 2 (for example, scheme, BNF, SQL, RegEx, or whatever combination of things you learned after the second midterm).

Strategy #

Depending on how you do in midterm 2, there are different things you could spend your time on. If you feel somewhat confident about your knowledge of how to solve midterm 2 questions, it’s probably a better idea to spend more time practicing scheme questions + all the other declarative programming languages you’ve learned (with an emphasis on scheme because those questions are the ones that can and will get the most complicated).

If you aren’t as confident with your understanding of MT2 material, you’re still going to be fine - there’s a lot of time during RRR week - but you would need to spend time revising more on the Python side of things.

Spamming Papers #

One way that I dealt with revising for finals (your mileage may vary) was just spamming past exams. This worked because I felt confident enough in my understanding of the content to the point where I just needed to know how to pattern match (which unfortunately is what the exams are pretty much). By spamming past exam papers (without even caring too much if I got the questions right; I looked at solutions pretty quickly if I thought a question was hard) and then doing those questions, moving onto other papers and then redoing all, I saw a pretty consistent pattern between questions and was able to use those patterns in the final exam.

I think out of everything, spamming past exam questions (you don’t even need to mock the papers in this class - I think time-wise just going through questions as fast as possible as long as you understand the solution) is the most time efficient thing to revise for finals.

There’s honestly not much to do outside of getting used to course content - most of the things from midterm 2 carries over to this exam, but there’s also a few extra things that you need to know (which is basically Scheme - similar thing to Python except everything is in recursion, or stuff like RegEx and BNF which are pretty specialized, but those can just come with a bit of practice because the scope of RegEx and BNF questions is not nearly as large as anything else).