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_RvV3KBbk1bKjsDvYUyUitER4jVbuaenUFx8/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 autoconverts it for you)
Statistics
As of 20200204 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  ug1students
 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  mscstudents
 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  ug4students
 Useful YouTube channel for MLPR / PMR / IT / IAML / DME
Honours Project  drps, info 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{chapterintroduction}
which will expand toChapter \ref{chapterintroduction}
 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 Templatebased 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 twopart 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 twopart MInf, override the submityear with the years that you did the project in infthesis.cls like so
\gdef\@submityear{2020  2022}
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.)
ADS  Algorithms and Data Structures  drps, info, papers December exam Edit on GitHub
 See shared drive for some unofficial solutions.
 An unofficial set of programming assignments based on the ADS material  website
 Sorting algorithms 1  interactive
 Sorting algorithms 2  website
 Counting sort  interactive
 A video clearly demonstrating the Counting Sort (as it’s not in the above link, and Mary’s notes don’t make it easy)  video
 Prim’s Algorithm  interactive
 Kruskal’s Algorithm  interactive
 Longest Common Subsequence  animation
 Network Flow  interactive
 Graham’s Scan  interactive
 Dynamic Programming  Tushar Roy explains a few examples really well on YouTube
AFDS Edit on GitHub
AR  Automated Reasoning  drps, info, papers April/May exam 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
CARD  Computer Architecture and Design  drps, info, papers December exam Edit on GitHub
 Past papers and solutions (see ‘unorganised’ folder)
 Stan’s summary  link
 All lecture slides in one pdf
CAV Edit on GitHub
CCS  Computational Cognitive Science  drps, info, papers April/May exam Edit on GitHub
CN Edit on GitHub
COMN  Computer Communications and Networks  drps, info Edit on GitHub
 See shared drive for some unofficial solutions.
 Textbook in shared drive here
 Video explaining CRC calculation  link
 Wiki explaining CRC calculation  link
 Revision notes by Ben Shaw
 https://web.archive.org/web/20081209125106/http://www.ee.ryerson.ca/~courses/cn8800/solutions/Ch7.pdf
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.
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 20092012 combined here
We’ve started some notes on the course content, they can be found here.
Tree mapping to the slides here.
Discrete Math and Probability drps, drive  drps, info, papers December exam Edit on GitHub
DMMR and PwA has been merged to form this new course, DMP is now solely based on coursework but you can find information about past papers here.
Online (flippedclassroom) version of this course. 10x better than the lectures.
Exam type: 100% Coursework.
Discrete Mathematics:
 Some inf1cl links may be useful.
 Companion website for textbook
 List of topics per exam
 Trev tutor on DMMR and part 2  similar to Khan academy
 Course notes by Edwin Onuonga (201718)
 Strategic Summary Notes by Maksymilian Mozolewski (201920)
 NotAllThingsDMP_full and NotAllThingsDMP_block2_each_week, a summary notes of DMP 2021 by Shuyuan Zhang (20212022)
 Videos
 Surjective and Injective functions
 Proof by Induction
 Strong Induction
 RSA Encryption Example  two parts: computing an example, generating the keys
 Introduction to Combinations, Introduction to Permutations
 Permutations: accounting for repetitions
 Relations and the different kinds of relations… and equivalence relations. This guy is great, isn’t he?
 Proofs:
 Worksheet: Proofs involving functions  with sample proof + proving injectivity/surjectivity
 by Induction: solutions to an MEI question (todo)
 2016 worksheet page
 Congrugence modulo (Khan Academy)
Order of Complexity[Not examinable 2018] A great tutorial on Baye’s theorem — read from Anatomy of a Test
 The order of mixed quantifiers  Is it equivalent if you swap ∀s and ∃s?
Probablity
 better tutorial/assignment list with some assignment solutions CORRECTED
 super handy expectations sheet
 Summary from the course textbook  The last four pages before the index in the Ninth Edition
 Slader Textbook Solutions  9th Edition
 Cheat Sheet (source)
 Another cheat sheet with guides on distributions
 Joint probability distributions
 Conditional Probability Visualisation
 A visual introduction to probability and statistics (Seeing Theory)
 Coin Problem  3 heads occurring before 2 tails (continuous toss)
 Course Summary
 20172018 notes by Edwin Onuonga
 Videos
 Binomial probability (Khan Academy)
 Intro to Poisson distribution (jbstatistics)
 Intro to probability (followed by conditional probability)  playlist (Trefor Bazett)  this video to end of playlist
 Bayes Theorem (Michel van Biezen)
 Calculus: Iterated integrals (KristaKingMath)
 Calculators
Elearning 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.aiclass.com/
 MIT OpenCourseware Mathematics  http://ocw.mit.edu/courses/mathematics/
 Accessible videos about cryptography  http://www.youtube.com/playlist?list=PLB4D701646DAF0817
EPL  Elements of Programming Languages  drps, info, papers April/May exam Edit on GitHub
EXC  Extreme Computing  drps, info, papers December exam Edit on GitHub
 All Lecture Slides in one PDF (2012/2013), (2014/2015)
 Exam/Solutions
 Good page on trap and emulate » Cached Copy with Comments Enabled
 Approximate Frequency Counts over Data Streams: paper, slides
 Revision notes  Started by Stefan Adamov
 Revision Notes  Mark Nemec on Github
 Docker + Pig setup, this allows to easily execute examples from Tutorials point
 Additional Resources:
 MIT’s Distributed Systems Course  Has good notes & labs on GFS, MapReduce, etc.
HCI  Human Computer Interaction  drps, info Edit on GitHub
IAML  Introductory Applied Machine Learning Edit on GitHub
 See shared drive for some unofficial solutions.
 An amazing online course at Caltech by Yaser AbuMostafa  link
 A very detailed yet simple visual explanation of PCA, applied to a realworld 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
IDB  Introduction to Databases  drps, info, papers December exam Edit on GitHub
Previously named Database Systems (DBS)
 Questions and answers from the DBS textbook  link
 Normalization tool
 Revision notes by Ben Shaw
 Functional dependency closure / key finder / minimal cover / 3NF & BCNF checker tool (source)
 Relational algebra calculator / engine, example schema definition for tutorial 1
 Exam tips:
 Don’t forget semicolons, they will knock marks off for this!
 They want to see efficient solutions!
 Derivation using the Armstrong’s axioms: all steps and axioms in your derivation should be clearly mentioned
 It’s also worth understanding that there could be multiple correct proofs for a given implication so detailed explanations would make it easier for marker
 Relational algebra questions: consider how your answer behaves when certain relations are empty (tutorial 1, question 3)
 Relational algebra FAQ:
 Operations only return unique tuples. That means if you project on a single column, each row will be unique. This is because (definition) “Relations (tables) are sets of records of the same length”
 easily consumable stuff by b0rk:
 SQL to XXX FAQ (for those with experience in SQL/NoSQL)
 Relational algebra:
 Unknowns /
NULL
Unknown
is represented asNULL
in SQL,unknown = unknown
is reallyNULL = NULL
, all comparisons where at least one of the arguments is
NULL
, evaluates to unknown (which, again, isNULL
).
ILP  Informatics Large Practical learn  drps, info Edit on GitHub
 Mapbox:
 Show a user’s location (tutorial), Showing device location (location component docs)
 User management tutorial
 Bora M. Alper’s ILP Visualiser
INF1A  Functional Programming  drps, info Edit on GitHub
 Tip by a tutor for the final exam: the exam is open book, so taking in a copy of the previous year’s exam paper and solutions may be beneficial
 Past papers
 Exam allocations
 Tree traversal algorithms (view in desktop mode!)
 Learn You A Haskell (official online book, downloadable for exam)
 Basic/library function list, Handy basic function cheat sheet
 Troubleshooting for Haskell (including Haskellmode on Emacs)
 Functional Programming blog/tutorials by Kyle Cotton
 Articles on Recursion and List Comprehension by Eric Janto
INF1A  Logic  drps, info Edit on GitHub
 Solution to the original 4d on the take home exam
 The venn diagram generator (based on the official version)
 Definitions (also available on Quizlet)
 CNF cheat sheet
 Propositional formula to CNF converter
 boolexman (boolean expression manipulator)
 Visualizing satisfiability, validity & entailment
 Soundness and Completeness
 Finite State Machines
 Regular Expressions
INF2FDS  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 (20212022, Semester 1)
INF2IADS  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 (201718) by Edwin Onuonga (html, pdf)
Missing: perceptrons, singlelayer and doublelayer 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
INF2C  Computer Systems  drps, info, papers December exam Edit on GitHub
 Binary number system
 MIPS  visit this page for lots of resources on MIPS
 Tools:
 Datapath:
 Logic Design:
 Caches:
ITCS  Introduction to Theoretical Computer Science  drps, info, papers December exam Edit on GitHub
 ITCS concepts (from Julian’s guide!)  Here
 Tutorial notes  Here (Shared GDrive) (original page: link)
 Some useful definitions and proofs  link
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
Introduction to Linear Algebra drps Edit on GitHub
the maths exams are open book, so take in past paper solutions (with an index) as they reuse questions a lot. they might not necessarily be the same, but they’ll likely be close enough to give you a hand
 Poole textbook: The Nicholson textbook is fairly hard to learn from, so it may be worth finding a copy of David Poole’s Linear Algebra: A Modern Introduction, as it is much better at explaining concepts.
 No bullshit concept maps good for seeing the big picture in the course
 Linear algebra explained in 4 pages good resource to give you general idea. Might be worthwhile to go through it before the start of the course.
 Explanatory videos from Mathapptician
 Khan Academy videos
 Essence of Linear Algebra (videos) by 3blue1brown  covers a large part of the course and gives greatly intuitive ways of understanding what the formulae really represent
 Answers for Poole (3rd edition, 4th edition)
 Symbolab has extremely good support for linear algebra operations (and is great with other areas of maths too)
 Cheat sheet PDFs of the definitions and theorems to save you time in the exam (no need to search through the textbook)
 Not All Things ILA  better ila cheat sheet
 The Exam  3 hours  Open Book
Section A: 40%  6 questions  conceptual questions, a bit like Tophat
Section B: 60%  4 questions (pick 3)  longer, conceptual questions
You may bring: the Poole textbook
 any nongraphical calculator
 any notes (written / printed notes, nothing bound)
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
MLPR  drps, info, papers December exam Edit on GitHub
 Course resources
 Exams
MT Edit on GitHub
NIP Edit on GitHub
NLU Edit on GitHub
PA Edit on GitHub
PI  Professional Issues  drps, info Edit on GitHub
PM Edit on GitHub
RC Edit on GitHub
 Some notes on content <– formulas, algorithms, some proofs
 May 2013
SAPM Edit on GitHub
SP  Secure Programming  drps, info, papers December exam Edit on GitHub
 Made up mock questions for lack of past papers in 2014 here
 Review questions from lectures
 Format string exploits/attack owasp, introduction
SP  Speech Processing Edit on GitHub
Answers to multiple choice for past papers here.
ST  Software Testing  drps, info Edit on GitHub
Self Care Edit on GitHub
 Mental Health
 EUSA Advice Place  Ask about anything here
 Nightline  Confidential dial in service, 8pm8am 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
 1825 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 20132014: 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=twosidedlongedge P cloudc0 FILENAME.pdf
 Mono:
lpr o sides=twosidedlongedge 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/cuda10.0.130/bin:$PATH export LD_LIBRARY_PATH=/opt/cuda10.0.130/lib64:/opt/cuDNN7.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 uptodate 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” addon, and the “Provider for Exchange ActiveSync” addon.
 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 :)