ADS · AR · CARD · CCS · COMN · CS · CT · FNLP · IAML · IDB · ILP · ITCS · IVR · OS · PI · SDP · ST
General Edit on GitHub
ADS - Algorithms and Data Structures | drps, info, papers 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
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
CS - Computer Security | drps, info, papers April/May exam 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
aliceas username, press enter, typealiceas 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!)
EPL - Elements of Programming Languages Edit on GitHub
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)
ITCS - Introduction to Theoretical Computer Science | drps, info, papers April/May 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
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
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