Click here to join or view the Drive. Do not convert PDFs to a Google Doc, leave them as PDF files.
Click here to leave the Drive.
Where is my course?
Each course is put in a folder with the year that Informatics lists the course to be run for. You can view all courses and their associated years at course.inf.ed.ac.uk.
Sharing
When you share a link (see types of links below), only people who are added to the Better Informatics Team Drive have access.
Type | Example URL |
---|---|
Folders | https://drive.google.com/drive/u/0/folders/0AIKEqWfeWuQQUk9PVA |
Files | https://docs.google.com/document/d/1W1xVJs_RvV3KBbk1bKjsDvYUyUitER4jVbuae-nUFx8/edit |
If you share one of the above links directly, users without access will be presented with the below interface:

This is bad! There is an automated system to add users to the Team Drive.
You can just click the join team drive link at the top, and this will just prompt you to log in and associate your Informatics DICE account (to prove you’re an inf student) with a Google account (to use Google Drive).
If you would like to directly send a link to someone in a group chat… copy the bolded bit in the URLs above and paste
it in the section indicated below by ID_HERE
:
https://betterinformatics.com/drive?next=ID_HERE
For example, the following URL https://drive.google.com/drive/u/0/folders/0AIKEqWfeWuQQUk9PVA
would
produce https://betterinformatics.com/drive?next=0AIKEqWfeWuQQUk9PVA
.
(todo: replace these annoying instructions with a little edit box that auto-converts it for you)
Statistics
As of 2020-02-04 we had 2025 users registered on our Google Drive. We may have had more registrations, but that’s the number of people who hadn’t removed themselves from the drive at the time. On this day we reset the entire list and requested people to rejoin. This is so that they change this setting.
Thank you
Thank you to all these contributors for contributing to the website. And many more who have contributed to the Team Drive.
Thank you to TARDIS for hosting this website. And thanks to
for hosting files.
General handbook Edit on GitHub
don’t stress yourself out too much, first year doesn’t count towards your degree
- LaundryView
- Common Outside Course Options for Informatics Students
- Year 1 Google Drive
- mailing list archives - ug1-students
- if you have a learning disability go to the disability service! make sure you go there long before the exams, it only takes few hours and can help you quite a bit.
- Programming Club
- InfBase: a drop in helpdesk for you to get additional tutoring and support with your courses. See the schedule here - there’s no need to sign up, just drop in
General guide, mailing list archives Edit on GitHub
- Honours hurdles: refer to your DRPS programme
- InfBase: a drop in helpdesk for you to get additional tutoring and support with your courses. See the schedule here - there’s no need to sign up, just drop in
General Edit on GitHub
- Year 5 Google Drive
- mailing list archives - msc-students
- Useful YouTube channel for MLPR / PMR / IT / IAML / DME
General Edit on GitHub
General Edit on GitHub
- Facebook Group Chat
- Year 4 Google Drive
- mailing list archives - ug4-students
- Useful YouTube channel for MLPR / PMR / IT / IAML / DME
Honours Project Edit on GitHub
- You can manage citations with JabRef or Zotero
- Use DBLP to generate .bib citations over Google Scholar
- Write your Intro, Conclusion and Abstract last — your project might change by the time you’ve written everything else.
- Abstract: The advertisement for your paper. You want to start with a very general scope and narrow down to specifics very quickly. Don’t use jargon. Do flex your results.
- Introduction: Similar in that you want to be general, but you have more space. You need to talk about the Motivation, Objective, Contribution and Organisation.
- Conclusion: An overview of the project and your results. You’ll want to have “Critical evaluation of own work” in here and also discuss how the project has helped you (the latter isn’t in the marking scheme however was advised to include this).
- Ask your supervisor if you can use “I” and what tense to use. My supervisor banned “I” and mandated past tense, YMMV. You probably want to avoid 2nd person (you) and use “one” instead.
- Find some linter or other tool to check the LaTeX you have written before submission. There are a bunch of small things you can do to make things render nicely: for example, ``quote’’ instead of “quote”,
---
instead of —, etc. - You can use
\autoref{chapter-introduction}
which will expand toChapter \ref{chapter-introduction}
- If you are writing a MInf2 thesis, refer to the first part as “Part One”
- Outstanding undergraduate projects - Recent dissertations which have scored 80% and above.
- A Template-based Model for Automatic Image Description (2014), feedback, with Mirella Lapata (83%)
- WILDEBEAST: A webservice for real time characterisation of infectious disease epidemics, supervised by Andrew Rambaut (80%)
Binding
You do not need to get your thesis bound for submission. However you may want a nice printed copy of your thesis as a record of your hard work or it makes a nice gift for your parents. The University Printing Services will hardback bind your thesis with gold foil lettering on the spine for £19 + 0.05(# b&w pages) + 0.4(# colour pages).
Formatting your thesis for binding:
- If you want two sided printing, add
twoside
to your options - The default top margin is 2cm and the bottom is 4cm, I think it looks nicer with
\geometry{a4paper,left=4cm,top=2.5cm,right=2.5cm,bottom=3cm,twoside}
which is set in infthesis.cls - Use a linter like https://www.dainiak.com/latexcheck/ to make sure you’re doing LaTeX good
If you have done a two-part MInf, it is preferable to have both parts of your MInf in the same book. The best way to do this is to duplicate one of your parts and copy the Introduction to your Conclusion of the other one into it. You will most likely need to fix a bunch of errors with bibliography entries needing to be copied over or adding \usepackage
statements. Then you can add \part{Title of Part 1}
and \part{Title of Part 2}
before each respective part so that the table of contents is formatted properly. You will then need to think of a new title for the project as a whole for the \title{}
and merge the abstracts and acknowledgement sections.
- For two-part MInf, override the submityear with the years that you did the project in infthesis.cls like so
\gdef\@submityear{2020 -- 2022}
INF2D - Reasoning and Agents | drps, info, papers April/May exam Edit on GitHub
50% closed book exam, 30% across two courseworks, 20% tutorial / engagement. Pass: 40% overall
- MCQ Question Cache
- Quizlet
- Python implementation of algorithms from Russell And Norvig’s “Artificial Intelligence - A Modern Approach”
- Alpha-Beta pruning interactive example
- Another AB pruning example - allowing you to create your own tree
- Video on a-B pruning
- Good set of video lectures on most things covered in the course
- Breadth first search & depth first search
- PDDL Reference
- Bora M. Alper’s PDDL Companion - syntax check and plan PDDL from your terminal
- Bora M. Alper’s Lecture Notes (2019)
Useful Links Edit on GitHub
- Give feedback about Better Informatics in #sigweb on the CompSoc Discord
- Admin
- Instant login: euclid, learn
- ITO contact form, Rep Meetings blog
- Courses: Full list of Informatics courses, Course survey reports
- Timetables: Semester, coursework planner / timeline, Collaborative deadline spreadsheet
- Policies: feedback, coursework, progression guidance
- Allocations: tutorials, labs
- Software & Tools
- Spotify on DICE
- Coursework Calculator
- The Marauders App - map of machines
- Web printing interfaces: EveryonePrint, ManagePrint
- Exporting Outlook calendar to Webcal / Google calendar
- Batch Downloading Media Hopper Replay lecture recordings, + same script packaged as a PIP package
- Facebook
- School of Informatics - for school wide discussion
- CompSoc Members - for Informatics related events
- CompSoc Careers - for job offers, internships, and placements.
- Class of 2017, 2018, 2019, 2020, 2021
- Other
- Course Rankings (this is out of date, contains data from 2015/2016. also the graphs take minutes to load.)
ADBS | drps, info, papers April/May exam Edit on GitHub
- Official past exams and solutions by Samuel G. (up to 2010)
- ADBS-2013-solutions
- ADBS-2012-solutions
- ADBS-2011-solutions
AFDS Edit on GitHub
AGTA | drps, info, papers April/May exam Edit on GitHub
AR - Automated Reasoning Edit on GitHub
- 2010 solutions on Drive
- May 2012,
AV Edit on GitHub
- May 2010 Answers
- May 2011 Solutions (in progress)
- May 2012 Solutions (in progress)
- May 2013 Solutions (in progress)
- May 2014 Solutions (in progress)
- All 2014 Slides in one pdf (in roughly the right order)
- Short Question Answers
BIO2 Edit on GitHub
CAV Edit on GitHub
CG - Computer Graphics | drps, info Edit on GitHub
- Build a ray tracer from scratch (scratchapixel.com)
CN Edit on GitHub
COPT Edit on GitHub
- 2014 exam
- 2012 exam
- 2011 exam
- Stan’s scanned notes. And some revision notes (mostly the lectures slides in word form).
- Outline of lecture slides (topics)
- Denali. OSE. Learning to schedule. LRPD.
CS - Computer Security Edit on GitHub
- August 2010 answers
- May 2010 answers
- This explains BLP and AB much better than the slides: i93lbacm(org).pdf
- Some really great explanations of concepts in the course (Crypto, PK, RSA, Diffie-Hellman): http://www.youtube.com/user/ArtOfTheProblem
- Revision notes by Ben Shaw
- Running 2nd CW locally (on Ubuntu):
- Copy folder
/afs/inf.ed.ac.uk/group/teaching/compsec/cw2/
- Follow instruction at https://help.ubuntu.com/community/KVM/Installation
- Modify your
qemu.env
, the location to QEMU should be something like/usr/bin/kvm
- Install vinagre:
sudo apt install vinagre
- Copy folder
- Iptables essentials
- Wireshark:
- The “Packet List” pane in Wireshark (see Table 3.15. for what the lines on the side mean)
- Convert IP addresses into hostnames (Edit - Preferences - Name Resolution)
- FTP:
- A walkthrough through FTP passive mode, by manually reading every single packet
- List of raw FTP commands
- Difference between FTP active and passive mode
- tip: read it carefully, not just the bullet points. the picture is useful too.
- tip: for some reason, in active mode, the source data port is not 20 (in the coursework)
- How to test FTP active mode:
- Run
ftp alice
- Type
alice
as username, press enter, typealice
as password. - Type
get meow.jpg
- meow.jpg should be downloaded & it should say “please consider using passive mode”
- Run
- Software Security
- return-to-libc.pdf
- Return-to-libc tutorial
- buffer overflow attacks (computerphile)
CT - Compiling Techniques piazza | drps, info Edit on GitHub
- GitLab
- Understanding the Stack
- Your compiler is allowed to take up to ten seconds to finish.
- Wikipedia: Operator-precedence parser
- Grammar stuff:
- MIPS (lots of useful links here!)
Calculus and its Applications drps Edit on GitHub
- Fox’s notes (src)
- Cheat sheet PDFs of the definitions and theorems to save you time in the exam (no need to search through the textbook)
- SympyGamma - a tool similar to WolframAlpha, but also offering explanation for derivations.
- Answers for Essential calculus
- Riemann sums online calculator
- Lots of formulae
- Amazing mindmap
- Tests of Convergence: cheat sheet, flow chart
- Not All Things CAP - better cap cheat sheet
Cognitive Science | drps, info Edit on GitHub
- Book about neural networks - recommended by the lecturer
- 3Blue1Brown - really clear videos explaining neural networks and backprop
- Visualising Clustering - video from Google
- Deduction vs Induction
- Word learning models - concept map with key ideas
- Amazing flash cards - key definitions
- Full course notes and posters - 2018
Priority reading list
All of the readings are examinable, but if you want to prioritise, here is the recommended order:
- Chapters 1, 2, 3, 4 and 7 of Pinker’s “Words and Rules”, minus places where there’s no relevance to lecture content
- Chapter 4 of Harley’s “Psychology of Language”
- Any academic paper covering something you’re not sure you fully understand. For example, if you’re not 100% clear on perceptrons, have a look at the Gurney reading
DAPA Edit on GitHub
The course textbook (“Introduction to Parallel Computing”) is available online on Safari, for free. You have to log in with your university credentials.
DME Edit on GitHub
The discussion of papers on http://nb.mit.edu
2015 Paper Discussions Here
DS Edit on GitHub
May 2014, May 2013, May 2012 April 2011
Aggregated solutions to questions from 2009-2012 combined here
We’ve started some notes on the course content, they can be found here.
Tree mapping to the slides here.
E-learning Edit on GitHub
- Reading List
- Linear Algebra by Prof. Gilbert Strang - MIT 18.06
- Russel and Norvig’s online AI Class from Stanford - https://www.ai-class.com/
- MIT OpenCourseware Mathematics - http://ocw.mit.edu/courses/mathematics/
- Accessible videos about cryptography - http://www.youtube.com/playlist?list=PLB4D701646DAF0817
FNLP - Foundations of Natural Language Processing | drps, info, papers April/May exam Edit on GitHub
- (2019-20) Bora’s Notes
- See shared drive for past papers and solutions. Addtional resources on discourse coherence:
- http://homepages.inf.ed.ac.uk/alex/papers/iwcs4.pdf
- https://www3.cs.stonybrook.edu/~ychoi/cse507/slides/06-discourse.pdf
- All slides (2014) in one pdf
- 14/15 slides rough summary: here (Directly exported from org-mode, so algorithms and formulas are largely missing)
IAML - Introductory Applied Machine Learning Edit on GitHub
- See shared drive for some unofficial solutions.
- An amazing online course at Caltech by Yaser Abu-Mostafa - link
- A very detailed yet simple visual explanation of PCA, applied to a real-world scenario (on
stats.stackexchange
) - Clearer (than our slides) explanation of SVMs
- Visual explanations of ML and Linear Algebra concepts
- A good explanation of Information Gain and Entropy
- Examinable topics summary - Having analysed IAML exam papers from 2012 to date, here is the summary of topic covered.
- To help with the understanding of topics that come across more often than others, score = frequency of occurance, expressed as % over 12
- Student notes:
IAR Edit on GitHub
May 2013, May 2012, May 2011, May 2010
IMC - Introduction to Modern Cryptography | drps, info, papers April/May exam Edit on GitHub
INF2-FDS - Foundations of Data Science | drps, info Edit on GitHub
(New course: Details are sparse. Please contribute!)
50% coursework, 50% exam.
- General Reading
- Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig
- Computational and Inferential Thinking by Ani Adhikari and John DeNero
- An Introduction to Data Ethics by Shannon Vallor et al.
- Modern Mathematical Statistics with Applications by Devore & Berk
- Basic Tutorials
- Cheatsheets
- Course Notes
- NotAllThingsFDS_w1w9 (2021-2022, Semester 1)
INF2-IADS - Intro to Algorithms and Data Structures | drps, info, papers April/May exam Edit on GitHub
- Introduction to ADS (gitbook, non inf)
- Amazing interactive examples from from USFCA
- Wikibook covering most of the stuff we are doing
Karatsuba Multiplication in 13 minutes (video, watchable at 1.25x)- Unofficial Past Paper Solutions
- Course Notes INF2B - Algorithms (2018)
- Community Solutions to CLRS (4th ed.)
- For all things iads: Abdul Bari
INF2B - Learning Edit on GitHub
75% closed book exam, 25% across two courseworks. Pass: 40% overall.
- What is a neural network? (3blue1brown)
- Using neural nets to recognise handwritten digits
- Revision Formulae for Learning Thread (pdf) (LaTex)
- Learning notes (2017-18) by Edwin Onuonga (html, pdf)
Missing: perceptrons, single-layer and double-layer neural networks sections - Pearson Correlation Coefficient
coursework
- MATLAB for use at home (free)
- Installing GNU Octave on macOS (much lighter than MATLAB)
- NumPy: quickstart tutorial
- Example Lab using numpy, scipy, pandas, and matplotlib: Similarity and recommender systems
- Why can’t I paste using Ctrl+V in MatLab??? - The default settings are odd. Go to Preferences -> MATLAB -> Keyboard -> Shortcuts, change Emacs Default Set to Windows Default Set.
- Run MATLAB scripts from the command line
- Inf2B File Checker
- Intuition of the relation between PCA and eigenvectors (useful for 2019 coursework)
- Relevant bits from Vision processing at Stanford:
- Interactive veronoi knn explorer
- Interactive SVM examples, similar to discriminant functions
- Linear classifiers the content seems to better explain the lectures on NN and discriminant functions
IVR - Introduction to Vision and Robotics Edit on GitHub
- Official exam papers and solutions
- Collaborative answers to short questions
- Sample solution for 2011 August - link
- Sample vision MATLAB code from previous years
Jobs Edit on GitHub
- Getting a Gig: A Guide
- CourtneyThurston has some interesting articles:
- Cracking the Facebook Coding Interview (copy available on Drive if original deleted)
- Google Tech Dev Guide (there is a section on interview questions)
MLP - Machine Learning Practical | drps, info Edit on GitHub
MT Edit on GitHub
NIP Edit on GitHub
NLU Edit on GitHub
OS - Operating Systems | drps, info, papers April/May exam Edit on GitHub
- Useful short OS tutorial - here
- Cambridge OS course notes - here
- Revision Notes by Ben Shaw
Buddy system
Object Oriented Programming | drps, info Edit on GitHub
- Online book
- Enable auto complete on Eclipse
- Past papers, and their additional files
- Some past paper answers
- Automarker service - use this to mark your past papers
- Lambda functions tutorial
PA Edit on GitHub
PM Edit on GitHub
PMR | drps, info, papers This course is misplaced. It should be on the year 4 page. April/May exam Edit on GitHub
Exam + Solutions:
PPLS | drps, info, papers April/May exam Edit on GitHub
Proofs and Problem Solving Edit on GitHub
- Printable notes with all of the course material
- Twelvefold way for combinatorics problems.
- Learning how to use sagemath may come in handy for checking your answers in later parts of the course (especially for modular arithmetic and permutations)
- The course will follow the book A Concise Introduction to Pure Mathematics, by Martin Liebeck, 4th Ed. 015, CRC Press, £25.99
- To pass the course you must achieve an average of more than 40% AND at least 40% in the examination.
- Cheatsheet with all the notations, definitions, theorems, propositions, and examples from the textbook (condensed into 38 pages) grouped by sections: pdf, source
RC Edit on GitHub
- Some notes on content <– formulas, algorithms, some proofs
- May 2013
RL | drps, info, papers April/May exam Edit on GitHub
RL Algorithm Map - Which algorithm should you choose? Photo, DrawIO
Exam papers:
Note: There are more papers, directly access them from Better Informatics Google Drive.
SAPM Edit on GitHub
SDP - System Design Project | drps, info Edit on GitHub
- Project has changed as of 2017/18:
- no competitiveness
- no robots playing football, instead designing an assistive robotic device
- more details TBC
Security Engineering | drps, info, papers April/May exam Edit on GitHub
New course in 2022
Self Care Edit on GitHub
- Mental Health
- EUSA Advice Place - Ask about anything here
- Nightline - Confidential dial in service, 8pm-8am every term night (call, IM)
- Edinburgh Crisis Centre - For mental health emergencies
- Edinburgh Samaritans - A hotline service if you need someone to talk to
- NHS information on suicide - Information about suicide
- Your GP is a great source of information, feel free to contact them.
- Physical Health
- Gyms
- Pleasance Sports Centre - 6am to 10pm weekdays, 9am to 8pm weekends
- PureGym Quartermile - 24 hours
- Beginner’s Fitness
- Beginner’s Nutrition / Weight Loss
- /r/loseit wiki - A good intro to safe, healthy weight loss
- /r/gainit wiki - A good intro to gaining muscle mass
- MyFitnessPal - Easily track calories, macros, and exercise
- 20 tips for eating well cheaply from the NHS
- Gyms
- Student life tips
- /r/malefashionadvice and /r/femalefashionadvice - Look your best to feel your best
- BudgetBytes - Ditch Deliveroo, save money by cooking yourself
- The CompSoc Cookbook - Student curated recipes to cook yourself
- 18-25 Railcard - Save 1/3 fare on train tickets for £30/yr
- Unidays - Student discounts on just about everything
TTDS - Text Technologies in Data Science | drps, info, papers April/May exam Edit on GitHub
Called Text Technologies (TTS) until 2015
There are some “hidden” formulas about LSH error probabilities in the lectures.
An overall studyguide for TTS 2013-2014: all lecture slides summarized added things from notabene, said in lecture, and just figured out by Sophia.
Topic history
*
means that this has ALL THREE OPTIONAL QUESTIONS
Exam | Question 1 | Question 2 | Question 3 |
---|---|---|---|
2019 May | Knowledge | Retrieval Models & Web | IR Evaluation |
2018 May* | Knowledge | Retrieval Models | IR Evaluation & PageRank |
2017 December* | Knowledge | Retrieval Models | IR Evaluation |
2015 May* | Retrieval Models | Evaluation | PageRank & HITS |
Technical Edit on GitHub
- Set your initial DICE password
- DICE Troubleshooting - audio not working? window manager crashing?
- Web printing interfaces: EveryonePrint, WebPrint, ManagePrint
- How to print:
- Colour:
lpr -o sides=two-sided-long-edge -P cloudc0 FILENAME.pdf
- Mono:
lpr -o sides=two-sided-long-edge -P cloudm0 FILENAME.pdf
- Colour:
- Remote access to DICE machines
- Access DICE files in a web browser (iFile)
- Accessing DICE remotely (RDP, remote desktop)
- Virtual DICE (VM) : Supports VirtualBox, VMWare support under development
- University VPN service
- DICE contact form (computing support)
- Information Services contact form (unidesk)
- GPU on DICE (for Tensorflow GPU, etc) - read GPGPU Computing
export PATH=/opt/cuda-10.0.130/bin:$PATH export LD_LIBRARY_PATH=/opt/cuda-10.0.130/lib64:/opt/cuDNN-7.6.0.64_9.2/lib64:$LD_LIBRARY_PATH
-
Setting up Thunderbird 78+ for Office 365 Mail + Calendar
The University no longer officially supports Thunderbird (due to so many technical problems students faced). However, we (betterinformatics) believe quite a large number of Informatics students use Thunderbird, and therefore provide active and up-to-date instructions here. TB78 is a requirement, as the OAuth2 authentication method was introduced with this update.
First we’ll set up the mail account.
- Add a new Thunderbird mail account. Enter the name and email (which can be either f.last@sms.ed.ac.uk or sUUN@ed.ac.uk, or any of the other countless aliases we have)
- Click “Configure Manually”, and enter:
- Incoming: IMAP, outlook.office365.com, port 993 SSL/TLS, and your sUUN@ed.ac.uk email as the username (overwrite if necessary)
- Outgoing: SMTP, outlook.office365.com, port 587 STARTLS, and your sUUN@ed.ac.uk email as the username (also overwrite if necessary)
- Click “Advanced Config”, confirm the warning, and sign in on the Office login popup. If it doesn’t appear, don’t worry, it’ll appear as you progress through the next steps.
- Go to TB Account Settings, and under Server Settings for the new account, set the Authentication Method to OAuth2.
- In addition, under the Outgoing Server settings (bottom of account list), edit the Office365 server and set the Authentication Method to OAuth2 here too. Make sure the username here is your sUUN@ed.ac.uk (regardless of which format you chose first)
- At this point, your mail should start loading. If some folders are not visible, you may have to manually subscribe to them (search Google)
Now onto setting up Calendar integration, so you can respond to meeting invitations using the TB interface.
- Install the “TbSync” add-on, and the “Provider for Exchange ActiveSync” add-on.
- From the footer of the mail tab, click on the TbSync status on the far bottom right. Then click “Account Actions” -> “Add new” -> “Exchange ActiveSync”.
- Choose Office365, and fill the Account name with what you chose in step 1 of the email phase, and fill the Username with sUUN@ed.ac.uk.
- Click “Add Account” and sign in on the Office login popup.
- Tick “Enable and synchronise this account” to enable, then tick “Calendar” and “Contacts” (optional) and hit “Synchronise Now”.
- Once they are synchronised, set the sync interval to 15 minutes.
- All done :)