Awesome
Awesome Thesis
A curated list of practical tips and tricks to help you achieve an awesome CS master thesis.
☆=(ゝ・ω・)/
<!--|ω・)Pssst. Wanna more tips for your thesis? [pretty-write](https://github.com/phretor/pretty-write). almost there with pr and other outline formats let's wait for that :)-->Contents
<!-- toc -->- Workflows
- Artifacts
- Experiments
- Writing
- Defending your thesis
- Mental health
- Women in STEM
- Tools
- Yet unsorted but awesome
- Acknowledgements
- Contribute
Workflows
Workflows and tips to help you manage your thesis like a pro.
- Applying Agile Methodologies to Design and Programming - you can apply agile methodologies to many things ;)
Research Ideas
Meetings
<!-- add something on how to effectively communicate what you are doing -->Keep notes during meetings, and keep files organized and shareable.
Searching
Searching for information can be a daunting task.
Searching techniques
- google dorks - dorking, is a powerful technique to query search engines
- +Fravia's search lores - information is outdated, but still a valuable resource for searchers to understand the web
- Feed the search engines with synonyms - "broaden your search results by using synonyms for words you are unsure about"
- The weird ways of searching and the weird findings - explore the web differently
Searching through academic material
- Google scholar - your first place to go when looking for papers and patents
Stand on the shoulders of giants
- How to read a paper - powerful tips to understand papers, and save time.
- Efficient reading of papers in science and technology
Tools
- Concept, mind, and argument mapping - different kinds of mind-mapping explained
Artifacts
With great artifacts comes a great thesis, put a readme in every directory, and keep it tidy and understandable to others!
Code
Making experiments easily replayable might be of help to your advisors to crack problems with you, keep code and docs tidy.
- coding conventions - keep your code consistent and readable
- documentation - document where you can :)
Searching for code
- advanced searching on github - powerful search tools
- http://www.pudn.com - huge database of code (pay or contribute to download ...but just knowing the file names inside a package might help searching ;)
Data
Designing a dataset
<!--- [Design ML datasets](https://www.datasciencelearner.com/design-best-machine-learning-datasets/) # vet this resource -->Obtainig a dataset
- Scraping techniques
- Beginner guide with Beautiful SOUP - Beautiful Soup is a python library for pulling data out of HTML and XML files
- Selenium with Python - Selenium with Python libary allows your script to interact with the website
Experiments
Be proactive, carefully pick your next steps, don't be afraid of proposing and defending different solutions.
Designing experiments
<!-- divide et impera -->Running experiments
- AWS - you can use an amazon micro instance for free for 1 year ;)
Benchmarking
Running benchmarks is a delicate part of your thesis, these resources will help you
- Benchmarking Crimes - This paper explores oversights in benchmarking
Writing
Scientific writing
- Harvard College Writing Center Writing Resources
- PrettyWrite - Practical Thesis-writing Guidelines for Master Students
- How to write a research paper - these awesome tips also apply to your thesis
Writer's block
Spell-check
Latex
Graphics
Use high resolution scalar images (PNG), or vectorial formats (SVG/PDF) for images included in your thesis.
- Tikz
- draw.io - When Tikz doesn't work out, draw.io might save you
- The Noun Project-
Icons for everything
with permissive licenses
Books
- BUGS in Writing - debug your writing skills
Defending your thesis
Slide-deck
Presentation
Almost there! がんばって!
Mental health
Student mental health resources.
<!-- need better list of references -->- Awesome mental health - curated list of resources
Women in STEM
<!-- links inactive, try finding on web archive... --> <!-- [Women and Computer Science](http://people.mills.edu/spertus/Gender/gender.html) --> <!-- [](http://www.cs.indiana.edu/docproject/handbook/section1.9.0.3.html) -->- BU CS resources - Women in Computer Science - useful resources for women in STEM.
Tools
Workflows
- Trello - A web-based kanban-like project management application.
File Versioning
- The Git Book - the git book
- Github Cheat Sheet - A list of cool features of Git and GitHub
Artifacts
File Sharing
- Dropbox - Dropbox is a modern workspace designed to reduce busywork – so you can focus on the things that matter.
- Google Drive - Cloud Storage & File Backup for Photos, Docs & More
- Nextcloud - Open source cloud and collaboration platform based on ownCloud
- ownCloud - ownCloud is the largest Open Source Content Collaboration Platform in the world
Backups
[TBD]
Experiments
Remote Control
Check out your long running experiments
- Chrome Remote Desktop - a nice remote desktop software tool with multiplatform support (09/2018, Running on Ubuntu require some fiddling)
Writing
Bibliography Management
- Zotero - Your personal research assistant
- Mendeley - Easy referencing
- JabRef - JabRef is an open source bibliography reference manager
- Papis - A Python based command line manager
Searching and indexing code
- Elixir - a lightweight source referencer for C/C++ projects
- OpenGrok - source code/cross referencing engine
- silversearcher-ag - ditch your grep, silversearcher is a blazing fast code searching tool
- cscope - tool for browsing C source code
- ctags - generate
tag files
for different programming languages
Yet unsorted but awesome
Acknowledgements
The content of this document is inspired by awesome people, go check them out.
Contribute
Contributions welcome! Read the contribution guidelines first.