diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000..1ca434b2 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,324 @@ +{ + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": false, + "contributors": [ + { + "login": "amilos", + "name": "Aleksandar Milosevic", + "avatar_url": "https://avatars3.githubusercontent.com/u/4828656?v=4", + "profile": "https://github.com/amilos", + "contributions": [ + "code", + "doc" + ] + }, + { + "login": "amenat", + "name": "Ankush Menat", + "avatar_url": "https://avatars2.githubusercontent.com/u/9079960?v=4", + "profile": "https://ankush.dev", + "contributions": [ + "doc", + "bug", + "a11y", + "question", + "review" + ] + }, + { + "login": "amorriscode", + "name": "Anthony Morris", + "avatar_url": "https://avatars2.githubusercontent.com/u/16005567?v=4", + "profile": "https://writewithwrabit.com", + "contributions": [ + "doc" + ] + }, + { + "login": "arjunmuralidharan", + "name": "Arjun Muralidharan", + "avatar_url": "https://avatars0.githubusercontent.com/u/49580702?v=4", + "profile": "https://github.com/arjunmuralidharan", + "contributions": [ + "doc", + "content" + ] + }, + { + "login": "BlairCurrey", + "name": "Blair Currey", + "avatar_url": "https://avatars2.githubusercontent.com/u/12960453?v=4", + "profile": "https://github.com/BlairCurrey", + "contributions": [ + "code", + "doc" + ] + }, + { + "login": "ChrisCastelo", + "name": "Chris Castelo", + "avatar_url": "https://avatars0.githubusercontent.com/u/49125861?v=4", + "profile": "https://github.com/ChrisCastelo", + "contributions": [ + "doc" + ] + }, + { + "login": "dannycallaghan", + "name": "Danny Callaghan", + "avatar_url": "https://avatars1.githubusercontent.com/u/724781?v=4", + "profile": "https://github.com/dannycallaghan", + "contributions": [ + "doc" + ] + }, + { + "login": "damog", + "name": "David Moreno", + "avatar_url": "https://avatars3.githubusercontent.com/u/1260?v=4", + "profile": "https://damog.net", + "contributions": [ + "doc" + ] + }, + { + "login": "dcabrejas", + "name": "Diego Cabrejas", + "avatar_url": "https://avatars3.githubusercontent.com/u/8201815?v=4", + "profile": "https://github.com/dcabrejas", + "contributions": [ + "doc" + ] + }, + { + "login": "felipebalbi", + "name": "Felipe Balbi", + "avatar_url": "https://avatars2.githubusercontent.com/u/45936891?v=4", + "profile": "https://github.com/felipebalbi", + "contributions": [ + "doc", + "content", + "review", + "a11y" + ] + }, + { + "login": "gsej", + "name": "gsej", + "avatar_url": "https://avatars1.githubusercontent.com/u/7272850?v=4", + "profile": "https://github.com/gsej", + "contributions": [ + "doc" + ] + }, + { + "login": "irfanullahjan", + "name": "Irfanullah Jan", + "avatar_url": "https://avatars0.githubusercontent.com/u/7108679?v=4", + "profile": "https://xplaind.com", + "contributions": [ + "doc" + ] + }, + { + "login": "kaemo", + "name": "Kajetan Maurycy Olszewski", + "avatar_url": "https://avatars2.githubusercontent.com/u/1733602?v=4", + "profile": "https://github.com/kaemo", + "contributions": [ + "doc" + ] + }, + { + "login": "zubmic", + "name": "Michał Żuber", + "avatar_url": "https://avatars1.githubusercontent.com/u/49207678?v=4", + "profile": "https://github.com/zubmic", + "contributions": [ + "doc" + ] + }, + { + "login": "ryanslevin", + "name": "Ryan Slevin", + "avatar_url": "https://avatars0.githubusercontent.com/u/41084841?v=4", + "profile": "http://ryanslevin.com", + "contributions": [ + "doc" + ] + }, + { + "login": "eicksl", + "name": "Spencer Eick", + "avatar_url": "https://avatars2.githubusercontent.com/u/29685894?v=4", + "profile": "https://github.com/eicksl", + "contributions": [ + "doc" + ] + }, + { + "login": "sglavoie", + "name": "Sébastien Lavoie", + "avatar_url": "https://avatars0.githubusercontent.com/u/32682903?v=4", + "profile": "https://www.sglavoie.com/", + "contributions": [ + "code", + "doc", + "maintenance", + "review", + "test" + ] + }, + { + "login": "Xuan-Lim", + "name": "Xuan Lim", + "avatar_url": "https://avatars0.githubusercontent.com/u/24488417?v=4", + "profile": "https://github.com/Xuan-Lim", + "contributions": [ + "doc" + ] + }, + { + "login": "gstarch", + "name": "Gerhard Lourens", + "avatar_url": "https://avatars2.githubusercontent.com/u/18475611?v=4", + "profile": "https://github.com/gstarch", + "contributions": [ + "doc", + "code" + ] + }, + { + "login": "ykahan", + "name": "Yehoshua Kahan", + "avatar_url": "https://avatars2.githubusercontent.com/u/15960877?v=4", + "profile": "https://github.com/ykahan", + "contributions": [ + "doc" + ] + }, + { + "login": "NagariaHussain", + "name": "Mohammad Hussain Nagaria", + "avatar_url": "https://avatars1.githubusercontent.com/u/34810212?v=4", + "profile": "https://github.com/NagariaHussain", + "contributions": [ + "doc" + ] + }, + { + "login": "Sukhjit-Mann", + "name": "Sukhjit Mann", + "avatar_url": "https://avatars0.githubusercontent.com/u/62451479?v=4", + "profile": "https://github.com/Sukhjit-Mann", + "contributions": [ + "content", + "bug" + ] + }, + { + "login": "aimschroeds", + "name": "Aimee", + "avatar_url": "https://avatars2.githubusercontent.com/u/25737865?v=4", + "profile": "https://github.com/aimschroeds", + "contributions": [ + "doc" + ] + }, + { + "login": "Arundel2017", + "name": "Arundel2017", + "avatar_url": "https://avatars2.githubusercontent.com/u/29566187?v=4", + "profile": "https://github.com/Arundel2017", + "contributions": [ + "content" + ] + }, + { + "login": "svarlamov", + "name": "Sasha Varlamov", + "avatar_url": "https://avatars0.githubusercontent.com/u/10859025?v=4", + "profile": "http://www.sashavarlamov.com", + "contributions": [ + "doc" + ] + }, + { + "login": "ShenZhouHong", + "name": "Shen Zhou Hong", + "avatar_url": "https://avatars3.githubusercontent.com/u/6318461?v=4", + "profile": "http://shen.hong.io", + "contributions": [ + "blog", + "content", + "doc", + "tutorial" + ] + }, + { + "login": "AlexeiaW", + "name": "Alexeia", + "avatar_url": "https://avatars1.githubusercontent.com/u/8192490?v=4", + "profile": "http://alexeia.digital", + "contributions": [ + "doc" + ] + }, + { + "login": "jacktgriffiths", + "name": "Jack Griffiths", + "avatar_url": "https://avatars2.githubusercontent.com/u/22191055?v=4", + "profile": "https://github.com/jacktgriffiths", + "contributions": [ + "doc" + ] + }, + { + "login": "anujkarn002", + "name": "Anuj Karn", + "avatar_url": "https://avatars1.githubusercontent.com/u/36754338?v=4", + "profile": "https://anujkarn.com.np", + "contributions": [ + "doc" + ] + }, + { + "login": "baoc75", + "name": "Chi Bao", + "avatar_url": "https://avatars3.githubusercontent.com/u/8294297?v=4", + "profile": "https://lop67.tk", + "contributions": [ + "doc", + "bug" + ] + }, + { + "login": "osmancalisir", + "name": "Osman CALISIR", + "avatar_url": "https://avatars3.githubusercontent.com/u/28446823?v=4", + "profile": "http://calisir@harvardiana.com", + "contributions": [ + "bug" + ] + }, + { + "login": "toenobu", + "name": "toenobu", + "avatar_url": "https://avatars1.githubusercontent.com/u/1487300?v=4", + "profile": "https://b.toenobu.name/", + "contributions": [ + "financial" + ] + } + ], + "contributorsPerLine": 4, + "contributorsSortAlphabetically": true, + "projectName": "REPL", + "projectOwner": "world-class", + "repoType": "github", + "repoHost": "https://github.com", + "skipCi": true +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..3af032c7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.* export-ignore diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..32f56685 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team in the `#repl` channel in the :lock: [UoL Slack workspace](http://londoncs.slack.com/). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version] + +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..686d289f --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,194 @@ +# How to contribute to the REPL + +REPL is a volunteer effort and we warmly welcome first time Git/GitHub users! We encourage you to pitch in and join the `#repl` channel in the :lock: [UoL Slack workspace](http://londoncs.slack.com/)! + +**For a primer on how to use Git & GitHub**, please see the section [How to use Git/GitHub](#how-to-use-gitgithub) below. + +Thanks! :heart: :heart: :heart: + +The REPL Team + +--- + +## Table of contents + +- [How to contribute to the REPL](#how-to-contribute-to-the-repl) + - [Table of contents](#table-of-contents) + - [Before getting started](#before-getting-started) + - [How to use Git/GitHub](#how-to-use-gitgithub) + - [Cloning faster](#cloning-faster) + - [A tiny bit of background on the structure of this repo](#a-tiny-bit-of-background-on-the-structure-of-this-repo) + - [How to actually clone faster](#how-to-actually-clone-faster) + - [Preferred way](#preferred-way) + - [Other option](#other-option) + - [A few words](#a-few-words) + - [Code of Conduct](#code-of-conduct) + - [I don't want to read this whole thing I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question) + - [How Can I Contribute](#how-can-i-contribute) + - [Reporting Issues](#reporting-issues) + - [Before Submitting An Issue](#before-submitting-an-issue) + - [How Do I Submit A (Good) Issue](#how-do-i-submit-a-good-issue) + - [Suggesting Enhancements](#suggesting-enhancements) + - [Before Submitting An Enhancement Suggestion](#before-submitting-an-enhancement-suggestion) + - [How Do I Submit A (Good) Enhancement Suggestion?](#how-do-i-submit-a-good-enhancement-suggestion) + - [Your First Contribution](#your-first-contribution) + - [Pull Requests](#pull-requests) + - [Style Guides](#style-guides) + - [Git Commit Messages](#git-commit-messages) + - [Documentation Style Guide](#documentation-style-guide) + +## Before getting started + +### How to use Git/GitHub + +Here are a couple of places where you will find useful resources: + +- [Step-by-step guide to contributing on GitHub](https://www.dataschool.io/how-to-contribute-on-github/) +- https://github.com/world-class/REPL/blob/master/websites/README.md#git--github +- https://github.com/world-class/REPL/blob/master/youtube/README.md#git--github +- https://github.com/world-class/REPL/tree/master/online_courses/free#git--github + +### Cloning faster + +#### A tiny bit of background on the structure of this repo + +At the time of this writing, cloning this repository means having to download less than ~200 MB of data. This is getting _a bit_ heavy, but this should still be very much acceptable for most users given the following constraints: + +- Those who end up contributing probably want most of the files anyways. What's heavy are a bunch of students notes and UoL PDFs. Adding to this, all modules are compulsory up to level 6 (therefore they are eventually useful to all students who wish to complete this degree), so we'll have figured something out by then. Modules at level 6 do not even exist right now :wink:. +- We are trying to keep things simple so that students who are new to Git and GitHub can get some practice with forking, cloning, creating branches, submitting pull requests, etc. There are better ways to deal with large binary files, but still internet connections are fast enough these days to watch HD videos which will consume much more bandwidth than this repo, which is basically a one-time thing only. +- By storing everything in one single repo for now, students are able to `pull` changes on their machine very easily without having to worry about missing something. From time to time, a script is executed to compress PDF files (which are the main culprits for the growing size of the repo), so that helps in a reasonable way too. + +#### How to actually clone faster + +If you already know [how to clone from the command line](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository), you'll be somewhat familiar with the following alternative (if not, you are highly encouraged to learn how to proceed as knowing Git will prove very useful to any computer science student). Without going into much details, here's what you can do to reduce the size of your clone by keeping revisions to the latest version of each file only. Your best bet should be to use `git clone --depth 1` for now. + +##### Preferred way + +If you use HTTPS (simpler way): + + git clone -–depth 1 "https://github.com/world-class/REPL.git" + +If you use SSH (needs to be configured on GitHub): + + git clone -–depth 1 "git@github.com:world-class/REPL.git" + +##### Other option + +You can also make sure to keep references only to the `master` branch to save some additional space if more branches get created. Again, use either HTTPS or SSH depending on your setup. + +> **Note:** Because this repo usually contains only the `master` branch, this method won't get you far in this particular instance. + +With HTTPS: + + git clone https://github.com/world-class/REPL.git --branch master --single-branch REPL + +With SSH: + + git clone git@github.com:world-class/REPL.git --branch master --single-branch REPL + +### A few words + +:+1::tada: First off, thanks for taking the time to contribute! :tada::+1: + +The following is a set of guidelines for contributing to REPL, which is hosted in the [World Class +Organization](https://github.com/world-class) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. + +## Code of Conduct + +This project and everyone participating in it is governed by the [REPL Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project team in the `#repl` channel in the :lock: [UoL Slack workspace](http://londoncs.slack.com/). + +## I don't want to read this whole thing I just have a question!!! + +> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below. + +We have [an official FAQ](./FAQ/) with helpful advice if you have questions. + +If chat is more your speed, you can join the REPL Slack team: + +- Join the `#repl` channel in the :lock: [UoL Slack workspace](http://londoncs.slack.com/). +- Even though Slack is a chat service, sometimes it takes several hours for community members to respond — please be patient! +- Use the `#repl` channel for general questions or discussion about REPL. + +## How Can I Contribute + +### Reporting Issues + +This section guides you through submitting a bug/problem report for REPL. Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:. + +Before creating bug reports, please check [this list](#before-submitting-an-issue) as you might find out that you don't need to create one. When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-issue). + +> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one. + +#### Before Submitting An Issue + +- **Perform a [search](https://github.com/search?q=+is%3Aissue+user%3AREPL)** to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one. + +#### How Do I Submit A (Good) Issue + +Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information. + +Explain the problem and include additional details to help maintainers reproduce the problem: + +- **Use a clear and descriptive title** for the issue to identify the problem. +- **Describe the exact steps which reproduce the problem** in as many details as possible. When listing steps, **don't just say what you did, but explain how you did it**. For example, if you moved the cursor to the end of a line, explain if you used the mouse, or a keyboard shortcut and if so which one? +- **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples (_if applicable_). If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +- **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. +- **Explain which behavior you expected to see instead and why.** +- **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. + +### Suggesting Enhancements + +This section guides you through submitting an enhancement suggestion for REPL, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:. + +#### Before Submitting An Enhancement Suggestion + +- **Perform a [search](https://github.com/world-class/REPL/issues?q=is%3Aissue)** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. + +#### How Do I Submit A (Good) Enhancement Suggestion? + +Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information: + +- **Use a clear and descriptive title** for the issue to identify the suggestion. +- **Provide a step-by-step description of the suggested enhancement** in as many details as possible. +- **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets (_if applicable_) which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. +- **Include screenshots and animated GIFs** (_if applicable_) which help you demonstrate the steps or point out the part of REPL which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. +- **Explain why this enhancement would be useful** to most REPL users. +- **List some other sources where this enhancement exists** if it helps. + +### Your First Contribution + +Unsure where to begin contributing to REPL? You can start by looking through the issues with the label `good first issue`. + +### Pull Requests + +The process described here has several goals: + +- Maintain REPL's quality +- Fix problems that are important to users +- Engage the community in working toward the best possible REPL +- Enable a sustainable system for REPL's maintainers to review contributions + +Please follow these steps to have your contribution considered by the maintainers: + +1. Follow all instructions in [the template](PULL_REQUEST_TEMPLATE.md) +2. Follow the [style guides](#style-guides) + +While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted. + +## Style Guides + +### Git Commit Messages + +- Use the present tense ("Add feature" not "Added feature") +- Use the imperative mood ("Move cursor to..." not "Moves cursor to...") +- Limit the first line to 72 characters or less +- Reference issues and pull requests liberally after the first line + +### Documentation Style Guide + +- Use [Markdown](https://daringfireball.net/projects/markdown) and update table of contents when links are changed (if you remember and assuming you've read this far :wink:). + +--- + +_Those guidelines are adapted from [Ruby on Rails](https://github.com/rails/rails/blob/master/CONTRIBUTING.md) and [Atom](https://github.com/atom/atom/blob/master/CONTRIBUTING.md) projects._ diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..f210b422 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +open_collective: world-class \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..201128a0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,40 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG] " +labels: bug +assignees: "" +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] + +**Smartphone (please complete the following information):** + +- Device: [e.g. iPhone6] +- OS: [e.g. iOS8.1] +- Browser [e.g. stock browser, safari] +- Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..17cea35e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FEATURE REQUEST]" +labels: enhancement +assignees: "" +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..79ebfcf1 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,63 @@ +👋 Hello there! Welcome. Please follow the steps below to tell us about your contribution. + +1. Copy the correct template for your contribution from the below options. +2. Replace this text with the contents of the template +3. Fill in all sections of the template +4. Click "Create pull request" + +## Bug Template + +``` +### Identify the Bug + + +### Description of the Change + + +``` + +## Updating Documentation Template + +``` +### Description of the Change + + +``` + +## Changing Functionality Template + +``` + + +### Description of the Change + + + + + +### Alternate Designs + + + +### Possible Drawbacks + + + +``` diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..9fdc447b --- /dev/null +++ b/.gitignore @@ -0,0 +1,987 @@ +# Created by https://www.gitignore.io/api/vim,tags,emacs,pycharm,eclipse,netbeans,webstorm,jetbrains,visualstudio,visualstudiocode +# Edit at https://www.gitignore.io/?templates=vim,tags,emacs,pycharm,eclipse,netbeans,webstorm,jetbrains,visualstudio,visualstudiocode + +# Specify filepatterns you want git to ignore. + +# Created by https://www.gitignore.io/api/latex +# Edit at https://www.gitignore.io/?templates=latex + +### LaTeX ### +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Comment the next line if you want to keep your tikz graphics files +*.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind +*.ist + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices +*.xyc + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# KBibTeX +*~[0-9]* + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +### LaTeX Patch ### +# glossaries +*.glstex + +# End of https://www.gitignore.io/api/latex +.DS_Store + + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +### Eclipse Patch ### +# Eclipse Core +.project + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Annotation Processing +.apt_generated + +.sts4-cache/ + +### Emacs ### +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +# network security +/network-security.data + + +### JetBrains ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# JetBrains templates +**___jb_tmp___ + +### JetBrains Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/sonarlint + +### NetBeans ### +**/nbproject/private/ +**/nbproject/Makefile-*.mk +**/nbproject/Package-*.bash +build/ +nbbuild/ +nbdist/ +.nb-gradle/ + +### PyCharm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +# JetBrains templates + +### PyCharm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin + +### Tags ### +# Ignore tags created by etags, ctags, gtags (GNU global) and cscope +TAGS +.TAGS +!TAGS/ +tags +.tags +!tags/ +gtags.files +GTAGS +GRTAGS +GPATH +GSYMS +cscope.files +cscope.out +cscope.in.out +cscope.po.out + + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist +# Auto-generated tag files +# Persistent undo +[._]*.un~ + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +### WebStorm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +# JetBrains templates + +### WebStorm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- Backup*.rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# End of https://www.gitignore.io/api/vim,tags,emacs,pycharm,eclipse,netbeans,webstorm,jetbrains,visualstudio,visualstudiocode diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..c576b6eb --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sébastien Lavoie + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..8da4a404 --- /dev/null +++ b/README.md @@ -0,0 +1,525 @@ +REPL_logo + +[![first-timers-only](https://img.shields.io/badge/first--timers--only-friendly-blue.svg?style=flat-square)](https://www.firsttimersonly.com/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/world-class/REPL/compare) ![GitHub](https://img.shields.io/github/license/world-class/REPL?style=flat-square) + +A twist on the use of **REPL**, which stands for _read–eval–print +loop_ in computer programming. This repository aims to become a central +place to share resources that other learners have found useful, +especially in the context of studying a [BSc Computer Science offered by Goldsmiths, University of London](https://london.ac.uk/courses/computer-science) :school:. + +
+Good luck in your journey! + +

As the first cohorts of students enrolling in this ~100% online +programme, it is in our interest to cooperate in order to maximize our +chances of celebrating all together when we graduate.

+ +

Good luck to all and may this path fulfill you, knowing that you will +find support along the way!

+ +
+ +
+Note on copyrighted material + +

This is not a place where you'll find prohibited +content, such as leaked confidential information and copyrighted +material. Anything that could potentially fall under the regulations of the University of London will be removed if it appears by accident and you are welcome to +report it.

+ +
+ +--- + +
+ +# • [Frequently Asked Questions (FAQ)](faq/README.md) + +
+ +# Most used resources + +- [Notes from students, professors and more](https://github.com/world-class/notes) (opens directly on GitHub). +- [Modules](https://github.com/world-class/REPL/tree/master/modules) (opens directly on GitHub). +- [YouTube videos](youtube) +- [Websites to visit](websites) +- [Documents and webpages of interest](https://github.com/world-class/binary-assets/blob/master/uol_documents/README.md) (only from the University of London) + +# Other useful resources + +- [Applying to UoL: Guide and FAQs about the process](applying_to_uol) +- [Books recommended by students in this degree](books) +- [Discord server](https://discord.gg/zDpffJQ) - Especially great for prospective students +- [Free software](software) +- [Job opportunities](job_opportunities) +- [Kinks to be aware of in the different modules](kinks) +- Online courses: [free resources](online_courses/free), [paid resources](online_courses/paid) +- [Online study options](after_uol) (Master's, PhD, certificates, etc.) +- [Podcasts](podcasts) +- [Showcase of student-built applications](showcase) + - [Grades calculator](https://github.com/sglavoie/grades_calculator) +- [Slack resources](slack) (channels to join, important information available, help with using Slack, etc.) +- Subreddit: [r/UniversityOfLondonCS](https://www.reddit.com/r/UniversityOfLondonCS/) + - [Subreddit Articles](subreddit): A series of in-depth, informative articles by /u/Yangchenghu, originally posted on Reddit. (Opens directly on GitHub) +- [University of London documents](https://github.com/world-class/binary-assets/tree/master/uol_documents). - See them all at a glance. (Opens directly on GitHub.) + +
+ +## How to ask for help + +
+Reaching out to tutors and SRMs + +

Despite being ~100% remote, this degree is equipped with a team of tutors and SRMs (Student Relationship Managers) that can help you find what you need.

+ + + +
+ +
+General advice on how to ask and find answers + +

Succeeding in this degree has a lot to do with how resourceful you are. This page is meant to be a helpful guidance along the way, but developing a few key skills on your own will become an increasing necessity, including being able to research online, debugging code effectively and knowing how to ask questions.

+ +

To get started on that learning path, please refer to the following web pages:

+ + + +
+
+ +## Modules in the curriculum + +
+Level 4 (year 1+) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Module nameAbbreviationCodeWritten exam?Slack channel
Algorithms and Data Structures IADS1CM1035Yes#cm1035-algos-data-i
Computational Mathematics *CMCM1015Yes#cm1015-computational-math
Discrete MathematicsDMCM1020Yes#cm1020-discrete-math
Fundamentals of Computer ScienceFCSCM1025Yes#cm1025-fundamental-cs
How Computers WorkHCWCM1030Yes#cm1030-hcw / #rpl-google-it
Introduction to Programming IITP1CM1005No#cm1005-intro-prog-i
Introduction to Programming IIITP2CM1010No#cm1010-intro-prog-ii
Web DevelopmentWDCM1040No#cm1040-web-dev
+

* Not available for October 2019-March 2020

+ +
+ +
+Level 5 (year 2+) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Module nameAbbreviationCodeWritten exam?Slack channel
Agile Software ProjectsASPCM2020No#cm2020-agile-software-projects
Algorithms and Data Structures IIADS2CM2035Yes#cm2035-algos-data-ii
Computer SecurityCSCM2025Yes#cm2025-computer-security
Databases, Networks and the WebDNWCM2040Yes#cm2040-databases-networks-web
Graphics ProgrammingGPCM2030No#cm2030-graphics-programming
Object Oriented ProgrammingOOPCM2005No#cm2005-object-oriented-programming
Programming with DataPWDCM2015Yes#cm2015-programming-with-data
Software Design and DevelopmentSDDCM2010Yes#cm2010-software-design-development
+ +
+ +
+Level 6 (year 3+) + +

There is a total of 13 possible modules in Level 6. Out of these, +6 need to be taken along with a final project in order to +graduate. A student may either choose a specialism (see below) but may +also opt against a specialism to be able to study any 6 of the +following modules.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Module nameModule codeWritten exam?
3D Graphics and AnimationCM3045Yes
Advanced Web DevelopmentCM3035No
Artificial IntelligenceCM3020Yes
Data ScienceCM3005Yes
Databases and Advanced Data TechniquesCM3010Yes
Games DevelopmentCM3030Yes
Intelligent Signal ProcessingCM3065No
Interaction DesignCM3055Yes
Machine Learning and Neural NetworksCM3015No
Mobile DevelopmentCM3050No
Natural Language ProcessingCM3060Yes
Physical Computing and Internet of ThingsCM3040No
Virtual RealityCM3025Yes
+ +
+ +
+Specialisms + +

Each specialism contains five prescribed modules from the above 13. All +five must be completed along with one elective module from any other +specialism. The specialisms are:

+ + +
+ +
+Final project + +

A final project must also be completed to graduate. If a student is +opting for a specialism, they are strongly encouraged to select a +relevant topic for the final project.

+ + +
+
+ +## Calendar due dates and events + +
+See what's the current week + + + +
+ +
+Sync deadlines and events from Coursera + + + +
+
+ +## Stay in touch + +
+What's happening at Goldsmiths + + + +
+ +
+Contacting UoL + + + +
+ +
+Contacting other students in this programme + + +

More software options for video conferencing on this page.

+ +
+
+ +--- + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Aleksandar Milosevic

💻 📖

Ankush Menat

📖 🐛 ️️️️♿️ 💬 👀

Anthony Morris

📖

Arjun Muralidharan

📖 🖋

Blair Currey

💻 📖

Chris Castelo

📖

Danny Callaghan

📖

David Moreno

📖

Diego Cabrejas

📖

Felipe Balbi

📖 🖋 👀 ️️️️♿️

gsej

📖

Irfanullah Jan

📖

Kajetan Maurycy Olszewski

📖

Michał Żuber

📖

Ryan Slevin

📖

Spencer Eick

📖

Sébastien Lavoie

💻 📖 🚧 👀 ⚠️

Xuan Lim

📖

Gerhard Lourens

📖 💻

Yehoshua Kahan

📖

Mohammad Hussain Nagaria

📖

Sukhjit Mann

🖋 🐛

Aimee

📖

Arundel2017

🖋

Sasha Varlamov

📖

Shen Zhou Hong

📝 🖋 📖

Alexeia

📖

Jack Griffiths

📖

Anuj Karn

📖

Chi Bao

📖 🐛

Osman CALISIR

🐛

toenobu

💵
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. +Contributions of any kind welcome! + +--- + +[![ForTheBadge built-with-love](http://ForTheBadge.com/images/badges/built-with-love.svg)](https://github.com/world-class/REPL/) diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..213386ad --- /dev/null +++ b/_config.yml @@ -0,0 +1,3 @@ +theme: jekyll-theme-slate +plugins: + - jemoji diff --git a/after_uol/README.md b/after_uol/README.md new file mode 100644 index 00000000..3c252010 --- /dev/null +++ b/after_uol/README.md @@ -0,0 +1,59 @@ +[Go back to the main page](../README.md) + +# After UoL's Online Bachelor Degree + +# Table of contents + +- [After UoL's Online Bachelor Degree](#after-uols-online-bachelor-degree) +- [Table of contents](#table-of-contents) +- [Study: Online options](#study-online-options) + - [Doctor of Computer Science](#doctor-of-computer-science) + - [Master's Degree](#masters-degree) + - [Analytics](#analytics) + - [Cyber security](#cyber-security) + - [Data science](#data-science) + - [Machine learning](#machine-learning) + +# Study: Online options + +_Note: All degrees are in Computer Science, unless specified otherwise._ + +## Doctor of Computer Science + +- [Colorado Technical University](https://www.coloradotech.edu/degrees/doctorates/computer-science) +- [Columbia University](https://cvn.columbia.edu/program/columbia-university-computer-science-doctorate-degree-des-doctor-engineering) +- [Northcentral University](https://www.ncu.edu/programs-degrees/doctoral/doctor-philosophy-computer-science) + +## Master's Degree + +- [Arizona State University](https://www.coursera.org/degrees/master-of-computer-science-asu) - Coursera +- [Boston University](https://www.bu.edu/online/programs/graduate-programs/computer-information-systems-masters-degree/) +- [Columbia University](https://cvn.columbia.edu/program/columbia-university-computer-science-masters-degree-masters-science) +- [DePaul University](https://www.cdm.depaul.edu/academics/Pages/MSInComputerScience.aspx) +- [Georgia Tech](https://www.cc.gatech.edu/future/masters/mscs/program) - Udacity +- [Illinois Institute of Technology](https://science.iit.edu/computer-science/programs/graduate/graduate-program-resources/comparison-master-science-and) +- [Indiana University](https://www.edx.org/masters/online-master-in-it-management-indiana-university) (IT Management) - edX +- [Penn Engineering](https://www.coursera.org/degrees/mcit-penn) (Computer and Information Technology) - Coursera +- [Stanford University](https://online.stanford.edu/programs/computer-science-ms-degree) +- [University of Illinois](https://www.coursera.org/degrees/master-of-computer-science-illinois) - Coursera +- [University of Texas](https://www.edx.org/masters/online-master-science-computer-science-utaustinx) - edX + +### Analytics + +- [Georgia Tech](https://www.edx.org/masters/online-master-science-analytics-georgia-tech) - edX + +### Cyber security + +- [Coventry University](https://www.futurelearn.com/degrees/coventry/msc-cyber-security) - FutureLearn +- [Deakin University](https://www.futurelearn.com/degrees/deakin-university/cyber-security) - FutureLearn +- [Georgia Tech](https://www.edx.org/masters/online-master-science-cybersecurity-georgia-tech) - edX + +### Data science + +- [University of California, San Diego](https://www.edx.org/micromasters/ucsandiegox-algorithms-and-data-structures) - edX +- [University of Illinois](https://www.coursera.org/degrees/masters-in-computer-data-science) - Coursera +- [University of Michigan](https://www.coursera.org/degrees/master-of-applied-data-science-umich) (Applied Data Science) - Coursera + +### Machine learning + +- [Imperial College London](https://www.coursera.org/degrees/msc-machine-learning-imperial) (Machine learning) - Coursera diff --git a/applying_to_uol/README.md b/applying_to_uol/README.md new file mode 100644 index 00000000..e4a56c49 --- /dev/null +++ b/applying_to_uol/README.md @@ -0,0 +1,161 @@ +[Go back to the main page](../README.md) + +# Applying to the University of London Bachelors of Computer Science degree (UoL) + +UoL has a [long, esteemed history of +administering reputable distance learning +degrees](https://en.wikipedia.org/wiki/University_of_London_Worldwide), +though information about their new BSc Computer Science is sparse +due to its being new. This documentation seeks to explain the process +behind applying in a concise and clear way so you know exactly what to +expect when you do it yourself. + +## Table of Contents + +- [Applying to the University of London Bachelors of Computer Science degree (UoL)](#applying-to-the-university-of-london-bachelors-of-computer-science-degree-uol) + - [Table of Contents](#table-of-contents) + - [Administrative Information: Admissions Process and Requirements](#administrative-information-admissions-process-and-requirements) + - [English Requirements for Non-English Speaking Countries](#english-requirements-for-non-english-speaking-countries) + - [Documents and Statement to Prepare for Application](#documents-and-statement-to-prepare-for-application) + - [Application Process](#application-process) + - [Recognition of Prior Learning (RPL) Application](#recognition-of-prior-learning-rpl-application) + - [Frequently Asked Questions (FAQs)](#frequently-asked-questions-faqs) + - [Additional Resources](#additional-resources) + +## Administrative Information: Admissions Process and Requirements + +Students may apply to the programme in two of the following ways: +Direct Admissions (where you are admitted to study as conventionally +expected) and Performance-based Admissions (often used as an +alternative route to getting admitted if you did not meet the academic +requirements). Regardless of which route you would be falling under, +you must meet an equivalent of three requirements for your track: + +1. The entry requirements for your track of admissions +2. BSc Comp Sci's specific requirements of Maths at the appropriate level +3. [English Requirements](#english-requirements-for-non-english-speaking-countries) + +For Direct Admissions: UoL's General Requirements for entry +must be met — your country's equivalent can be found here: +https://london.ac.uk/entrance-qualifications + +For Performance-Based Admissions: your requirements can be found here: +https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/admissions + +If you're not sure which track you'll fall under — or whether +or not you will be able to obtain admissions, UoL's general +advice is to apply early and to apply anyway (see [Application +Process](#application-process)). + +### English Requirements for Non-English Speaking Countries + +Every student, English-speaking country or not must prove their +proficiency in English before applying. This is often proven +by native English speakers by showing that you were educated +in English. For those who were not educated in English, you +must show that you have [proficiency at the standards stated +here](https://london.ac.uk/applications/how-apply/english-requirements#awards-2563). + +Students with qualifications not listed have also been accepted. It is +worth applying if you think you have an equivalent qualification not +listed. + +### Documents and Statement to Prepare for Application + +If you're familiar with the British UCAS system, which students use +after sixth form (12/13th Grade) apply to university, the application +is fairly similar. The only difference being that you're applying to +one university and not five. + +In the application you will be asked to supply them with the following +things. It would be highly beneficial to have these prepared +beforehand (especially academic documents) to ensure that your +application decisions come in as quickly and efficiently as possible: + +1. A scanned copy of your ID +2. A verified copy of the Academic Documents that back your meeting the requirements for the programme +3. A 100-250 word Personal Statement (of prompt: "Why do you wish to study for this programme? + Please give your reasons, you should include details about your + education, work experience and current responsibilities, which are + relevant to this application.") + +It is worth noting that you do not have your certificates verified +before applying. That being said, providing verification can be the +most tedious and time consuming part of the application process. +Getting this done before a high volume applications season can +save you a lot of time and grief waiting for a response. [Here +is some guidance from the university on how you can get this +done.](https://london.ac.uk/applications/how-apply/supplying-evidence) + +## Application Process + +Upon submission, you will be assigned to an admissions advisor. An +admissions advisor's role is to go through your qualifications to give +you advice on whether or not they can admit you. + +Students unsure of whether or not they meet the requirements for +application should apply anyway to see if they can enter the +programme. Likewise, those without verified copies at the time of +application should apply to gain a decision made on their application. +Their acceptance advice is granted when verified documents are sent +through. + +The link here documents very clearly the process +on what decisions can be made on your application: +https://london.ac.uk/applicationshow-apply/what-happens-next + +A reality keen applicants and prospective students should know: the +admissions office, those in charge of education, or help in general +can be slow. **I would advise everyone interested in applying to apply +as soon as possible.** + +## Recognition of Prior Learning (RPL) Application + +RPL is the exemption of modules taken if you had taken it before +in a prior diploma or university. It can be seen as a form of +credit transfer. Full regulations can be found in the [course +regulations](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2019-2020.pdf). Grades attained from the +programme will not be transferred, however a listing of the grade will +be written on your transcript. + +You will have stated your intention to apply for RPL in your +application form, and upon acceptance you will have been given +detailed instructions on how to go about submitting proof for RPL. + +There is cost and limitations involved. Currently RPL costs 392 GBP +for all 8 modules, and students are only able to receive RPL for Level +4 or first year modules. + +You can get RPL credit in 3 of the following ways: + +1. [Automatic RPL: You hold a diploma from the colleges stated/are transferring from one of UoL's on-campus programmes](https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3) +2. [Discretionary RPL: You have a diploma/incomplete degree not stated but would like the programme director to consider for RPL](https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3) +3. [Google's IT Diploma: You completed the course and would like the HCW exemption](https://www.coursera.org/professional-certificates/google-it-support) + +RPL from a discretionary route will take awhile. Students have +reported the process taking a full month before the process was +complete. It would be wise to apply as soon as possible to avoid +delays with module registration. + +## Frequently Asked Questions (FAQs) + +**Q:** My application to UoL/for RPL/some other administrative process is taking so long, have they received it/why's it taking so long? + +**A:** It takes forever. Sorry mate. That's why an emphasis on applying early was made in the documentation. Applying early not only gives you peace of mind, it means your application doesn't pile up and done when professors aren't stressed out when they read your application. + +RPL has taken a month, UoL admissions has taken longer than the 5 days they aim for. Should this happen, do write a nice email to nudge them: ensuring that they have all you need done when they get around to your application. + +**Q:** What does my degree look like? + +**A:** It looks like [this](https://www.thestudentroom.co.uk/showthread.php?t=2459201). + +**Q:** Where would we be graduating? + +**A:** [Here, at The Barbican in London](https://www.youtube.com/watch?v=Oja7n2Kq2do) + +## Additional Resources + +- [UoL Facebook](https://www.facebook.com/LondonU/?ref=br_rs) +- [UoL Twitter](https://twitter.com/LondonU) +- [UoL Unofficial Students' Discord](https://discord.gg/zDpffJQ) +- Do keep a look out for UoL's virtual open day if you're curious to learn more and speak to representatives for more information. diff --git a/assets/css/style.scss b/assets/css/style.scss new file mode 100644 index 00000000..5449880c --- /dev/null +++ b/assets/css/style.scss @@ -0,0 +1,111 @@ +--- +--- + +// Reference: + +// original code: https://github.com/pages-themes/slate/blob/master/_sass/rouge-github.scss +// Customization style: https://github.com/pages-themes/slate#stylesheet + +@import '{{ site.theme }}'; + +body { + color: #241f20; + font-family: Arial, sans-serif, 'Myriad Pro', Calibri, Helvetica; +} + +.inner { + max-width: 1024px; +} + +*:focus { + outline: none; +} + +a { + text-decoration: underline; + color: #0053a6; +} + +p { + margin: 15px 0 20px 0; +} + +summary { + color: #000000; + font-size: 1.2rem; + margin-bottom: 1em; +} + +summary:hover { + cursor: pointer; +} + +details { + background-color: #f3f0ec; + padding: 1em; + margin: 1.25em 0 1.25em 0; +} + +table { + width: 100%; +} + +div#header_wrap { + background: #0053a6; +} + +#forkme_banner { + background: url(../images/blacktocat.png) #e22f24 no-repeat 95% 50%; + text-decoration: none; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); +} + +#main_content_wrap { + background: #ffffff; + border: none; +} + +#project_title { + text-shadow: none; +} + +#project_tagline { + font-weight: bold; + text-shadow: none; +} + +th { + font-family: Arial, sans-serif, 'Lucida Grande', 'Helvetica Neue', Helvetica; + padding: 10px; + background: #0055a6; + font-weight: bold; +} + +td { + background-color: white; +} + +code { + box-shadow: 0 0 10px #0055a630; +} + +#footer_wrap { + background: #262626; +} + +img.emoji { + margin: 0; + padding: 0; +} + +blockquote { + border-left: 6px solid #0053a6; +} + +.highlight { + background: none; +} + +pre { + box-shadow: 0 0 3px rgba(0, 0, 0, 0.1); +} diff --git a/books/README.md b/books/README.md new file mode 100644 index 00000000..ade6871a --- /dev/null +++ b/books/README.md @@ -0,0 +1,100 @@ +[Go back to the main page](../README.md) + +The following list goes beyond the essential/required reading that is part of this degree. The essential reading for each module, if available, can be found by visiting the relevant page in this repository from the [list of modules](../modules/). + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Awesome Lists](#awesome-lists) +- [Computer Science](#computer-science) + - [Algorithms](#algorithms) +- [Data Science](#data-science) +- [Free Open Textbooks](#free-open-textbooks) +- [Learning](#learning) +- [Mathematics](#mathematics) + - [Calculus](#calculus) + - [Discrete Mathematics](#discrete-mathematics) + - [Linear Algebra](#linear-algebra) + - [Number Theory and Algebra](#number-theory-and-algebra) + - [Statistics](#statistics) +- [Programming](#programming) + - [Assembly](#assembly) + - [Games](#games) +- [UX/UI Design](#uxui-design) + +--- + +# Awesome Lists + +- [Free Programming Books (GitHub awesome list)](https://ebookfoundation.github.io/free-programming-books/) - _"[...] administered by the Free Ebook Foundation, a not-for-profit organization devoted to promoting the creation, distribution, archiving and sustainability of free ebooks."_ +- [Awesome Programming Books](https://github.com/majikarp/awesome-programming-books) - _"A curated list of awesome programming books."_ + +# Computer Science + +- [How To Think Like A Computer Scientist With Python 3](http://openbookproject.net/thinkcs/python/english3e/), by Elkner, Wentworth, Downey, and Myers - _"An introduction to numerous useful features of a modern programming language and to basic object oriented programming, using Python 3 as the vehicle of choice"_ +- [Structure and Interpretation of Computer Programs](https://sarabander.github.io/sicp/html/index.xhtml), by Harold Abelson, Gerald Jay Sussman and Julie Sussman (2nd edition) - _"An excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the bibles of the LISP/Scheme world. Also, less commonly, known as the Purple Book."_ + +## Algorithms + +- [Algorithms to Live by: The Computer Science of Human Decisions](https://algorithmstoliveby.com/) - _"[...] show how algorithms developed for computers also untangle very human questions. They explain how to have better hunches and when to leave things to chance, how to deal with overwhelming choices and how best to connect with others. From finding a spouse to finding a parking spot, from organizing one’s inbox to peering into the future, Algorithms to Live By transforms the wisdom of computer science into strategies for human living."_ +- [Grokking Algorithms: An illustrated guide for programmers and other curious people](https://www.manning.com/books/grokking-algorithms) - _"Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You'll start with sorting and searching and, as you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python."_ +- [Hello World: Being Human in the Age of Algorithms](https://www.goodreads.com/book/show/43726517-hello-world) - _"Hello World is indispensable preparation for the moral quandaries of a world run by code, and with the unfailingly entertaining Hannah Fry as our guide, we’ll be discussing these issues long after the last page is turned."_ (from Goodreads) +- [Problem Solving 101: A Simple Book for Smart People](https://www.goodreads.com/en/book/show/6271219-problem-solving-101) - _"Watanabe uses sample scenarios to illustrate his techniques, which include logic trees and matrixes. A rock band figures out how to drive up concert attendance. An aspiring animator budgets for a new computer purchase. Students decide which high school they will attend. Illustrated with diagrams and quirky drawings, the book is simple enough for a middleschooler to understand but sophisticated enough for business leaders to apply to their most challenging problems."_ (from Goodreads) + +# Data Science + +- [How To Think Like A Data Scientist](https://runestone.academy/runestone/books/published/httlads/index.html) - _"An introduction to data science in the form of an interactive online book."_ + +# Free Open Textbooks + +- [Open Textbook Library](https://open.umn.edu/opentextbooks) - _"Make a difference in your students' lives with free, openly-licensed textbooks."_ +- [OpenStax](https://openstax.org/) - _"Peer-reviewed. Openly licensed. 100% free."_ + +# Learning + +- [Make It Stick: The Science of Successful Learning](https://www.goodreads.com/book/show/18770267-make-it-stick) - _"To most of us, learning something "the hard way" implies wasted time and effort. Good teaching, we believe, should be creatively tailored to the different learning styles of students and should use strategies that make learning easier. Make It Stick turns fashionable ideas like these on their head. Drawing on recent discoveries in cognitive psychology and other disciplines, the authors offer concrete techniques for becoming more productive learners."_ +- [Ultralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your Career](https://www.goodreads.com/book/show/44770129-ultralearning) - _"Learn a new talent, stay relevant, reinvent yourself, and adapt to whatever the workplace throws your way. Ultralearning offers nine principles to master hard skills quickly. This is the essential guide to future-proof your career and maximize your competitive advantage through self-education."_ + +# Mathematics + +- [Mathematics for Machine Learning](https://mml-book.github.io/) - _"We wrote a book on Mathematics for Machine Learning that motivates people to learn mathematical concepts. The book is not intended to cover advanced machine learning techniques because there are already plenty of books doing this. Instead, we aim to provide the necessary mathematical skills to read those other books."_ +- [Nix The Tricks](https://nixthetricks.com/index.html), by Tina Cardone and the online math community known as the MTBoS - _"This book is filled with alternatives to the shortcuts so prevalent in mathematics education and explains exactly why the tricks are so bad for understanding math."_ +- [The Beauty of Mathematics in Computer Science](https://www.goodreads.com/book/show/40590852-the-beauty-of-mathematics-in-computer-science) - _"[...] explains the mathematical fundamentals of information technology products and services we use every day, from Google Web Search to GPS Navigation, and from speech recognition to CDMA mobile services."_ + +## Calculus + +- [Calculus 1](https://openstax.org/details/books/calculus-volume-1) - _"Calculus is designed for the typical two- or three-semester general calculus course, incorporating innovative features to enhance student learning. The book guides students through the core concepts of calculus and helps them understand how those concepts apply to their lives and the world around them. Due to the comprehensive nature of the material, we are offering the book in three volumes for flexibility and efficiency. Volume 1 covers functions, limits, derivatives, and integration."_ +- [Calculus 2](https://openstax.org/details/books/calculus-volume-2) - _"Calculus is designed for the typical two- or three-semester general calculus course, incorporating innovative features to enhance student learning. The book guides students through the core concepts of calculus and helps them understand how those concepts apply to their lives and the world around them. Due to the comprehensive nature of the material, we are offering the book in three volumes for flexibility and efficiency. Volume 2 covers integration, differential equations, sequences and series, and parametric equations and polar coordinates."_ +- [Calculus 3](https://openstax.org/details/books/calculus-volume-3) - _"Calculus is designed for the typical two- or three-semester general calculus course, incorporating innovative features to enhance student learning. The book guides students through the core concepts of calculus and helps them understand how those concepts apply to their lives and the world around them. Due to the comprehensive nature of the material, we are offering the book in three volumes for flexibility and efficiency. Volume 3 covers parametric equations and polar coordinates, vectors, functions of several variables, multiple integration, and second-order differential equations."_ +- [Calculus Made Easy](https://www.gutenberg.org/files/33283/33283-pdf.pdf), by Silvanus Thompson - _"Being a very-simplest introduction to those beautiful methods which are generally called by the terrifying names of the Differentia."_ + +## Discrete Mathematics + +- [Discrete Mathematics - An Open Introduction](http://discrete.openmathbooks.org/dmoi3.html), by Oscar Levin - _"Discrete Mathematics: An Open Introduction is a free, open source textbook appropriate for a first or second year undergraduate course for math majors, especially those who will go on to teach."_ +- [How to Solve It - A New Aspect of Mathematical Method](https://lms.umb.sk/pluginfile.php/37176/mod_folder/content/0/Polya_How-to-solve-it.pdf), by G. Polya (PDF file) + +## Linear Algebra + +- [Linear Algebra Done Right](http://linear.axler.net/LinearAbridged.pdf), by Sheldon Axler - _"The text focuses on the central goal of linear algebra: understanding the structure of linear operators on finite-dimensional vector spaces."_ + +## Number Theory and Algebra + +- [A Computational Introduction to Number Theory and Algebra](https://shoup.net/ntb/ntb-v2.pdf), by Victor Shoup - _" My goal in writing this bookwas to provide an introduction to number theory and algebra, with an emphasis on algorithms and applications, that would be accessible to a broad audience. In particular, I wanted to write a book that would be appropriate for typical students in computer science or mathematics who have some amount of general mathematical experience, but without presuming too much specific mathematical knowledge."_ + +## Statistics + +- [Introductory Business Statistics](https://openstax.org/details/books/introductory-business-statistics) - _"Introductory Business Statistics is designed to meet the scope and sequence requirements of the one-semester statistics course for business, economics, and related majors. Core statistical concepts and skills have been augmented with practical business examples, scenarios, and exercises. The result is a meaningful understanding of the discipline, which will serve students in their business careers and real-world experiences."_ + +# Programming + +## Assembly + +- [Assembly Language for x86 Processors, Global Edition](http://catalogue.pearsoned.co.uk/catalog/academic/product?ISBN=9781292061214) - _"Assembly Language for x86 Processors, 7e is suitable for undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture. Proficiency in one other programming language, preferably Java, C, or C++, is recommended."_ + +## Games + +- [Game Engine Black Books](http://fabiensanglard.net/gebb/index.html) - _"It is a very deep insight on how id software developed the game engine that run Wolfenstein 3D and it is complete with code fragments with very detailed descriptions, down to the VGA programming and the assembly code that draws the screen during the game. Mindblowing!"_ (from David Della Rossa, student in this degree) + +# UX/UI Design + +- [Actionable Gamification](https://yukaichou.com/gamification-book/) - _"Gamification Pioneer Yu-kai Chou takes readers on a journey to learn his sixteen years of obsessive research in creating the Octalysis Framework, and how to apply the framework to create engaging and successful experiences in their product, workplace, marketing, and personal lives."_ (from [Amazon](https://www.amazon.com/Actionable-Gamification-Beyond-Points-Leaderboards/dp/1511744049/)) diff --git a/faq/README.md b/faq/README.md new file mode 100644 index 00000000..4b395a33 --- /dev/null +++ b/faq/README.md @@ -0,0 +1,565 @@ +[Go back to the main page](../README.md) + +# Frequently Asked Questions + +## Table of contents + +- [Frequently Asked Questions](#frequently-asked-questions) + - [Table of contents](#table-of-contents) + - [Before getting started](#before-getting-started) + - [Where can I go to get a better overview of this programme](#where-can-i-go-to-get-a-better-overview-of-this-programme) + - [Who has enrolled in this degree so far](#who-has-enrolled-in-this-degree-so-far) + - [Getting access to the programme](#getting-access-to-the-programme) + - [How long do I have to wait to receive the student email and student card](#how-long-do-i-have-to-wait-to-receive-the-student-email-and-student-card) + - [What is my username to log in to the student's portal at my.london.ac.uk](#what-is-my-username-to-log-in-to-the-students-portal-at-mylondonacuk) + - [When do I get access to the modules on Coursera](#when-do-i-get-access-to-the-modules-on-coursera) + - [When and how I can get access to the student slack workspace](#when-and-how-i-can-get-access-to-the-student-slack-workspace) + - [General topics](#general-topics) + - [I need help! Whom should I ask](#i-need-help-whom-should-i-ask) + - [Module-specific inquiries](#module-specific-inquiries) + - [Non-academic questions](#non-academic-questions) + - [Private matters and other types of academic inquiries](#private-matters-and-other-types-of-academic-inquiries) + - [Technical issues on Coursera](#technical-issues-on-coursera) + - [Small queries regarding a module](#small-queries-regarding-a-module) + - [Is there a simple repository of all knowledge generated regarding this program](#is-there-a-simple-repository-of-all-knowledge-generated-regarding-this-program) + - [How to access the library](#how-to-access-the-library) + - [What is my student email address](#what-is-my-student-email-address) + - [When can we expect our ISIC cards](#when-can-we-expect-our-isic-cards) + - [What kind of materials will university deliver to us](#what-kind-of-materials-will-university-deliver-to-us) + - [Do we get a dedicated student advisor, as it is customary in other countries (for example the US)](#do-we-get-a-dedicated-student-advisor-as-it-is-customary-in-other-countries-for-example-the-us) + - [If we produce something during our studies, who "owns" it](#if-we-produce-something-during-our-studies-who-owns-it) + - [Are there opportunities for students to gain some form of work experience in the industry or even undergo internships during the course](#are-there-opportunities-for-students-to-gain-some-form-of-work-experience-in-the-industry-or-even-undergo-internships-during-the-course) + - [I feel I need to vent, where can I go](#i-feel-i-need-to-vent-where-can-i-go) + - [Recognition of Prior Learning (RPL)](#recognition-of-prior-learning-rpl) + - [Is RPL time limited](#is-rpl-time-limited) + - [What can be accepted as RPL](#what-can-be-accepted-as-rpl) + - [Can we still apply RPL for Google IT Support course anytime during this semester or next](#can-we-still-apply-rpl-for-google-it-support-course-anytime-during-this-semester-or-next) + - [Does a possible RPL only get considered if it is from another university, or could the content (syllabus) of other certifications be looked at for possible matching/consideration](#does-a-possible-rpl-only-get-considered-if-it-is-from-another-university-or-could-the-content-syllabus-of-other-certifications-be-looked-at-for-possible-matchingconsideration) + - [Performance-Based Admission](#performance-based-admission) + - [For performance-based admission, can I take more than two module this session](#for-performance-based-admission-can-i-take-more-than-two-module-this-session) + - [Modules & Progression](#modules--progression) + - [Can a student switch pathways as the course goes on](#can-a-student-switch-pathways-as-the-course-goes-on) + - [How can I drop/withdraw from module](#how-can-i-dropwithdraw-from-module) + - [What is the maximum number of modules that one can select per semester and what if I fail one module](#what-is-the-maximum-number-of-modules-that-one-can-select-per-semester-and-what-if-i-fail-one-module) + - [Where can I see a syllabus of all available modules](#where-can-i-see-a-syllabus-of-all-available-modules) + - [How can I progress to level 5 modules](#how-can-i-progress-to-level-5-modules) + - [Which math topics should I review before taking Computational Mathematics as to feel comfortable during the course](#which-math-topics-should-i-review-before-taking-computational-mathematics-as-to-feel-comfortable-during-the-course) + - [Can I at some point in the future switch to on campus and continue my degree](#can-i-at-some-point-in-the-future-switch-to-on-campus-and-continue-my-degree) + - [Would on-campus be at the usual UK tuition fee rate](#would-on-campus-be-at-the-usual-uk-tuition-fee-rate) + - [Can we register 3 modules + project in last semester](#can-we-register-3-modules--project-in-last-semester) + - [Do you recommend taking four modules at a time if they are available](#do-you-recommend-taking-four-modules-at-a-time-if-they-are-available) + - [Does each module in Level 4 courses actually take 7 hours per week per module, I have some programming experience](#does-each-module-in-level-4-courses-actually-take-7-hours-per-week-per-module-i-have-some-programming-experience) + - [Can a BSc CS student take more than 22 modules (excluding the final project)](#can-a-bsc-cs-student-take-more-than-22-modules-excluding-the-final-project) + - [Programme Regulations](#programme-regulations) + - [How much do I need to pass module X](#how-much-do-i-need-to-pass-module-x) + - [I am taking module X, what type is it? Does it have a written exam](#i-am-taking-module-x-what-type-is-it-does-it-have-a-written-exam) + - [What do we learn in module X? Do we ever study X](#what-do-we-learn-in-module-x-do-we-ever-study-x) + - [What are the registration and progression rules](#what-are-the-registration-and-progression-rules) + - [I am a PBA (Performance-Based Admission) student, what does that mean](#i-am-a-pba-performance-based-admission-student-what-does-that-mean) + - [What is RPL](#what-is-rpl) + - [What specializations are available](#what-specializations-are-available) + - [What happens when I defer an assessment](#what-happens-when-i-defer-an-assessment) + - [Important Dates, Deadlines & Events](#important-dates-deadlines--events) + - [When are the exams/When does the semester start/What is the registration deadline](#when-are-the-examswhen-does-the-semester-startwhat-is-the-registration-deadline) + - [What week are we on](#what-week-are-we-on) + - [How do I setup calendar sync on Coursera](#how-do-i-setup-calendar-sync-on-coursera) + - [I don't want to miss important announcements, what to do](#i-dont-want-to-miss-important-announcements-what-to-do) + - [How long are vacations between semesters](#how-long-are-vacations-between-semesters) + - [Exams](#exams) + - [Will you be expanding test centers The closest one to me is rather far away](#will-you-be-expanding-test-centers-the-closest-one-to-me-is-rather-far-away) + - [If we sit the exam outside the UK, in a local examination centre, then it is done via British council, isn't it](#if-we-sit-the-exam-outside-the-uk-in-a-local-examination-centre-then-it-is-done-via-british-council-isnt-it) + - [How many exams will be there per semester for a module](#how-many-exams-will-be-there-per-semester-for-a-module) + - [Do online learners need to take assessments at specific locations? If so is this only final assessments](#do-online-learners-need-to-take-assessments-at-specific-locations-if-so-is-this-only-final-assessments) + - [Can you please describe a written examination for Computational Math or Discrete Math? Is it usually a test or teachers check hand written answers](#can-you-please-describe-a-written-examination-for-computational-math-or-discrete-math-is-it-usually-a-test-or-teachers-check-hand-written-answers) + - [Have you considered using ProctorU as a distributed exam solution It seems to have a fair amount of adoption among MOOC providers](#have-you-considered-using-proctoru-as-a-distributed-exam-solution-it-seems-to-have-a-fair-amount-of-adoption-among-mooc-providers) + - [Technical questions](#technical-questions) + - [Which are the programming languages we will come across through the course](#which-are-the-programming-languages-we-will-come-across-through-the-course) + - [Will C# be taught in level 6, especially in VR module](#will-c-be-taught-in-level-6-especially-in-vr-module) + - [Which programming language is used in learning Graphics programming](#which-programming-language-is-used-in-learning-graphics-programming) + - [Do we get a choice of back/front end frameworks to use during the web modules](#do-we-get-a-choice-of-backfront-end-frameworks-to-use-during-the-web-modules) + - [Will Data Science field use Python](#will-data-science-field-use-python) + - [There are a lot of technologies involved in data science. Can you run through some of the ones that will be covered](#there-are-a-lot-of-technologies-involved-in-data-science-can-you-run-through-some-of-the-ones-that-will-be-covered) + - [Have the Level 6 Modules been produced and tested](#have-the-level-6-modules-been-produced-and-tested) + - [Have Level 5 and 6 Modules been quality assured](#have-level-5-and-6-modules-been-quality-assured) + - [If you're restructuring the program to adhere to accreditation standards, will that disrupt the current modules or impending modules](#if-youre-restructuring-the-program-to-adhere-to-accreditation-standards-will-that-disrupt-the-current-modules-or-impending-modules) + - [Grades & Results](#grades--results) + - [My peer-reviewed work isn't graded yet, what can I do](#my-peer-reviewed-work-isnt-graded-yet-what-can-i-do) + - [How do you assign grades? Grading on a Curve or absolute grading](#how-do-you-assign-grades-grading-on-a-curve-or-absolute-grading) + - [What are the deadlines to complete summative quizzes](#what-are-the-deadlines-to-complete-summative-quizzes) + - [Graduation & Beyond](#graduation--beyond) + - [Is this programme accredited](#is-this-programme-accredited) + - [How is this degree going to tie in or transfer over to the new MSc Data Science from UoL and the soon to come MSc Machine Learning on Coursera](#how-is-this-degree-going-to-tie-in-or-transfer-over-to-the-new-msc-data-science-from-uol-and-the-soon-to-come-msc-machine-learning-on-coursera) + - [Is there no honours in the UK? Do we qualify for a masters straight after Bsc](#is-there-no-honours-in-the-uk-do-we-qualify-for-a-masters-straight-after-bsc) + - [Will there be difference in the diploma if we finish the degree online and on campus](#will-there-be-difference-in-the-diploma-if-we-finish-the-degree-online-and-on-campus) + - [Do usually students come to London to get their diplomas once they have graduated from UoL or are they being posted to graduates](#do-usually-students-come-to-london-to-get-their-diplomas-once-they-have-graduated-from-uol-or-are-they-being-posted-to-graduates) + - [Coursera](#coursera) + - [Modules involving mathematics](#modules-involving-mathematics) + - [Why am I seeing weird symbols in the questions from the quizzes](#why-am-i-seeing-weird-symbols-in-the-questions-from-the-quizzes) + - [Slack Community](#slack-community) + - [What are the basics on how to use Slack](#what-are-the-basics-on-how-to-use-slack) + - [How do I reply to a specific user using threads](#how-do-i-reply-to-a-specific-user-using-threads) + - [I want to discuss off-topic things with other students, where should I go](#i-want-to-discuss-off-topic-things-with-other-students-where-should-i-go) + - [Contributing to REPL](#contributing-to-repl) + - [How can I contribute to this repository](#how-can-i-contribute-to-this-repository) + - [Off-topic](#off-topic) + - [Where's the best place to read about Dr. Yee-King's research with computer music](#wheres-the-best-place-to-read-about-dr-yee-kings-research-with-computer-music) + +--- + +## Before getting started + +### Where can I go to get a better overview of this programme + +- The [programme's official website](https://london.ac.uk/courses/computer-science). +- The [programme's page on Coursera](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london). +- The [r/UniversityOfLondonCS](https://www.reddit.com/r/UniversityOfLondonCS/) subreddit and the [discord server](https://discord.gg/zDpffJQ) where actual students answer questions. + +### Who has enrolled in this degree so far + +- According to Coursera, this is the class profile: + - Average age of 31 + - 82% male; 18% female + - 67% of applicants had less than a Bachelor degree; 22% had a Bachelor degree and 11% more than a Bachelor degree + - Students from 87 countries + +### Getting access to the programme + +#### How long do I have to wait to receive the student email and student card + +- Expect a delay of approximately 4 to 6 weeks before you get access. You will receive an email to activate your ISIC virtual student card. + +#### What is my username to log in to the student's portal at my.london.ac.uk + +- Your username is the same as your student email address: that would be `USERNAME` in the address `USERNAME@student.london.ac.uk`. + +#### When do I get access to the modules on Coursera + +- You will receive an email a few business days (sometimes more) after your successful registration as a student once your payment has been made. +- **Your first step** should be to complete the **Orientation course** on Coursera – otherwise you won't be able to start your modules. Make sure you have selected _University of London_ for your modules on Coursera (see screenshot below) to display the course and then you can access it from [the home page](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/home) of this programme on Coursera or [directly from this link](https://www.coursera.org/learn/london-cs-orientation). + ![coursera UoL selection](https://raw.githubusercontent.com/world-class/binary-assets/master/images/faq/coursera_uol_selection_2020-09-13.png) + +#### When and how I can get access to the student slack workspace + +- When your first semester is about to start, you will receive an email from the university inviting you to join. + +## General topics + +### I need help! Whom should I ask + +#### Module-specific inquiries + +- You can reach out to your tutors in the appropriate discussion forums on Coursera. Access any module you are enrolled in from the home page of this degree on Coursera. + +#### Non-academic questions + +- You can write in the **Reach out** forum on Coursera (in the **orientation module**). + +#### Private matters and other types of academic inquiries + +- You can write an email to Student Relationship Mangers (SRMs) BScCS-Support@london.ac.uk + +#### Technical issues on Coursera + +- If you think you're having technical problems with Coursera, create a ticket at: [https://learner.coursera.help/hc/en-us](https://learner.coursera.help/hc/en-us) + +#### Small queries regarding a module + +- You can also ask in module specific Slack channel. Be sure to thank the person who helps you :smile: + +### Is there a simple repository of all knowledge generated regarding this program + +- Yes — [https://github.com/world-class/repl](https://github.com/world-class/repl) + +### How to access the library + +- [https://www.coursera.org/learn/london-cs-orientation/supplement/Umu9M/student-resources](https://www.coursera.org/learn/london-cs-orientation/supplement/Umu9M/student-resources) + +### What is my student email address + +- It's of the form `short_student_name_with_numbers@student.london.ac.uk`. You access it [from a Google account](http://mail.google.com/a/student.london.ac.uk). + +### When can we expect our ISIC cards + +- The email will come from , so make sure you add this address to your email account so that it doesn’t go to your spam folder. If you do not receive an email, or you have any issues with your ISIC card, contact . You can also log an enquiry in the ‘Ask a Question’ link in your student portal, in order for us to look into this further for you if necessary. + +### What kind of materials will university deliver to us + +- When you register, we will give you access to your Student Portal. You can then access your + University of London email account and two other key resources: + + - The Virtual Learning Environment (VLE). Here, you can access electronic copies of all printed study + materials, resources including audio-visual, and forums to discuss course material and work + collaboratively with others. + - Access to academic support and feedback from London-based support teams. Tutors introduce the + modules, respond to queries, monitor discussions and provide guidance on assessments. There will be + interactive and engaging study materials including videos, quizzes and online games, so you can feel + confident about your progress. + +### Do we get a dedicated student advisor, as it is customary in other countries (for example the US) + +- As a student of the University of London you will have access to academic support and feedback from London-based support teams. Your online tutor will introduce the modules, respond to academic queries, and provide guidance on assessments through the Online Tutor Forum. Your Student Relationship Managers are available to assist you with non-academic and administrative queries via the Reach Out Forum in the Orientation Module, and via the support email . + +### If we produce something during our studies, who "owns" it + +> In one UoL's correspondence it said that we would need to reach out to our professor if we wanted to monetize it. How would we go about that for this degree being online? + +The section of the University’s Intellectual Property Rights Policy that specifically addresses your question is Part E. Please see [https://london.ac.uk/sites/default/files/governance/intellectualpropertypolicy.pdf](https://london.ac.uk/sites/default/files/governance/intellectualpropertypolicy.pdf). + +If you have any specific queries about something you have created which you are interested in publishing, please contact us via the support email and we can look into this further for you. + +### Are there opportunities for students to gain some form of work experience in the industry or even undergo internships during the course + +- I am afraid that this would not be provided by the University of London, however, we would not discourage students attempting to seek work experience on their own accord. + +### I feel I need to vent, where can I go + +- [https://my.london.ac.uk/group/student/talkcampus](https://my.london.ac.uk/group/student/talkcampus) +- Visit the [#vent](https://londoncs.slack.com/archives/CJG51H2CS) channel on Slack. + +--- + +## Recognition of Prior Learning (RPL) + +### Is RPL time limited + +> For example, if I've taken an equivalent course at Uni 10 years back, is that still qualified? + +- Please note that the general regulations state the following regarding RPL: Your prior learning may + count towards a University of London qualification provided that: + + a) the academic/professional requirements for the previous study can be verified by us; + + b) the range, quality and currency of the previous study and/or of a previous qualification, and its coherence with the studies to be undertaken, is confirmed as appropriate; + + c) **your prior learning was completed within the past five years, unless Programme Regulations indicate otherwise**. + +### What can be accepted as RPL + +- If you are registered on a full BSc programme, you may apply for recognition of prior learning for up to 120 credits at Level 4. We consider applications for recognition of prior learning (RPL) on the basis of studies successfully completed at an appropriate level. Further information regarding automatic and discretionary RPL for BSc Computer Science can be found on the website here: [https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3](https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3). + +### Can we still apply RPL for Google IT Support course anytime during this semester or next + +- Please be advised that it is recognized by the University of London as prior learning, giving students exemption from the module How Computers Work at level 4. The deadline to register for RPL for the October 2019 session was 26 August 2019. If you wish to apply for RPL for the April 2020 session, you will be able to do so from 16 December 2019. + +### Does a possible RPL only get considered if it is from another university, or could the content (syllabus) of other certifications be looked at for possible matching/consideration + +- For credit to be awarded for your prior learning, you must have completed a syllabus of similar level and depth as part of a previous qualification, normally within the previous five years. +- You need to apply for any prior learning to be recognized and accredited. You can do this on the relevant section of the online application form. +- If you have already submitted your application but now wish to request recognition of your prior learning, please contact us. + +--- + +## Performance-Based Admission + +### For performance-based admission, can I take more than two module this session + +- If you are entering any of the programmes via the Performance Based Admissions route, you are permitted to register for two modules only; Introduction to Programming I and either Computational or Discrete Mathematics, depending on module availability. + +--- + +## Modules & Progression + +### Can a student switch pathways as the course goes on + +- You may apply to transfer between BSc Computer Science specialist pathways offered under these regulations provided that + + 1. you have selected, or are still able to select, the core modules on the degree to which you wish to transfer; + 2. you are still within your maximum period of registration; + 3. you have not failed at the final attempt, a module that is core on the degree to which you wish to transfer; + 4. you have not passed more than one Level 6 module which does not fit on the degree to which you wish to transfer; + 5. you are not yet eligible for the BSc award upon which you are currently registered. For further information please see the [programme regulations](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf). + +### How can I drop/withdraw from module + +- You will have 14 days from the beginning of your course (the day your modules become available on the platform) to withdraw a module or transfer it to a later study session. After 14 days, any fees paid to the University will not be refunded unless there are mitigating circumstances which we will consider on submission of the relevant evidence. Please see [terms and conditions](https://london.ac.uk/applicationshow-apply/terms-and-conditions) for further information. + +### What is the maximum number of modules that one can select per semester and what if I fail one module + +- The maximum number of modules you can register for in any one session is five (or three plus the final project). This can be a combination of new modules and resits (with a maximum of four new modules), or resits only. +- For further information please see the [programme regulations](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf). + +### Where can I see a syllabus of all available modules + +- [https://www.coursera.org/learn/london-cs-orientation/supplement/YUBNS/syllabus-introduction-to-programming-1-cm1005](https://www.coursera.org/learn/london-cs-orientation/supplement/YUBNS/syllabus-introduction-to-programming-1-cm1005) + +### How can I progress to level 5 modules + +- To progress to Level 5 modules, you must have: + - completed at least 45 credits at Level 4, including Introduction to Programming I and either Discrete or Computational Mathematics; + - made an attempt at a further 45 credits at Level 4, including both Introduction to Programming II and the remaining Level 4 maths module; + - registered for any Level 4 modules not yet attempted alongside your Level 5 modules. + +### Which math topics should I review before taking Computational Mathematics as to feel comfortable during the course + +- I would recommend reviewing a UK A-Level Maths textbook. + +### Can I at some point in the future switch to on campus and continue my degree + +- Goldsmiths welcomes applications from students who wish to transfer to an on-campus degree. To complete your degree in two years of full-time study at Goldsmiths, you must have completed eight Level 4 modules successfully. To complete your degree in one year of full-time study at Goldsmiths, you must also have completed eight modules at Level 5. + +- If you are interested in transferring to Goldsmiths and have successfully completed the required courses (or expect to do so in your intended year of transfer), please contact the Computing Team. + +### Would on-campus be at the usual UK tuition fee rate + +- We would advise contacting Goldsmiths directly about this. Please see the below email address - + . + +### Can we register 3 modules + project in last semester + +- You are only able to study for a maximum of 60 credits per session, so this would not be possible. You would need to study for two modules and the final project. + +### Do you recommend taking four modules at a time if they are available + +- Unfortunately, it is not for us to recommend, as it very much depends on your current circumstances. It is important to think about how much time you can give to your studies, as you should allow 6-10 study hours per week for a module. + +### Does each module in Level 4 courses actually take 7 hours per week per module, I have some programming experience + +- No. It really depends on what you already know and the course you take. Introduction to Programming will probably be a breeze for you, maybe web development too. You could spend half as much and still be good to go (3.5 hours / week / module). However, it really depends how well you want to understand the topics, you could also spend twice as much if you want to go in depth, although the academic level is not very high if you stick to the basic requirements. + +- It's a good idea to allow more time for theoretical modules especially if you don't have experience with the content compared to the practical ones which are more about programming assignments. It's hard to tell. Many students work full-time and are fine with 3 modules per semester. Some have more experience and work full-time while doing 4 modules, but that can be too much for many who are less experienced. + +### Can a BSc CS student take more than 22 modules (excluding the final project) + +> I'm currently taking an Internet of Things specialism, but I may probably take an interest in Games Development in the future. + +- If you want to study additional modules via a separate institution or platform, this is up to you. However, we would urge you to consider the time commitment of studying these additional modules. +- You will study over 22 weeks which means you should allow 6-10 study hours per week for a module. + +--- + +## Programme Regulations + +This section is dedicated to all the general questions that are answered well in the program regulations. Please read [the program regulations](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf). :book: + +### How much do I need to pass module X + +- See section 4.3. + +### I am taking module X, what type is it? Does it have a written exam + +- See Appendix B. + +### What do we learn in module X? Do we ever study X + +- See Appendix B. + +### What are the registration and progression rules + +- See Section 5.6 — 5.7. + +### I am a PBA (Performance-Based Admission) student, what does that mean + +- See Section 5.1 — 5.5. + +### What is RPL + +- Recognition of Prior Learning. See Section 3. + +### What specializations are available + +- See Appendix A. + +### What happens when I defer an assessment + +- See Section 4.32 — 4.37. + +--- + +## Important Dates, Deadlines & Events + +### When are the exams/When does the semester start/What is the registration deadline + +- Tentative important dates for enrolled students: [https://www.coursera.org/learn/london-cs-orientation/supplement/8w7so/important-dates](https://www.coursera.org/learn/london-cs-orientation/supplement/8w7so/important-dates) +- A general idea for prospective students: + - October 2020 session + - Registration opens 29 June 2020 + - Registration closes 21 September 2020 + - Course starts 12 October 2020 + - Examinations March 2021 + - April 2021 session + - Registration opens 21 December 2020 + - Registration closes 15 March 2021 + - Course starts April 2021 + - Examinations September 2021 + +### What week are we on + +- Check the topic of [#general](https://londoncs.slack.com/archives/CDTPC3FKL) on Slack. It's kept updated for this purpose only. + +### How do I setup calendar sync on Coursera + +- [https://www.coursera.org/learn/london-cs-orientation/supplement/xNQ2h/calendar-sync-and-time-zones](https://www.coursera.org/learn/london-cs-orientation/supplement/xNQ2h/calendar-sync-and-time-zones) + +### I don't want to miss important announcements, what to do + +- Make sure you have a filter in your email for UoL emails. Also subscribe to [#official-communications](https://londoncs.slack.com/archives/CM4KKHUCB) on Slack. + +### How long are vacations between semesters + +- **About 3-4 weeks**, give or take, with the possibility of smaller breaks in between if you manage your time well (it's up to you). +- **Semester 1:** April 8 2019 to September ~13 2019 (the deadline was extended for a module so you could have been done earlier). **Break:** 25 days. +- **Semester 2:** October 7 2019 to March 9 2020. **Break:** 41 days. +- **Semester 3:** April 19 2020 to September ~23 2020 (it depends on the exams you take, but roughly ending a week earlier than that with the theory). **Break:** 19 days, till October 12 (we started a week later due to the pandemic). Etc. + +--- + +## Exams + +### Will you be expanding test centers The closest one to me is rather far away + +- There are no plans to expand test centres at present. Please see [this link](https://london.ac.uk/current-students/examinations/examination-centres) for a list of over 500 approved exam centres. + +### If we sit the exam outside the UK, in a local examination centre, then it is done via British council, isn't it + +> I wonder whether you collaborate with local experts (IT professors) or there are only British Council representatives who collect the papers and send them for evaluation to London? + +- You will sit your exams at one of over 500 approved centres around the world (including local Ministries of Education or the British Council). These centres are separate from local teaching institutions and they charge a fee for hosting the exam. These papers are then gathered and returned to London for marking. For further information about exams, please see [https://london.ac.uk/current-students/examinations](https://london.ac.uk/current-students/examinations). + +### How many exams will be there per semester for a module + +- Please be advised that this will depend on how many modules you register for and will be determined by the assessment requirements for those modules. + +### Do online learners need to take assessments at specific locations? If so is this only final assessments + +- The University has 400 approved examination centres worldwide, so you don't need to travel to London to sit your exams. These centres charge a fee for hosting the exam. The fees are set by the exam centre so may vary by country and venue. +- Therefore, I would recommend that you check the fees with the exam centre directly. Please see the following link which provides a full list of available examination centres and their contact details: [http://bit.ly/2At85Fu](http://bit.ly/2At85Fu). + +### Can you please describe a written examination for Computational Math or Discrete Math? Is it usually a test or teachers check hand written answers + +- Students are required to sit for a written examination at a local examination centre. It will then go through a rigorous marking process before students receive their marks. + +### Have you considered using ProctorU as a distributed exam solution It seems to have a fair amount of adoption among MOOC providers + +- There is a project at UoL which is looking into exam proctoring. I believe they are considering ProctorU. + +--- + +## Technical questions + +### Which are the programming languages we will come across through the course + +- JavaScript, C++, Python, C#. + +### Will C# be taught in level 6, especially in VR module + +- Yes. We use Unity, which uses C#. + +### Which programming language is used in learning Graphics programming + +- JavaScript. + +### Do we get a choice of back/front end frameworks to use during the web modules + +- No. + +### Will Data Science field use Python + +- Yes. + +### There are a lot of technologies involved in data science. Can you run through some of the ones that will be covered + +- Python, numpy, scipy pandas, Jupyter notebooks, TensorFlow, data visualization tools. + +### Have the Level 6 Modules been produced and tested + +- One commenced production earlier this year. Others begin in October 2019, two more phases start in April and October 2020. + +### Have Level 5 and 6 Modules been quality assured + +- The design of the whole programme has been through a QAA process to ensure it aligns with the UK HE benchmark for computing. + +### If you're restructuring the program to adhere to accreditation standards, will that disrupt the current modules or impending modules + +- We are not presently planning to restructure the programme. + +--- + +## Grades & Results + +### My peer-reviewed work isn't graded yet, what can I do + +- Ask in the Slack channel [#reviewexchange](https://londoncs.slack.com/archives/CJXHM0RTQ). + +### How do you assign grades? Grading on a Curve or absolute grading + +- Information about the grading policy can be found within the BSc Computer Science Orientation Course. Please see the below \* [https://www.coursera.org/learn/london-cs-orientation/supplement/rZzTr/grading-policy](https://www.coursera.org/learn/london-cs-orientation/supplement/rZzTr/grading-policy). + +### What are the deadlines to complete summative quizzes + +- You can find **soft** deadlines in the **Grades** section of each module on Coursera. Those are _advised_ deadlines and give you a good idea of what progress you should have been making and how you should roughly be pacing yourself. +- You have until the submission deadline for the mid-term of each module to submit summative quizzes: this is the **hard** deadline in case you miss the **soft** ones. You will still be able to submit summative quizzes after the mid-term, but they won't count towards your final grade. Please take into consideration the timezone information on the submission page for the mid-term as any work — or summative quizzes due before the mid-term — will be awarded zero marks if you submit after the **hard** deadline, even if it's on the same day. + +--- + +## Graduation & Beyond + +### Is this programme accredited + +- _Summary: Yes, the University of London and this degree in particular are accredited_. See [this article on Reddit at r/UniversityOfLondonCS](https://www.reddit.com/r/UniversityOfLondonCS/comments/hzumke/everything_you_want_to_know_about_the/) for details. + +### How is this degree going to tie in or transfer over to the new MSc Data Science from UoL and the soon to come MSc Machine Learning on Coursera + +> The ability to be able pursue Grad School is huge for me. And you probably know for Graduate School, students are required to provide Letters of Reference for their Application. Will the Online Tutors be the ones providing the letter since there is no interaction with the faculty at Goldsmiths? + +- In regards to references, our Transcripts Office would be able to provide you with a general reference. You can also apply for a Letter of Certification from our Transcripts Office. Our Transcripts Office can provide an official letter of certification, which will confirm an award. You can contact us via the support email if you wish to request such a letter. + +### Is there no honours in the UK? Do we qualify for a masters straight after Bsc + +- Yes, to be considered for the award of the BSc degree with honours you are required to have passed modules to the value of 360 credits. If you are interested in postgraduate study, you would need to contact the institution that you intend to study at, as entrance requirements vary from institution to institution. + +### Will there be difference in the diploma if we finish the degree online and on campus + +- Your degree will be of exactly the same standard as a University of London degree awarded to an on-campus student by a Member Institution. + +### Do usually students come to London to get their diplomas once they have graduated from UoL or are they being posted to graduates + +- When you graduate from the University of London, you receive two important documents: your Final Diploma; and, in most cases, a Diploma Supplement. Students will receive their diploma and transcript via post. When you complete your degree, you have the option of joining students from around the world at our graduation ceremony in London, which is held in March each year. For further information about your diploma please see: [https://london.ac.uk/applicationshow-it-works/your-certificate](https://london.ac.uk/applicationshow-it-works/your-certificate) + +--- + +## Coursera + +### Modules involving mathematics + +#### Why am I seeing weird symbols in the questions from the quizzes + +For instance, for a question about predicate logic, you might see something like `p \(\lor \neg \)q` as part of the question. This is a mathematical expression that has not been rendered properly and/or not rendered yet. **Solution:** Refresh the page to see the proper notation appear, i.e. `p V ¬q` in this example. + +--- + +## Slack Community + +### What are the basics on how to use Slack + +- [Available shortcuts](https://get.slack.help/hc/en-us/articles/201374536-Slack-keyboard-shortcuts) +- [How to format your messages](https://get.slack.help/hc/en-us/articles/202288908-Format-your-messages) +- [How to share snippets of code](https://slack.com/slack-tips/share-code-snippets) (JavaScript, HTML, CSS, Python, C++, etc.) +- [How to use pinned items](https://slack.com/intl/en-mx/help/articles/205239997-Pin-messages) (important info in each channel) +- [How to search effectively](https://slack.com/intl/en-mx/help/articles/202528808-Search-in-Slack) (filtering by channel, user, date, file types, etc.) +- [How to find channels](https://slackhq.com/introducing-channel-search-for-slack) +- [Slack help center](https://get.slack.help/hc/en-us) for anything else + +### How do I reply to a specific user using threads + +- It's very important to use threads while communicating to keep chats organized. — [https://slack.com/intl/en-in/help/articles/115000769927-Use-threads-to-organise-discussions-](https://slack.com/intl/en-in/help/articles/115000769927-Use-threads-to-organise-discussions-) + +### I want to discuss off-topic things with other students, where should I go + +- A list of Slack channels [can be found here](../slack/README.md). + +--- + +## Contributing to REPL + +### How can I contribute to this repository + +We're glad you asked! We have [contributing guidelines](https://github.com/world-class/REPL/blob/master/.github/CONTRIBUTING.md) that you can check out to see where and how you might want to make a positive impact in the academic life of students enrolled in this degree :wink:. + +--- + +## Off-topic + +### Where's the best place to read about Dr. Yee-King's research with computer music + +- On my website: [http://www.yeeking.net](http://www.yeeking.net) +- And on my GS profile: [https://goldsmiths.academia.edu/MatthewYeeKing](https://goldsmiths.academia.edu/MatthewYeeKing) diff --git a/job_opportunities/README.md b/job_opportunities/README.md new file mode 100644 index 00000000..558dfce7 --- /dev/null +++ b/job_opportunities/README.md @@ -0,0 +1,50 @@ +[Go back to the main page](../README.md) + +# Job Opportunities + +# Table of contents + +- [Job Opportunities](#job-opportunities) +- [Table of contents](#table-of-contents) +- [Job readiness](#job-readiness) + - [Awesome Interviews](#awesome-interviews) +- [Work: Remote options](#work-remote-options) + - [Awesome Remote Job](#awesome-remote-job) + - [Awesome Job Boards](#awesome-job-boards) + - [Finding opportunities](#finding-opportunities) + - [Freelancing](#freelancing) + +# Job readiness + +- See [Websites > Programming > Coding challenges](../websites/README.md#coding-challenges) for direct opportunities to practice solving real-world interview questions and relevant CS problems. +- See [Websites > Programming > Interview preparation](../websites/README.md#interview-preparation) for examples of interview questions from big tech companies such as Facebook, Google and Microsoft. + +## [Awesome Interviews](https://github.com/MaximAbramchuck/awesome-interview-questions) + +> A curated list of lists of technical interview questions. — [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +--- + +# Work: Remote options + +## [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) + +> A curated list of awesome [remote working](https://en.wikipedia.org/wiki/Telecommuting) resources. — [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +## [Awesome Job Boards](https://github.com/tramcar/awesome-job-boards) + +> A curated list of awesome niche job boards. — [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +## Finding opportunities + +- :star: [A curated list of awesome remote jobs and resources](https://github.com/lukasz-madon/awesome-remote-job) - Articles, videos, books, job boards, interviewing, companies with "remote DNA" and much more. +- [50 remote tech companies hiring now for remote jobs](https://www.diygenius.com/remote-jobs/) (Updated: April 3rd, 2020) +- [Dynamite Jobs](https://dynamitejobs.co/) +- [Remote only](https://remoteonly.org/) +- [Remote](https://remote.com/) +- [We Work Remotely](https://weworkremotely.com/) + +## Freelancing + +- [Guru](https://www.guru.com/) +- [Toptal](https://www.toptal.com/) diff --git a/kinks/README.md b/kinks/README.md new file mode 100644 index 00000000..93ff2340 --- /dev/null +++ b/kinks/README.md @@ -0,0 +1,28 @@ +[Go back to the main page](../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Kinks found in Level 4 modules](#kinks-found-in-level-4-modules) +- [Note to future students](#note-to-future-students) + +--- + +# Kinks found in Level 4 modules + +- [Algorithms and Data Structures I](../kinks/level_4/algorithms_and_data_structures_i/README.md) +- [Discrete Mathematics](../kinks/level_4/discrete_mathematics/README.md) +- [How Computers Work](../kinks/level_4/how_computers_work/README.md) +- [Introduction to Programming I](../kinks/level_4/introduction_to_programming_i/README.md) +- [Introduction to Programming II](../kinks/level_4/introduction_to_programming_ii/README.md) +- [Web Development](../kinks/level_4/web_development/README.md) + +As a great complimentary resource, don't forget to check out the `#bugs` channel on Slack. + +# Note to future students + +The information contained in this "kinks" section may not reflect the current state of the modules. Problems are being reported mainly by students from the first cohort to enroll in each of those modules and those problems may be fixed later down the road once the first batch of students is no longer part of those modules. + +Bugs that come up at the beginning of the modules will probably not be listed here as they often disappear after a short while. Above all, this section will strive to document errors in videos or other resources that may require more time to find a fix on their own. + +If you find information that's inaccurate, please do not hesitate to **[reach out on Slack](https://londoncs.slack.com/)**, **[open a new issue](https://github.com/world-class/REPL/issues/new)** or **[send a pull request](https://github.com/world-class/REPL/pulls)**! Your help is very much appreciated so that we can keep this repository useful to as many students as possible :wink:. diff --git a/kinks/level_4/algorithms_and_data_structures_i/README.md b/kinks/level_4/algorithms_and_data_structures_i/README.md new file mode 100644 index 00000000..49be602e --- /dev/null +++ b/kinks/level_4/algorithms_and_data_structures_i/README.md @@ -0,0 +1,23 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Algorithms and Data Structures I - Reported problems](#algorithms-and-data-structures-i---reported-problems) + - [Week 6](#week-6) + - [3.3.4 Using stacks to check for palindrome words](#334-using-stacks-to-check-for-palindrome-words) + - [3.4.4 Using stacks to check html tags](#344-using-stacks-to-check-html-tags) + +# Algorithms and Data Structures I - Reported problems + +This page is about the [Algorithms and Data Structures I module](../../../modules/level_4/algorithms_and_data_structures_i/). + +## Week 6 + +### 3.3.4 Using stacks to check for palindrome words + +- The widget has been designed to be compatible with Google Chrome. For instance, some highlighting functions during the initial tutorial do not work as expected on Firefox. + +### 3.4.4 Using stacks to check html tags + +- The same issue as in 3.3.4 is present: Google Chrome is the preferred web browser. diff --git a/kinks/level_4/discrete_mathematics/README.md b/kinks/level_4/discrete_mathematics/README.md new file mode 100644 index 00000000..063b1300 --- /dev/null +++ b/kinks/level_4/discrete_mathematics/README.md @@ -0,0 +1,21 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Discrete Mathematics - Reported problems](#discrete-mathematics---reported-problems) + - [Week 10](#week-10) + - [5.212 Domino logic gates simulation](#5212-domino-logic-gates-simulation) + - [Firefox browser](#firefox-browser) + +# Discrete Mathematics - Reported problems + +This page is about the [Discrete Mathematics module](../../../modules/level_4/discrete_mathematics/). + +## Week 10 + +### 5.212 Domino logic gates simulation + +#### Firefox browser + +If the simulation fails to load, it can occur due to the hardware acceleration option being disabled. To enable it, go to the preferences (you can type `about:preferences` in the URL bar): then, under **General** tab, search for **Performance** and uncheck the option `Use recommended performance settings`. By doing so, the option `Use hardware acceleration when available` will appear below it. Make sure it is enabled for this domino simulation. For more information on browser compatibility and how to fix possible issues, see [this answer](https://superuser.com/a/836833/1032549) on Superuser.com. diff --git a/kinks/level_4/how_computers_work/README.md b/kinks/level_4/how_computers_work/README.md new file mode 100644 index 00000000..44b8e08a --- /dev/null +++ b/kinks/level_4/how_computers_work/README.md @@ -0,0 +1,39 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [How computers work - Reported problems](#how-computers-work---reported-problems) + - [Week 2](#week-2) + - [Review quiz (unverified)](#review-quiz-unverified) + - [Week 6](#week-6) + - [Lesson 6.1 Compression](#lesson-61-compression) + - [Week 7](#week-7) + - [Lesson 7.1](#lesson-71) + - [Video: CPU and memory](#video-cpu-and-memory) + +# How computers work - Reported problems + +This page is about the [How Computers Work module](../../../modules/level_4/how_computers_work/). + +## Week 2 + +### Review quiz (unverified) + +- The answer to question 2 should be `yes`. +- The answer to question 19 should be `yes and`. + +## Week 6 + +### Lesson 6.1 Compression + +- Video: Compression - It loops the whole introduction twice up until around + 2m30s mark. + +## Week 7 + +### Lesson 7.1 + +#### Video: CPU and memory + +- There is no audio from 5:26. diff --git a/kinks/level_4/introduction_to_programming_i/README.md b/kinks/level_4/introduction_to_programming_i/README.md new file mode 100644 index 00000000..2d46486c --- /dev/null +++ b/kinks/level_4/introduction_to_programming_i/README.md @@ -0,0 +1,280 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [ITP1 - Reported problems, tips and additional instructions](#itp1---reported-problems-tips-and-additional-instructions) + - [Sleuth](#sleuth) + - [General Sleuth Issues](#general-sleuth-issues) + - [Spotlight Effect on Firefox](#spotlight-effect-on-firefox) + - [Syntax error due to `console.log()`](#syntax-error-due-to-consolelog) + - [Function parentheses](#function-parentheses) + - [Variable assignment](#variable-assignment) + - [Rookie](#rookie) + - [101, Stage 3](#101-stage-3) + - [201, Stage 4](#201-stage-4) + - [Pro](#pro) + - [601, All stages](#601-all-stages) + - [601, Stage 4](#601-stage-4) + - [701, All stages](#701-all-stages) + - [701, Stage 4](#701-stage-4) + - [702, All stages](#702-all-stages) + - [702, Stage 1](#702-stage-1) + - [702, Stage 2](#702-stage-2) + - [702, Stage 4](#702-stage-4) + - [801, All stages](#801-all-stages) + - [801, Stage 3-4](#801-stage-3-4) + - [801, Stage 4](#801-stage-4) + - [802, Stage 1](#802-stage-1) + - [802, Stage 2](#802-stage-2) + - [Random function](#random-function) + - [802, Stage 3](#802-stage-3) + - [802, Stage 4](#802-stage-4) + - [Game Project](#game-project) + - [Audio](#audio) + - [AudioContext not allowed to start](#audiocontext-not-allowed-to-start) + - [Audio resources not loading](#audio-resources-not-loading) + - [Coursera Material](#coursera-material) + - [Week 1](#week-1) + - [Video: 2D coordinate system](#video-2d-coordinate-system) + - [Week 3](#week-3) + - [Practice quiz: Using the console and debugging syntax errors](#practice-quiz-using-the-console-and-debugging-syntax-errors) + - [Week 7](#week-7) + - [Lesson 4.1 Video: Conditional statements using ==](#lesson-41-video-conditional-statements-using-) + - [Lesson 4.2 Practice quiz: Introducing types: String, Number, Boolean](#lesson-42-practice-quiz-introducing-types-string-number-boolean) + - [Practice quiz: Conditionals with types](#practice-quiz-conditionals-with-types) + +--- + +# ITP1 - Reported problems, tips and additional instructions + +This page is about the [Introduction to programming I module](../../../modules/level_4/introduction_to_programming_i/). + +## Sleuth + +### General Sleuth Issues + +#### Spotlight Effect on Firefox + +Be aware that Sleuth cases involving a spotlight effect (302 and 801) will not work on Firefox out of the box, like they work in any webkit based browser (like Google Chrome and Safari). + +Easiest workaround is commenting out the line at the bottom that says `blendMode(DARKEST)` and uncommenting it again before submitting the case. Changing it to `blendMode(LIGHTEST)` should work at least to be able to see where the spotlight is. + +#### Syntax error due to `console.log()` + +If you get this message when submitting a case: + + There is an error in your code ... + Error in compile SyntaxError: Unexpected token ) + +Remove all of your debugging statements that are using `console.log()`. + +#### Function parentheses + +If you get this message when submitting a case: + + TypeError: studentFunctionCodeString.search is not a function + +You need to ensure that any function being declared does not have a space between the function name and the argument. For example: + + function myFunc() // Grader should accept this + function myFunc () // Grader might not accept this + +#### Variable assignment + +- Some cases ask to set the value of a variable to `mouseX` for instance and then make sure it doesn't go above or below a certain value with `min()` and `max()` functions. Answers can wrongly be accepted if you first set + + variable = mouseX; + + and then reassign it by applying a function that is missing a parameter: + + variable = max(X); + + where `X` is an integer. The variable should be assign in one statement as follow instead: + + variable = max(mouseX, X); + +### Rookie + +#### 101, Stage 3 + +Use only `fill()` and `rect()` commands. You can adjust opacity with `fill()` by adding a fourth value as follows: + + fill(R, G, B, A); + +where `R`, `G` and `B` stand for **red**, **green**, **blue** and can have values from 0 to 255 and `A` is optional **alpha**. In this case, a value of about `100` is fine so you can see through the shape being drawn. + +#### 201, Stage 4 + +- Some students were given cases where body parts of the judge are missing (i.e., legs appear outside the canvas, for instance). In those cases, you may be better off just failing all your attempts and wait for a new randomized case to be given to you as you probably won't be able to get 100%. +- If your answer isn't accepted, try increasing the number of times you have `vertex()` in your code. Answers including at least 40 to 50 vertices have been reported to work better. +- You should only use `beginShape()`, `vertex(x1, y1)` and `endShape()` in your code. +- Note that `endShape()` stops drawing at the last vertex, but with parameter `CLOSE`, it closes the shape by drawing to the first vertex. + +--- + +### Pro + +#### 601, All stages + +When required to draw at the various locations of crimes and sightings, take note of the following: + +- When asked to draw vertices, at least one vertex must be drawn on the exact co-ordinate. Any number of vertices > 1 can be drawn to get the grader to accept the submission. + +- Other shapes like rectangles and triangles can be drawn around the exact co-ordinate (i.e. no edges passing through it or ending on it) provided that they are smaller than approx 10-15 px in diameter. + +- The names of array that need plotting may not always match up with the type of crime that is specified, for example, the instructions may refer to thefts, but the array might be called MurderSceneRecord. + +- When asked to use `stroke(r,g,b)`, also use `noFill()` and when asked to use `fill(r,g,b)` also use `noStroke()`. Even though these functions are not allowed according to the instructions, the grader appears to need them to correctly assess the stroke and fill properties. + +- When asked to draw rects around a point, do not use `rectMode(CENTER)` as it may confuse the grader. Simply use `rect(x-5, y-5, 10, 10)` or similar. + +#### 601, Stage 4 + +Where possible matches need to be pushed into a separate array after comparing dates and distances, take note that some conditions could be too strict resulting in zero matches, which could at first seem like an error in your code. In such cases, if you submit, the grader will accept the empty array as long as the logic was implemented correctly. + +#### 701, All stages + +Witnesses sometimes give details relating to features or characteristics for which no properties are defined in the object arrays. It is usually not required to check for these. If problematic, get suspended to get a new case. + +#### 701, Stage 4 + +Some versions of this stage have misspelled words which prevent the student from solving the case. If you encounter the words `plasic` or `nerveous`, you need to make sure that your solution searches for `plastic` or `nervous` instead. Some other variations along those lines with other misspelled words may exist but haven't been reported yet. + +#### 702, All stages + +Probably the trickiest of all the Sleuth cases. Instructions are not always explicitly clear and require insight into objects and functions. + +#### 702, Stage 1 + +There is a bug in the instructions, stating that you need to: +`Get your car on the road by completing the function below.` + +The function that requires editing is called `Move_Car()` (or similar). + +#### 702, Stage 2 + +Hardest part is to implement the function to check/search a vehicle ahead by comparing the passed variable's (detective car object) distance/km/miles property against the ones in the array. There are several ways to do this, but the grader may not always like what you're doing. Some guidance here: + +You need to check each object in the array to confirm using if-statement(s) that: + +- They are in the same lane (easy, as per the instructions) +- That the difference between the distance/km/miles-properties of the car ahead and the detective vehicle less than 200 +- That the car in the array is in front of (and not behind) the detective car + +Note that the `distance`/`km`/`miles_travelled` property is increasing towards the top of the screen, opposite to the regular y-coordinate. Since debugging the array might be tricky, consider adding a text readout to each car using a variation of: + + text(Vehicles[i].Distance, Vehicles[i].X, Vehicles[i].Y); //debug + +Once implemented correctly, remember the logic, as you will likely need to create similar functions things in the stages ahead. + +#### 702, Stage 4 + +_"My suspect's car didn't have enough space to pull out in front of me before speeding off, so the chase wouldn't work as expected. I deliberately got myself suspended so I could grab another case, and it worked fine."_ (reported by [@dannycallaghan](https://github.com/dannycallaghan)) + +#### 801, All stages + +More spotlight stages, which may cause Firefox users to not see the spotlights. +To get it to work, refer to [Spotlight effect on Firefox](#spotlight-effect-on-firefox). + +**Tips:** + +- The 1st seat in the 1st row will be `seats[0][0]`. +- Rows and seats relate to `seats[row][seat]` and not vice versa. +- You don't need to factor in reverse counting of rows such that row numbers increase from front to back, like in a real theatre. For this case the first row is at the back of the theatre (i.e. the top of the screen.) + +#### 801, Stage 3-4 + +Many students waste time here trying to spot patterns in the audience members based on their appearance. The information about the seat numbers of gang/perpetrators is already defined in an array. It appears that any information given about appearance (hats, retro glasses, etc.) is merely to confirm that you have used the array to traverse the seats in the correct manner and not to actually identify gang members. + +#### 801, Stage 4 + +Here the challenge is to traverse a two-dimensional array using a normal (one-dimensional) array. There are different ways to approach this, but these work: + +- Create additional variables and use a nested-for with conditionals, or +- convert the 1D array to a 2D array and compare against the 2D array. + +It appears that the grader is looking for two simple nested for-loops in the solution, so more elegant ways involving math to convert your 1D iterator into two 2D co-ordinates does not work, even when all gang members are correctly identified. This, for example, was not accepted by the grader: + + for (var i = 0; i < suspect.length; i++) + operaFolks[floor(i/10)][i%10].recognised = (suspect[i]); + +#### 802, Stage 1 + +**Tip:** You can comment out the line `if (frameCount % 7 == 0)` in order to speed up the deck spread sequence. It might save some time during testing. + +#### 802, Stage 2 + +##### Random function + +_"They ask you to create an array of random integers between two values. The `random()` function in `p5.js` includes the lower number, but excludes the upper number. So if you do `random(5,9)`, it might well generate a 5, but never a 9._ + +_I incremented the upper value by one so it'd actually generate values between the two numbers requested, but the puzzle actually expects you to just naively slot the two values into random and not fix the bug."_ (reported by _Peter Houlihan_) + +#### 802, Stage 3 + +Tip: When comparing cards, you can't simply compare objects against each other as the objects may be structured differently. Rather consider the properties of the different objects in the arrays and compare similar properties against one another. + +#### 802, Stage 4 + +- Take a good look at some form of documentation to understand how the JavaScript `splice()` function works. [MDN `Array.splice()` documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) + +- From the instructions and the variable names, it is not always clear which part of the deck the grader wants in the spliced array. Other versions may exist, but it appears that the objective is to splice the part of the deck that would remain on the table (after it was cut) into a new array. In some cases that new array is called `topOfDeck` which is incredibly confusing, because it is actually the bottom part of the deck we are looking for. The top card lying on the remaining part of the deck must be the target card. + +- When testing the reverse operation, take note that the console in Firefox Developer Edition and some other browsers may display object data live at the time of viewing it and not at the time of logging. This could create the impression that your array operations are not working. To see the array values at the time of logging them, do not use `console.log(obj)`, but use `console.log(JSON.parse(JSON.stringify(obj)))` instead. + +--- + +## Game Project + +### Audio + +#### AudioContext not allowed to start + +When implementing audio on your project, you could get an error similar to this from the browser: + +`The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.` + +This is just a browser feature to prevent websites from playing sounds without user input. Ensure that your user presses a button or clicks the mouse before you attempt to play audio. + +Refer to: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio + +#### Audio resources not loading + +Some users have reported CORS-related problems when trying to launch the audio template provided. This could occur on the `file:///` protocol due to [Cross-Origin policy restrictions](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). Ensure that you launch the `index.html` file from a local web server and not through a file explorer. + +Alternatively you can use the live preview functions of Brackets or the [Live Server extension](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) in VSCode. + +These functions will automatically create a local server for testing and you can confirm this by checking that the address in your browser address starts with `localhost` or `http://` and not `file:///` + +--- + +## Coursera Material + +### Week 1 + +#### Video: 2D coordinate system + +- At 3:56, the top left corner should have coordinates (4, 3) instead of (5, 3). +- At 3:56, the width of the rectangle should be 12, and not 11. + +### Week 3 + +#### Practice quiz: Using the console and debugging syntax errors + +- Question 3: "triangle" is misspelled → `trinagle`, adding an additional error which is not an argument error. However, the spelling mistake shouldn't be taken into account. + +### Week 7 + +#### Lesson 4.1 Video: Conditional statements using == + +- The bomb exercise template is missing. + +#### Lesson 4.2 Practice quiz: Introducing types: String, Number, Boolean + +- Question 5: The question asks for **two** ways to reuse the variable `numWays` but expects **three** selected answers. + +#### Practice quiz: Conditionals with types + +- Question 3: The question says the answer _"No, because answer is neither a number, nor is it equal to the number 42"_ is correct. However the correct answer is _"Yes, because answer is equal to 42"_. +- Question 5: The question says the answer `parseInt(a+b)*c` is correct and the others are all wrong: however `(a+b)*c` is also correct. They both produce the same result. diff --git a/kinks/level_4/introduction_to_programming_ii/README.md b/kinks/level_4/introduction_to_programming_ii/README.md new file mode 100644 index 00000000..14cd3a6a --- /dev/null +++ b/kinks/level_4/introduction_to_programming_ii/README.md @@ -0,0 +1,21 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Introduction to programming II - Reported problems](#introduction-to-programming-ii---reported-problems) + - [Case studies](#case-studies) + - [Data visualizer](#data-visualizer) + - [4.103](#4103) + +# Introduction to programming II - Reported problems + +This page is about the [Introduction to programming II module](../../../modules/level_4/introduction_to_programming_ii/). + +## Case studies + +### Data visualizer + +#### 4.103 + +_"I think there might be a bug in `TechDiversityRace` `this.destroy()` when it calls `removeElements()`. This seems to remove the gallery from the main canvas. A possible workaround is to call `this.select.remove()`."_ - Ray Stinson diff --git a/kinks/level_4/web_development/README.md b/kinks/level_4/web_development/README.md new file mode 100644 index 00000000..8b80ce20 --- /dev/null +++ b/kinks/level_4/web_development/README.md @@ -0,0 +1,36 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Web Development - Reported problems](#web-development---reported-problems) + - [Week 6](#week-6) + - [Lecture: 3.3.10 HTML media tags](#lecture-3310-html-media-tags) + - [Practice Quiz: 3.3.11 Review information](#practice-quiz-3311-review-information) + - [Week 15](#week-15) + - [Practice quiz 8.1.6, 8.2.2 and 8.2.5](#practice-quiz-816-822-and-825) + +# Web Development - Reported problems + +This page is about the [Web Development module](../../../modules/level_4/web_development/). + +## Week 6 + +### Lecture: 3.3.10 HTML media tags + +- Video: The video appears with all sorts of white dots all over. It looks + like the professor is in a snowball. + +### Practice Quiz: 3.3.11 Review information + +- The `width` attribute is _not_ a global attribute. +- The `png` file extension _is_ from image files. +- The `jog` file extension should not be selected because it doesn't really + exist. Unless it's a typo for `jpg` or `jpeg`. +- The `bmp` file extension _is_ from image files. + +## Week 15 + +### Practice quiz 8.1.6, 8.2.2 and 8.2.5 + +- Some questions ask for true or false answers, but give the options `1` and `0`. Those options should be `true` and `false`, respectively. diff --git a/modules/level_4/algorithms_and_data_structures_i/README.md b/modules/level_4/algorithms_and_data_structures_i/README.md new file mode 100644 index 00000000..40d94325 --- /dev/null +++ b/modules/level_4/algorithms_and_data_structures_i/README.md @@ -0,0 +1,143 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Algorithms and Data Structures I](#algorithms-and-data-structures-i) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Complementary learning](#complementary-learning) + - [Visualizations](#visualizations) + - [Algorithms](#algorithms) + - [`mergeSort` algorithm](#mergesort-algorithm) + - [`quickSort` algorithm](#quicksort-algorithm) + - [`quickSort` & `mergeSort` algorithms MIT](#quicksort--mergesort-algorithms-mit) + - [Computational complexity & P vs NP](#computational-complexity--p-vs-np) + - [Essential reading](#essential-reading) + - [Examples of past and current written exams](#examples-of-past-and-current-written-exams) + - [Kinks to be aware of](#kinks-to-be-aware-of) + - [Notes](#notes) + - [On REPL](#on-repl) + - [Solutions to the textbook Introduction to Algorithms](#solutions-to-the-textbook-introduction-to-algorithms) + +--- + +# Algorithms and Data Structures I + +This module will help you to develop your analytical and +problem-solving skills. It will encourage you to think about how to +use computers to solve problems. You'll develop skills in thinking +algorithmically and learn the central concepts of algorithms and data +structures. You will learn about linear data structures such as +arrays, vectors and lists and a unifying framework for considering +such data structures as collections. You'll study how algorithms can +be expressed as flowcharts and pseudocode and how to convert these +into programs. You'll learn specific algorithms used for sorting and +searching, and how to express repetition as iteration and +recursion. You will learn a simple model for execution of computation, +and how to describe computational problems and their solutions. The +model will allow you to compare algorithms regarding their correctness +and regarding their efficiency. + +# Topics covered + +- Introduction to algorithms, flowcharts and pseudocode +- Computations using flowcharts and pseudocode +- Pairs, vectors and dynamic arrays +- Basic searching +- Linked lists +- Basic sorting +- Advanced searching and introduction to complexity +- Recursive algorithms +- Advanced sorting +- Linear collections + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM1035_ADS1-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1035_ADS1.pdf) + + +# Resources + +## Complementary learning + +- [Algorithmic Design and Techniques](https://courses.edx.org/courses/course-v1:UCSanDiegoX+ALGS200x+2T2017/course) - _edX platform, by UC San Diego_ +- [Data Structures Fundamentals](https://courses.edx.org/courses/course-v1:UCSanDiegoX+ALGS201x+1T2019/course) - _edX platform, by UC San Diego_ +- [Easy Theory](https://www.youtube.com/c/EasyTheory/playlists) - _"This is a channel about making Computer Science theory as easy as possible."_ Relevant for this course as well as [Fundamentals of Computer Science](../fundamentals_of_computer_science/README.md). + +### Visualizations + +- [Data Structures Visualization](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html) - Visualizations of a lot of data structures and related algorithms. + +- [Animated DSA Visualization](https://visualgo.net/en) - Sorting algorithms, searching algorithms and many data structures beautifully visualized. + +### Algorithms + +- [Comparison of Algorithms](https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms) - See time complexity at a glance for various popular algorithms. +- [Data Structure & Algorithms Introduction](https://www.programiz.com/dsa/algorithm) - Sorting algorithms, data structures, tree data structure and more. + +#### `mergeSort` algorithm + +- [2.7.2. Merge Sort Algorithm](https://www.youtube.com/watch?v=mB5HXBb_HY8) - Abdul Bari +- [Algorithm lecture 8 -- Merge sort algorithm, analysis and problems](https://www.youtube.com/watch?v=sfmaf4QpVTw) - Gate Lectures by Ravindrababu Ravula + +#### `quickSort` algorithm + +- [Algorithms lecture 9 -- Quick sort algorithm](https://www.youtube.com/watch?v=3DV8GO9g7B4) - Gate Lectures by Ravindrababu Ravula +- [2.8.1 QuickSort Algorithm](https://www.youtube.com/watch?v=7h1s2SojIRw) - Abdul Bari + +#### `quickSort` & `mergeSort` algorithms MIT + +- [3. Insertion Sort, Merge Sort](https://youtu.be/Kg4bqzAqRBM) - MIT 6.006 Introduction to Algorithms, Fall 2011 + +### Computational complexity & P vs NP + +- [Big-O Cheat Sheet](https://www.bigocheatsheet.com/) - bigocheatsheet.com +- [Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8) - MIT OpenCourseWare +- [P vs. NP and the Computational Complexity Zoo](https://www.youtube.com/watch?v=YX40hbAHx3s) - hackerdashery + +## Essential reading + +_"Specific essential readings for this course will be taken from the following text book:_ + +- **Cormen, T.H., C.E. Leierson, R.L. Rivest and C. Stein Introduction to Algorithms. (Cambridge, MA: MIT Press, 2009) 3rd edition.** + +_The specific pages for the reading activities will be given in the platform, and there is no need to read beyond to recommended pages._ + +_In addition to the text book, there are additional reading activities written by the course author, some of which involve coding exercises._ + +_There will also be discussion prompts asking you to do some independent research using online sources."_ + +## Examples of past and current written exams + +- 2014, 2015, 2016, 2018, 2020: [Visit this page](https://github.com/world-class/binary-assets/tree/master/modules/past_exams/cm1035_ads1). +- :lock: [2020 written exam] **enrolled students**: more answers were compiled on Slack, [see this thread](https://londoncs.slack.com/archives/CKZT2SR0U/p1582561904016800)) + +## Kinks to be aware of + +- [List of reported errors and bugs with the module](../../../kinks/level_4/algorithms_and_data_structures_i/). + +## Notes + +- [students_notes/arjun_muralidharan/CM1035_ADS.pdf](https://github.com/world-class/notes/tree/master/level_4/algorithms_and_data_structures_i/students_notes/arjun_muralidharan/CM1035_ADS.pdf) +- [students_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_4/algorithms_and_data_structures_i/students_notes/felipe_balbi/notes.pdf) + +## On REPL + +- [YouTube](../../../youtube/README.md#algorithms). +- [Websites](../../../websites/README.md#algorithms). + +## Solutions to the textbook Introduction to Algorithms + +- [CLRS Solutions](https://sites.math.rutgers.edu/~ajl213/CLRS/CLRS.html) - Michelle Bodnar, Andrew Lohr diff --git a/modules/level_4/computational_mathematics/README.md b/modules/level_4/computational_mathematics/README.md new file mode 100644 index 00000000..fc28fa1d --- /dev/null +++ b/modules/level_4/computational_mathematics/README.md @@ -0,0 +1,111 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Computational Mathematics](#computational-mathematics) +- [Topics previously covered (numerical mathematics)](#topics-previously-covered-numerical-mathematics) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Complementary learning](#complementary-learning) + - [Reading List](#reading-list) + - [Notes](#notes) + - [Numerical Mathematics (earlier iteration of the module)](#numerical-mathematics-earlier-iteration-of-the-module) + +--- + +# Computational Mathematics + +This module helps you hone your skills in thinking abstractly. It also +introduces you to many of the standard continuous models used to help +understand and design computational systems. Through this module, you +will develop the fundamental computational mathematical tools that +will support you throughout the BSc programme. Particular attention is +paid to notions of experimentation, reasoning, and generalisation. By +taking this module, you will learn a wide range of the computational +mathematical concepts and techniques that underpin Computer Science. +In particular, you will study number systems, special functions, +graphing and linear algebra. + +# Topics previously covered (numerical mathematics) + +- Number bases and modular arithmetic +- Sequences and Series +- Graph Sketching and Kinematics +- Angles, Triangles and Trigonometry +- Trigonometric functions +- Exponential and logarithmic functions +- Calculus: Limits and differentiation +- Vectors and Matrices +- Linear Transformations +- Introduction to Combinatorics and Probability + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM1015_CM-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1015_CM.pdf) + +# Resources + +## Complementary learning + +- [Saylor Academy](https://learn.saylor.org/course/index.php?categoryid=13) - _"Explore the real-world applications of mathematics through algebra, calculus, statistics, and geometry. You can earn a free certificate of completion for any of these online Mathematics courses, or use many of them to earn credit in leading college programs."_ + +## Reading List + +- [Computational Mathematics Weekly Reading List PDF (April 2020)](https://github.com/world-class/binary-assets/blob/master/modules/cm1015_cm/cm_weekly_reading_list.pdf) + +## Notes + +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-1_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-1_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-1_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-1_Reading.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-2_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-2_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-3_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-3_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-3_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-3_Reading.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-4_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-4_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-5_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-5_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-5_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-5_Reading.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-6_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-6_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-7_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-7_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-7_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-7_Reading.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-8_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-8_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Reading_1.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Reading_1.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Reading_2.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Reading_2.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Reading_3.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-9_Reading_3.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-10_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-10_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-11_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-11_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-12_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-12_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-13_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-13_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-13_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-13_Reading.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-14_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-14_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-15_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-15_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-15_Reading_1.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-15_Reading_1.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-15_Reading_2.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-15_Reading_2.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-16_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-16_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-17_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-17_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-17_Reading_1.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-17_Reading_1.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-17_Reading_2.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-17_Reading_2.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Reading_1.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Reading_1.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Reading_2.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Reading_2.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Reading_3.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-18_Reading_3.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-19_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-19_Lecture.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-19_Reading_1.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-19_Reading_1.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-19_Reading_2.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-19_Reading_2.pdf) +- [students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-20_Lecture.pdf](https://github.com/world-class/notes/tree/master/level_4/computational_mathematics/students_notes/sukhjit_mann/CM1015_Comp-Maths_Week-20_Lecture.pdf) + +### Numerical Mathematics (earlier iteration of the module) + +- [students_notes/arjun_muralidharan/CM1015_NM.pdf](https://github.com/world-class/notes/tree/master/level_4/numerical_mathematics/students_notes/arjun_muralidharan/CM1015_NM.pdf) +- [students_notes/hannes_seller/1015_numerical_mathematics.pdf](https://github.com/world-class/notes/tree/master/level_4/numerical_mathematics/students_notes/hannes_seller/1015_numerical_mathematics.pdf) +- [students_notes/peter_houlihan/Notes_Pehoulihan.pdf](https://github.com/world-class/notes/tree/master/level_4/numerical_mathematics/students_notes/peter_houlihan/Notes_Pehoulihan.pdf) diff --git a/modules/level_4/discrete_mathematics/README.md b/modules/level_4/discrete_mathematics/README.md new file mode 100644 index 00000000..e9488ff5 --- /dev/null +++ b/modules/level_4/discrete_mathematics/README.md @@ -0,0 +1,219 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Discrete Mathematics](#discrete-mathematics) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Additional reading](#additional-reading) + - [Complementary learning](#complementary-learning) + - [Essential reading](#essential-reading) + - [Solutions to problems in the textbook Discrete Mathematics and its Applications](#solutions-to-problems-in-the-textbook-discrete-mathematics-and-its-applications) + - [Examples of past and current written exams](#examples-of-past-and-current-written-exams) + - [Kinks to be aware of](#kinks-to-be-aware-of) + - [Mathematical symbols](#mathematical-symbols) + - [Notes](#notes) + - [On REPL](#on-repl) + - [Supplementary videos](#supplementary-videos) + - [Weekly readings](#weekly-readings) + +--- + +# Discrete Mathematics + +This module helps hone your skills in thinking abstractly. It also +introduces you to many of the discrete models used to help understand +and design computational systems. Through this module, you'll develop +the fundamental discrete mathematical tools that will support you during +the BSc degree. Particular attention is paid to notions of +experimentation, reasoning and generalisation. + +# Topics covered + +[See this fabulous mind map for more details](https://github.com/world-class/binary-assets/blob/master/modules/cm1020_dm/CM-1020_DM_mind_map.png). + +- Sets +- Boolean Algebra +- Propositional Logic +- Predicate Logic +- Functions +- Recursion and Mathematical Induction +- Relations +- Graphs +- Trees +- Counting + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM1020_DM-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1020_DM.pdf) + +# Resources + +## Additional reading + +- [A Guide to Writing Proofs](https://github.com/world-class/binary-assets/blob/master/modules/cm1020_dm/A_Guide_to_Writing_Proofs.pdf). +- [Common Mistakes in Discrete Math](https://highered.mheducation.com/sites/0073383090/student_view0/common_mistakes_in_discrete_math.html) (from the companion website to the essential reading for the book _Discrete Mathematics and its Applications_). +- [Discrete Mathematics Questions and Answers](https://www.sanfoundry.com/1000-discrete-mathematics-questions-answers) - _"Our 1000+ Discrete Mathematics questions and answers focuses on all areas of Discrete Mathematics subject covering 100+ topics in Discrete Mathematics."_ +- [Induction: going through examples (UoL students)](https://github.com/world-class/binary-assets/blob/master/modules/cm1020_dm/induction_example.pdf). +- [Matching (Graph Theory)](https://brilliant.org/wiki/matching) - _"Definition, terminology, bipartite matching, examples."_ +- [Readings from MIT OpenCourseWare](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/) on proofs, graph theory, recurrences, probability. +- [Set Theory for Computer Science](https://github.com/world-class/binary-assets/blob/master/modules/cm1020_dm/set_theory_for_computer_science.pdf). +- [Solving Linear Recurrence Relations](https://github.com/world-class/binary-assets/blob/master/modules/cm1020_dm/solving_linear_recurrence_relations.pdf) - From University of California, Berkeley, [from this page](https://math.berkeley.edu/~arash/55/8_2.pdf). +- TrevTutor.com: + - [Set theory, Logic, Counting, Proof techniques, relations and functions, number theory & formal language, with exams & solutions](https://trevtutor.com/discretemath/discretemath1/). + - [Counting & probability, generating functions & recurrence relations, graph theory, with exams & solutions](https://trevtutor.com/discretemath/discrete-math-2/). + +## Complementary learning + +- [Saylor Academy](https://learn.saylor.org/course/index.php?categoryid=13) - _"Explore the real-world applications of mathematics through algebra, calculus, statistics, and geometry. You can earn a free certificate of completion for any of these online Mathematics courses, or use many of them to earn credit in leading college programs."_ + +## Essential reading + +_"The essentials readings for this course will come from the following text book, which is available in the University of London digital library:_ + +- **Kenneth, H, Rosen. Discrete Mathematics and its Applications. (2012) 7th Edition** +- **David Mackinson, Sets, Logic and Maths for Computing, Springer Verlag. 2012** + +_This course does not require you to read the whole book, you will be given specific readings for each topic from these texts are listed with direct links on the Readings page for each topic. You will also be asked to do some independent research from online sources or using the University of London digital library."_ + +### Solutions to problems in the textbook Discrete Mathematics and its Applications + +- [7th Edition (2012) - written explanations on Slader.com](https://www.slader.com/textbook/9780073383095-discrete-mathematics-with-applications-7th-edition) +- [8th Edition (2018) - step-by-step solutions in videos on Numerade.com](https://www.numerade.com/books/discrete-mathematics-and-its-applications/) + +## Examples of past and current written exams + +- 2014, 2015, 2016, 2017, 2018 ([PDF with answers](https://github.com/world-class/binary-assets/blob/master/modules/past_exams/cm1020_dm/DM18_answers.pdf)), 2020 ([PDF with answers](https://github.com/world-class/binary-assets/blob/master/modules/past_exams/cm1020_dm/DM20_answers.pdf)): [Visit this page](https://github.com/world-class/binary-assets/tree/master/modules/past_exams/cm1020_dm). +- :lock: [2020 written exam] **enrolled students**: answers are being compiled on Slack, [see this thread](https://londoncs.slack.com/archives/CKZT2LKPW/p1582307389452400) + +## Kinks to be aware of + +- [List of reported errors and bugs with the module](../../../kinks/level_4/discrete_mathematics/). + +## Mathematical symbols + +- The [list of mathematical symbols](https://en.wikipedia.org/wiki/List_of_mathematical_symbols) on Wikipedia is a handy reference. Chapter 1 of _Kenneth, H, Rosen. Discrete Mathematics and its Applications. (2012) 7th Edition_ is outside the scope of the essential readings for this module, but provides a solid foundation to understand the notations and some proof techniques used during the course. +- [Type mathematical symbols (online keyboard)](https://math.typeit.org) - Online keyboard to help with typing mathematical symbols. + +## Notes + +- [professors_notes/Lecture_notes_Yale_Lovasz_Vesztergombi.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/professors_notes/Lecture_notes_Yale_Lovasz_Vesztergombi.pdf) +- [students_notes/arjun_muralidharan/CM1020_DM.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/arjun_muralidharan/CM1020_DM.pdf) +- [students_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/felipe_balbi/notes.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-10_5.2_Applications-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-10_5.2_Applications-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-10_5.2_Applications.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-10_5.2_Applications.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-11_6.1_Math_Induction-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-11_6.1_Math_Induction-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-11_6.1_Math_Induction.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-11_6.1_Math_Induction.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-12_6.2_Recursion-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-12_6.2_Recursion-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-12_6.2_Recursion.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-12_6.2_Recursion.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-13_7.1_Intro_Graph_Theory-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-13_7.1_Intro_Graph_Theory-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-13_7.1_Intro_Graph_Theory.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-13_7.1_Intro_Graph_Theory.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-14_7.2_Isomorphic_graphs.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-14_7.2_Isomorphic_graphs.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-14_7.2_Isomorphic_graphs_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-14_7.2_Isomorphic_graphs_Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-15_8.1_Intro_Trees.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-15_8.1_Intro_Trees.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-15_8.1_Intro_Trees_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-15_8.1_Intro_Trees_Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-16_8.2_Rooted_trees_BSTs-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-16_8.2_Rooted_trees_BSTs-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-16_8.2_Rooted_trees_BSTs.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-16_8.2_Rooted_trees_BSTs.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-17_9.1_Relations-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-17_9.1_Relations-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-17_9.1_Relations.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-17_9.1_Relations.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-18_9.2_Equivalence&Order-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-18_9.2_Equivalence&Order-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-18_9.2_Equivalence&Order.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-18_9.2_Equivalence&Order.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-19_10.1_TheBasics-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-19_10.1_TheBasics-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-19_10.1_TheBasics.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-19_10.1_TheBasics.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-1_01\* A.\_Sets.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-1_01_A._Sets.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-1_01\* A.\_Sets_Reading_2.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-1_01_A._Sets_Reading_2.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-20_10.2_Further_techniques-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-20_10.2_Further_techniques-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-20_10.2_Further_techniques.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-20_10.2_Further_techniques.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-2_1.2_Set_Representation_Manipulation-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-2_1.2_Set_Representation_Manipulation-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-2_1.2_Set_Representation_Manipulation.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-2_1.2_Set_Representation_Manipulation.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-3_2.1_Introduction_to_Functions.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-3_2.1_Introduction_to_Functions.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-3_2.1_Introduction_to_Functions_Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-3_2.1_Introduction_to_Functions_Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-4_2.2_More_about_Functions-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-4_2.2_More_about_Functions-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-4_2.2_More_about_Functions.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-4_2.2_More_about_Functions.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-5_3.1_The_Basics-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-5_3.1_The_Basics-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-5_3.1_The_Basics.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-5_3.1_The_Basics.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-6_3.2_Applications-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-6_3.2_Applications-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-6_3.2_Applications.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-6_3.2_Applications.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-7_4.1_The_Basics-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-7_4.1_The_Basics-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-7_4.1_The_Basics.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-7_4.1_The_Basics.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-8_4.2_Applications-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-8_4.2_Applications-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-8_4.2_Applications.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-8_4.2_Applications.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-9_5.1_The_Basics-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-9_5.1_The_Basics-Reading.pdf) +- [students_notes/sukhjit_mann/Discrete_Maths_Week-9_5.1_The_Basics.pdf](https://github.com/world-class/notes/tree/master/level_4/discrete_mathematics/students_notes/sukhjit_mann/Discrete_Maths_Week-9_5.1_The_Basics.pdf) + +## On REPL + +- [Websites](../../../websites/README.md#discrete-mathematics) + + - **Algorithms** + - [Hopcroft-Karp algorithm - Bipartite Matching](https://www-m9.ma.tum.de/graph-algorithms/matchings-hopcroft-karp/index_en.html) - Interactive: _"Here we demonstrate the Hopcroft-Karp algorithm that solves the problem of finding maximal matchings on bipartite graphs."_ + - [VisuAlgo](https://visualgo.net/en) - Visualising data structures and algorithms through animation. + - **Binomial theorem** + - [Intro to the Binomial Theorem](https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:polynomials/x9e81a4f98389efdf:binomial/v/binomial-theorem) - Khan Academy + - **Graph theory** + - [D3 Graph Theory](https://d3gt.com) - _"Learn graph theory interactively."_ + - [Matching (Graph Theory)](https://brilliant.org/wiki/matching) - _"Definition, terminology, bipartite matching, examples."_ + - **Rules of inference - logic proofs** + - [Rules of Inference and Logic Proofs](http://sites.millersville.edu/bikenaga/math-proof/rules-of-inference/rules-of-inference.html) - Covers modus ponens, modus tollens, disjunctive syllogism, De Morgan's law, biconditional, conjunctions, disjunctions, equivalences, double negation. + +- [YouTube](../../../youtube/README.md#discrete-mathematics) + - **Algorithms** + - [Algorithms: Graph Search, DFS and BFS](https://www.youtube.com/watch?v=zaBhtODEL0w) - HackerRank + - [Breadth-First Search (BFS) algorithm](https://www.youtube.com/watch?v=s-CYnVz-uh4) - MIT OpenCourseWare + - [Depth-First Search (DFS), Topological Sort](https://www.youtube.com/watch?v=AfSk24UTFS8) - MIT OpenCourseWare + - [Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search](https://www.youtube.com/watch?v=pcKY4hjDrxk) - Abdul Bari + - [Maximum Matching Algorithm](https://www.youtube.com/watch?v=gbasc4F-7hk) - HEGARTYMATHS + * **Dijkstra's algorithm** + - [Dijkstra's Shortest Path Algorithm | Graph Theory](https://www.youtube.com/watch?v=pSqmAO-m7Lk) - WilliamFiset + - [Graph Data Structure 4. Dijkstra’s Shortest Path Algorithm](https://www.youtube.com/watch?v=pVfj6mxhdMw) - Computer Science + - [Dijkstra's algorithm in 3 minutes — Review and example](https://www.youtube.com/watch?v=_lHSawdgXpI) - Michael Sambol + * **Hopcroft–Karp algorithm** + - [Hopcroft karp Algorithm explanation](https://www.youtube.com/watch?v=OhtWajIAU-M) - Holly Baker + - [Hopcroft-Karp Algorithm](https://www.youtube.com/watch?v=0GNYjXUPTFM) - Samuel Russell + - [Hopcroft–Karp algorithm](https://www.youtube.com/watch?v=lM5eIpF0xjA) - Joromy Bou Khalil + * **Kruskal’s algorithm** + - [Kruskal's algorithm in 2 minutes — Review and example](https://www.youtube.com/watch?v=71UQH7Pr9kU) - Michael Sambol + - [Kruskal’s Algorithm for Minimum Spanning Tree](https://www.youtube.com/watch?v=3rrNH_AizMA) - GeeksforGeeks + * **Prim's algorithm** + - [Prim's algorithm in 2 minutes — Review and example](https://www.youtube.com/watch?v=cplfcGZmX7I) - Michael Sambol + * [Computer Sc - Discrete Mathematical Structures](https://www.youtube.com/view_play_list?p=0862D1A947252D20) (playlist) - Kamala Krithivasan + * [Discrete Math 1: Sets, propositional logic, factorials, permutations, combinations, proofs, mathematical induction, injective/surjective/bijective functions, inverse functions, algorithms](https://www.youtube.com/watch?v=tyDKR4FG3Yw&list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz) (playlist) - TheTrevTutor + * [Discrete Math 2: Permutations, combinations, probability, graph theory, trees, Dijkstra's Algorithm](https://www.youtube.com/watch?v=DBugSTeX1zw&list=PLDDGPdw7e6Aj0amDsYInT_8p6xTSTGEi2) (playlist) - TheTrevTutor + * [Discrete Math I](https://www.youtube.com/watch?v=OApHaIMKMJE&list=PLl-gb0E4MII0L5lz8uQ8j5aSFQQHoAzXx) (playlist) - Kimberly Brehm + * [Discrete mathematics](https://www.youtube.com/watch?v=2juspgYR7as&list=PLsFENPUZBqioyqffh3YZ2pKUg4uZFQJUY) (playlist) - GATEBOOK Video Lectures + * Recurrence relations: see lectures 14-15 of [Mathematics for Computer Science (2010)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B) (playlist) - MIT OpenCourseWare + * [Sets, sequences, functions, summations, matrices, algorithms](https://www.youtube.com/watch?v=ZMhoRLGNR5Y&list=PLl-gb0E4MII0HmmhGXBIFGppSSqqy_mV-) (playlist) - Kimberly Brehm + * [Strong Induction Examples](https://www.youtube.com/watch?v=6O1s3_GsSHo) - Michael Barrus + * [The Karnaugh Map - Rules of Simplification](https://www.youtube.com/watch?v=PA0kBrpHLM4) - Jonnie Palmer + * [Transitive closure](https://www.youtube.com/watch?v=OO8Jfs9uZnc) - GVSUmath + +## Supplementary videos + +| Weeks in the module | Resource | +| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1 & 2 Sets | [TheTrevTutor DM Video 1-9](https://www.youtube.com/playlist?list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz) | +| 3 & 4 Functions | [TheTrevTutor DM Video 51-56](https://www.youtube.com/playlist?list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz) | +| 5 & 6 Propositional logic | [Introduction to mathematical thinking (0.0 - 4.3)](https://www.youtube.com/playlist?list=PL_onPhFCkVQiZgE9U539_QmKLJV_0YvlQ) | +| 7 & 8 Predicate logic | [Introduction to mathematical thinking (5.1 - 6.4)](https://www.youtube.com/playlist?list=PL_onPhFCkVQiZgE9U539_QmKLJV_0YvlQ) | +| 9 & 10 Boolean Algebra | [Karnaugh maps - (watch 4.2.1 - 4.2.5)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2017/c4/c4s2/) | +| 11 & 12 Induction and recursion | _ [Introduction to mathematical thinking (7.1 - 8.4)](https://www.youtube.com/playlist?list=PL_onPhFCkVQiZgE9U539_QmKLJV_0YvlQ)
_ [Math for CS - MIT (Lecture 1, 2, 3, 14 and 15 and reading from MCS notes)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/) | +| 13 & 14 Graphs | _ [Math for CS - MIT (Lecture 6 to 10 and reading from MCS notes)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/)
_ [FreeCodeCamp - Algorithms Course - Graph Theory Tutorial from a Google Engineer](https://www.youtube.com/watch?v=09_LlHjoEiY) (focuses more on implementation than theory) | +| 15 & 16 Trees | Partly covered in Math for CS - MIT videos for 13/14. | +| 17 & 18 Relations | [Math for CS - MIT (Lecture 11 and reading from MCS notes)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/) | +| 19 & 20 Combinatorics | [Math for CS - MIT (Lecture 16 and 17 and reading from MCS notes)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/) | + +## Weekly readings + +- [Reading by weeks and topics PDF](https://github.com/world-class/binary-assets/blob/master/modules/cm1020_dm/DM_Reading.pdf) diff --git a/modules/level_4/fundamentals_of_computer_science/README.md b/modules/level_4/fundamentals_of_computer_science/README.md new file mode 100644 index 00000000..c08a5c4a --- /dev/null +++ b/modules/level_4/fundamentals_of_computer_science/README.md @@ -0,0 +1,131 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Fundamentals of Computer Science](#fundamentals-of-computer-science) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Complementary learning](#complementary-learning) + - [Essential reading](#essential-reading) + - [Textbooks solutions](#textbooks-solutions) + - [Discrete Mathematics and its Applications](#discrete-mathematics-and-its-applications) + - [Introduction to Automata Theory, Languages, and Computation](#introduction-to-automata-theory-languages-and-computation) + - [Notes](#notes) + - [Sample Paper with solutions](#sample-paper-with-solutions) + - [March 2020](#march-2020) + - [Study guide](#study-guide) + - [Weekly reading list](#weekly-reading-list) + - [Supplementary Videos](#supplementary-videos) + +--- + +# Fundamentals of Computer Science + +In this module, you'll gain a broad understanding of key topic areas in +computer science and the fundamental concepts underpinning them. In the +area of fundamental concepts, you'll learn about binary representations +and logic, complexity theory and theories of computation, finite state +machines and Turing machines. Building on this, you'll then study key +areas of interest in computer science including databases, artificial +intelligence and machine learning. These will be presented as practical +examples to illustrate how they are implemented in modern computer +systems. + +# Topics covered + +- Boolean logic +- Algorithms +- Searching and sorting algorithms +- Theory of Computation and complexity +- Turing machines and universal machines +- Basic combinatorial principles +- Proof techniques +- Finite automata +- Regular languages +- Context-free grammar + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1025_FCS.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1025_FCS.pdf) + +# Resources + +## Complementary learning + +- Highly recommended for week 7 onwards: [lectures](https://web.cs.ucdavis.edu/~rogaway/classes/120/spring14/) and [videos](https://www.cs.ucdavis.edu/~rogaway/classes/120/fall12/lectures.html) from Prof. Michael Harrison. +- [Context-free grammar tool](https://web.stanford.edu/class/archive/cs/cs103/cs103.1156/tools/cfg/) +- [Context-Free Grammar with Daniel Shiffman](https://shiffman.net/a2z/cfg/) - A fun way to understand CFG with real-world examples and programming. +- [Easy Theory](https://www.youtube.com/c/EasyTheory/playlists) - _"This is a channel about making Computer Science theory as easy as possible."_ Relevant for this course as well as [Algorithms and Data Structures I](../algorithms_and_data_structures_i/README.md). +- [Great Ideas in Theoretical Computer Science](https://www.youtube.com/watch?v=khyrgbiz20o&list=PLm3J0oaFux3aafQm568blS9blxtA_EWQv) - Complementary topics, including proofs, deductive systems, logic, finite automata, Turing, time complexity, graph algorithms, etc. +- [Guide to Negating Formulas](http://web.stanford.edu/class/archive/cs/cs103/cs103.1182/notes/Guide%20to%20Negating%20Formulas.pdf) (propositional logic) - stanford.edu +- [Introduction to Theoretical Computer Science](https://introtcs.org/public/index.html) +- [Truth Table Generator](https://web.stanford.edu/class/cs103/tools/truth-table-tool/) + +## Essential reading + +_"Specific essential readings for each week from the following list are included in the Readings page for each week:_" + +- Kenneth H. Rosen (2011). Discrete Mathematics and its Applications, 7th. McGraw-Hill +- :key: Michael Sipser (2012). Introduction to the theory of computation, 3rd. Cengage Learning +- :key: John Hopcroft et al. (2013). Introduction to Automata Theory, Languages and Computation, Pearson +- Dexter Kozen (2007). Automata and Computability, 1st. Springer +- Merlin Forbes (2012). A Theoretical Introduction to Turing Machine, 1st. Learning Press +- Shi-Kui Chang (2003). Data Structures and Algorithms, 1st. World Scientific Publishing Co + +### Textbooks solutions + +#### Discrete Mathematics and its Applications + +- [7th Edition (2012) - written explanations on Slader.com](https://www.slader.com/textbook/9780073383095-discrete-mathematics-with-applications-7th-edition) +- [8th Edition (2018) - step-by-step solutions in videos on Numerade.com](https://www.numerade.com/books/discrete-mathematics-and-its-applications/) + +#### Introduction to Automata Theory, Languages, and Computation + +- [Solutions to Selected Exercises - stanford.edu](http://infolab.stanford.edu/~ullman/ialcsols/sols.html) + +## Notes + +- [students_notes/arjun_muralidharan/CM1025_FCS.pdf](https://github.com/world-class/notes/tree/master/level_4/fundamentals_of_computer_science/students_notes/arjun_muralidharan/CM1025_FCS.pdf) +- [students_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_4/fundamentals_of_computer_science/students_notes/felipe_balbi/notes.pdf) +- [students_notes/katherine_lambert/KL-1-12.pdf](https://github.com/world-class/notes/tree/master/level_4/fundamentals_of_computer_science/students_notes/katherine_lambert/KL-1-12.pdf) + +## Sample Paper with solutions + +### March 2020 + +- [FCS sample paper (mock)](https://github.com/world-class/binary-assets/blob/master/modules/cm1025_fcs/FCS_Mock_exam_Mar_2020.pdf) + - [Solutions (by students)](https://docs.google.com/document/d/1Pb86mf6FsSjkWS4qbh6B05EISP3KTbkQL46MZxvQ9qk/edit) +- [FCS past exam March 2020](https://github.com/world-class/binary-assets/blob/master/modules/cm1025_fcs/CM1025_Exam_Questions_March_2020.pdf) + - [Solutions (by students)](https://docs.google.com/spreadsheets/d/1YTfRO7cipoxUuxuYfWQrXslwBeJJ9Mlj3T9K3CNYl0w/edit#gid=0) + +## Study guide + +- [Resources compiled by Hassan Sarhan](https://github.com/h-sarhan/FCS-study-guide). + +## Weekly reading list + +- [Weekly reading list PDF](https://github.com/world-class/binary-assets/blob/master/modules/cm1025_fcs/FCS_reading_list.pdf) + +## Supplementary Videos + +Following are supplementary videos for Theory of computation part of the module (week 7-14) for week 1-6 refer NM/DM material and for week 15-20 refer ADS1 material. + +- [Basics: Proofs](https://www.youtube.com/playlist?list=PLgKTLlHQn951DaIxphYta6OcAnTL77t4b) (YouTube playlist) +- [Mathematical Thinking - Keith Devlin](https://www.youtube.com/playlist?list=PL_onPhFCkVQiZgE9U539_QmKLJV_0YvlQ) (YouTube playlist) +- [Portland State university - YouTube - Harry Porter - "Theory of Computation" (Uses Sipser book and paper+sharpie for teaching)](https://www.youtube.com/playlist?list=PLbtzT1TYeoMjNOGEiaRmm_vMIwUAidnQz) (YouTube playlist) +- [Pumping lemma (for regular languages)](https://www.youtube.com/watch?v=Ty9tpikilAo) - Neso Academy (YouTube video) +- [Pumping lemma for Regular](https://www.youtube.com/watch?v=g4e2RElzCSQ) - Didem Yalcin (YouTube video) +- [Stanford - Lagunita - Jeff Ullman - "Automata theory" (uses Hopcroft - Ullman book and slideshow based lectures)](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about) +- [UC Davis - YouTube - Dan Gusfield - "Theory of Computation" (Uses Sipser book and blackboard style lectures)](https://www.youtube.com/watch?v=GP21wU6R0-o&list=PLslgisHe5tBM8UTCt1f66oMkpmjCblzkt) (YouTube playlist) diff --git a/modules/level_4/how_computers_work/README.md b/modules/level_4/how_computers_work/README.md new file mode 100644 index 00000000..df73ab68 --- /dev/null +++ b/modules/level_4/how_computers_work/README.md @@ -0,0 +1,104 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [How Computers Work](#how-computers-work) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Essential reading](#essential-reading) + - [Kinks to be aware of](#kinks-to-be-aware-of) + - [Notes](#notes) + +--- + +# How Computers Work + +How Computers Work helps you understand and interact with computer +systems. The module will teach you how to use knowledge about +computational processes to analyse and explain the behaviour of computer +systems. It will use the concept of a Notional Machine, an abstract +representation of the functioning of a computer system, to help you to +reason about computer systems and predict their behaviour. You'll also +learn about typical computer system architectures, basic networking and +network services such as databases. + +# Topics covered + +- Introduction to Computer Science and Notional Machines +- Notional machines of web applications +- Data representations, data storage, compression +- Computer Architecture and Machine Language +- Operating Systems +- Operating System processes +- Networks +- The internet +- Data and Databases +- Machine Learning + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM1030_HCW-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1030_HCW.pdf) + +# Resources + +## Essential reading + +_"The essentials readings for this course will come from the following text book, which you will be able access from within some lessons on Coursera platform:_ + +_**Brookshear, J.G. and D. Brylow Computer science: an overview. (Harlow: Pearson Education, 2015) 12th edition (Global edition).**_ + +_This course does not require you to read the whole book; you will be given specific readings for each topic from these texts are listed with direct links on the Readings page for each topic._ + +_You will also be asked to do some independent research from online sources or using the University of London digital library."_ + +## Kinks to be aware of + +- [List of reported errors and bugs with the module](../../../kinks/level_4/how_computers_work/). + +## Notes + +- [students_notes/peter_houlihan/Notes 1-7.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/peter_houlihan/Notes_1-7.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_10_10.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_10_10.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_10_10.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_10_10.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_11_11.1-11.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_11_11.1-11.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_11_11.1-11.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_11_11.1-11.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_12_12.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_12_12.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_12_12.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_12_12.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_13_13.1-13.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_13_13.1-13.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_13_13.1-13.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_13_13.1-13.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_14_14.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_14_14.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_14_14.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_14_14.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_15_15.1-15.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_15_15.1-15.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_15_15.1-15.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_15_15.1-15.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_16_16.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_16_16.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_16_16.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_16_16.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_17_17.1-17.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_17_17.1-17.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_17_17.1-17.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_17_17.1-17.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_18_18.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_18_18.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_18_18.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_18_18.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_1_1.1_Abstraction.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_1_1.1_Abstraction.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_2_1.1_2.1-2.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_2_1.1_2.1-2.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_3_3.1-3.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_3_3.1-3.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_4_4.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_4_4.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_5_5.1-5.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_5_5.1-5.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_5_5.1-5.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_5_5.1-5.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_6_6.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_6_6.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_6_6.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_6_6.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_7_7.1-7.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_7_7.1-7.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_7_7.1-7.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_7_7.1-7.2.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_8_8.1-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_8_8.1-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_8_8.1.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_8_8.1.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_9_9.1-9.2-Reading.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_9_9.1-9.2-Reading.pdf) +- [students_notes/sukhjit_mann/How_Comps_Work_Week_9_9.1-9.2.pdf](https://github.com/world-class/notes/tree/master/level_4/how_computers_work/students_notes/sukhjit_mann/How_Comps_Work_Week_9_9.1-9.2.pdf) diff --git a/modules/level_4/introduction_to_programming_i/README.md b/modules/level_4/introduction_to_programming_i/README.md new file mode 100644 index 00000000..824f285b --- /dev/null +++ b/modules/level_4/introduction_to_programming_i/README.md @@ -0,0 +1,106 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Introduction to Programming I](#introduction-to-programming-i) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Essential reading](#essential-reading) + - [JavaScript](#javascript) + - [p5.js - JavaScript library](#p5js---javascript-library) + - [W3 Schools](#w3-schools) + - [Kinks to be aware of](#kinks-to-be-aware-of) + - [Notes](#notes) + - [On REPL (see relevant sections)](#on-repl-see-relevant-sections) + - [Sleuth assignments](#sleuth-assignments) + - [Tips & Tricks](#tips--tricks) + - [Utils and aids (student created)](#utils-and-aids-student-created) + - [Text editor](#text-editor) + +# Introduction to Programming I + +This module focuses on basic programming techniques. You'll learn +how to use the fundamental elements of computer programming such as +variables, conditionals, functions and loops. You'll learn how to +create interactive, graphical computer programs. You will also be +introduced to basic object-oriented programming techniques. + +# Topics covered + +- Your development environment +- Drawing in 2D +- Variables, Objects and Interaction +- Conditional Statements +- Basic loops and arrays +- Traversing with for loops +- Functions +- Advanced loops and arrays +- Extending Objects +- Constructor functions + +# Assessment + +Coursework only (Type II) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM1005_ITP1-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1005_ITP1.pdf) + +# Resources + +## Essential reading + +_"There is no required textbook for this module. The module draws on number of different, largely web-based, public resources as well as the resources produced as bespoke material for this module. The programming language is Javascript, with the p5js library used for graphical and interactive programming functionality. The main external resource is the set of online tutorials available from: [https://p5js.org/learn/](https://p5js.org/learn/)."_ + +_"Specific readings for each topic are listed with direct links to free online resources that provide additional material on the topics of this course."_ + +## JavaScript + +### p5.js - JavaScript library + +- [p5.js](https://p5js.org/) - Official website to find [the reference guide](https://p5js.org/reference) and an [online editor](https://editor.p5js.org/) to practice. Next step: [p5.js libraries](https://p5js.org/libraries/). + - [Examples](https://p5js.org/examples/) are also available to get started. +- [The Coding Train](https://www.youtube.com/user/shiffman/playlists) (playlists) - Channel from Daniel Shiffman, a board member of `p5.js`. + +### W3 Schools + +- [JavaScript Array Iteration Methods](https://www.w3schools.com/js/js_array_iteration.asp) - Will help in making your code more concise and readable. + +## Kinks to be aware of + +- [List of reported errors and bugs with the module](../../../kinks/level_4/introduction_to_programming_i/). + +## Notes + +- [students_notes/sukhjit_mann/week-1_Intro_to_p5.pdf](https://github.com/world-class/notes/tree/master/level_4/introduction_to_programming_i/students_notes/sukhjit_mann/week-1_Intro_to_p5.pdf) + +## On REPL (see relevant sections) + +- [Podcasts](../../../podcasts/) +- [Websites](../../../websites/) +- [YouTube](../../../youtube/) + +## Sleuth assignments + +### Tips & Tricks + +- Get familiar with finding precise coordinates in an image inside Brackets (text editor). +- Practice all basic drawing functions with `p5.js` in the [online editor](https://editor.p5js.org/) before attempting to solve crimes. +- You have a maximum number of attempts for each case: go ahead when you are pretty confident you are on the right path on your first attempt. You will have to wait a certain amount of time (about 24 hours) before you can attempt to solve the crime again. + +### Utils and aids (student created) + +- JavaScript library with visual aids for solving case 202 stage 4 [utils4sleuth.js](https://gist.github.com/amilos/beb1eee1cbd334f1e9abca8c9772c725). +- Python program to create directories for Sleuth cases [Make-Sleuth-Folders.py](https://github.com/BlairCurrey/Make-Sleuth-Folders) + +## Text editor + +The recommended text editor for this module is [Brackets](http://brackets.io/). More options available on the [free software page](../../../software/). diff --git a/modules/level_4/introduction_to_programming_ii/README.md b/modules/level_4/introduction_to_programming_ii/README.md new file mode 100644 index 00000000..45ac8f43 --- /dev/null +++ b/modules/level_4/introduction_to_programming_ii/README.md @@ -0,0 +1,86 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Introduction to Programming II](#introduction-to-programming-ii) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Articles](#articles) + - [Case studies](#case-studies) + - [Music visualizer](#music-visualizer) + - [Essential reading](#essential-reading) + - [Getting started with HTML](#getting-started-with-html) + - [Kinks to be aware of](#kinks-to-be-aware-of) + - [Notes](#notes) + +# Introduction to Programming II + +By taking this module, you will enhance your programming skills +through the development of a project. You will learn about producing +maintainable code, defensive coding techniques, program testing +techniques, cyclical approaches to software development, encapsulation, +developing code across multiple files and using third-party libraries. + +# Topics covered + +- Introduction to the project, +- Case study 1: Click & Point Adventure +- Case study 2: Interactive data visualisation +- Case study 3: Mobile Drawing App +- Planning your project: an iterative approach +- Libraries and APIs +- Structuring large programmes +- Maintainable code +- Testing and debugging +- Completing your project + +# Assessment + +Coursework only (Type III) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM1010_ITP2-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1010_ITP2.pdf) + +# Resources + +## Articles + +- [Understanding Automatic Semicolon Insertion in JavaScript](http://www.bradoncode.com/blog/2015/08/26/javascript-semi-colon-insertion/) +- [Your Guide to Semicolons in JavaScript](https://news.codecademy.com/your-guide-to-semicolons-in-javascript/) + +## Case studies + +### Music visualizer + +- [But what is the Fourier Transform? A visual introduction](https://www.youtube.com/watch?v=spUNpyF58BY) - YouTube video - 3Blue1Brown + +## Essential reading + +_"There is no required textbook for this course. Listed below are some books to supplement some of the material covered in this course."_ + +- **Getting Started with p5.js Lauren McCarthy, Casey Reas, and Ben Fry** +- **The Pragmatic Programmer – Your Journey to Mastery, by David Thomas, Andrew Hunt** +- **Coders at Work: Reflections on the Craft of Programming, by Peter Seibel** + +## Getting started with HTML + +- [Getting started with the web](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web) +- [HTML5 tutorial](https://www.w3schools.com/html/default.asp) +- [Responsive website basics: code with HTML, CSS, and JavaScript](https://www.coursera.org/learn/website-coding) (Coursera) + +## Kinks to be aware of + +- [List of reported errors and bugs with the module](../../../kinks/level_4/introduction_to_programming_ii/). + +## Notes + +- [students_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_4/introduction_to_programming_ii/students_notes/felipe_balbi/notes.pdf) diff --git a/modules/level_4/web_development/README.md b/modules/level_4/web_development/README.md new file mode 100644 index 00000000..8bdb873a --- /dev/null +++ b/modules/level_4/web_development/README.md @@ -0,0 +1,107 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Web Development](#web-development) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Awesome learning resources](#awesome-learning-resources) + - [Essential reading](#essential-reading) + - [Games](#games) + - [Kinks to be aware of](#kinks-to-be-aware-of) + - [On REPL (See sections on Web development)](#on-repl-see-sections-on-web-development) + - [Programming](#programming) + - [JavaScript](#javascript) + +--- + +# Web Development + +This module provides you with a foundational web development skillset. +You will learn the critical languages of the web: HTML, CSS and +JavaScript. Using HTML and CSS, you'll learn how to markup, layout and +style web content. You'll study the document object model and how you +can dynamically manipulate it with JavaScript to create interactive web +pages. You'll consider accessibility and usability issues, and how you +can overcome them. You'll learn about website deployment and how to +make your websites accessible to other people. The module also enables +you to present your work online in the form of a website. + +Enrolled students only: [Course syllabus available on Coursera](https://www.coursera.org/learn/london-cs-orientation/supplement/p88ho/syllabus-web-development-cm1040). + +# Topics covered + +- Introduction to Web Development +- Web Site Design +- Essential HTML +- Introduction to CSS +- Positioning in Styling & Design +- Responsive CSS +- Introduction to JavaScript for the Web +- Manipulating the DOM using JavaScript +- JavaScript Libraries +- Web Hosting & Professional Practices + +# Assessment + +Coursework only (Type III) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1040_WD.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM1040_WD.pdf) + +# Resources + +## Awesome learning resources + +- [awesome-learning-resources](https://github.com/lauragift21/awesome-learning-resources) - GitHub awesome list. [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +## Essential reading + +_"There is no required textbook for this module. The module will draw on a number of different, largely web-based, public resources as well as the resources produced as bespoke material for this module. Some key online references are:_ + +- W3 Schools Online Web Tutorials, http://www.w3schools.com +- Mozilla Developer Network Tutorials, https://developer.mozilla.org/ +- Marijn Haverbeke, 2012 "Eloquent JavaScript: A Modern Introduction to Programming" - free online text http://eloquentjavascript.net + +_Specific readings for each topic are listed with direct links to free online resources that provide additional material on the topics of this course."_ + +## Games + +- [CSS Diner](https://flukeout.github.io/) - _"A fun game to help you learn and practice CSS selectors."_ +- [Flexbox Froggy](http://flexboxfroggy.com/) - _"A game for learning CSS flexbox."_ +- [Flexbox Zombies](https://flexboxzombies.com/p/flexbox-zombies) - _"Master Flexbox layout: a game by geddski."_ +- [Grid Critters](https://gridcritters.com/) - _"Completely learn CSS Grid once and for all."_ +- [Grid Garden](https://codepip.com/games/grid-garden/) - _"How well can you tend to your carrot garden using CSS grid? In this game, you must water your carrot crops and poison the weeds by mastering CSS grid, a powerful new module that makes 2-dimensional grid layouts a piece of cake. With it you can define columns, rows, and grid template areas."_ +- [Service Workies](https://serviceworkies.com/) - _"Learn Service Workers inside and out with the new game of Service Worker mastery."_ + +## Kinks to be aware of + +- [List of reported errors and bugs with the module](../../../kinks/level_4/web_development/). + +## On REPL (See sections on Web development) + +- [Podcasts](../../../podcasts/) +- [YouTube](../../../youtube/) +- [Websites](../../../websites/) + +## Programming + +- [Mozilla Developer Network Tutorials](https://developer.mozilla.org/) +- [W3 Schools Online Web Tutorials](http://www.w3schools.com/) + +### JavaScript + +- [Eloquent JavaScript](http://eloquentjavascript.net/), by Marijn Haverbeke. The book can be downloaded: + - [As PDF](http://eloquentjavascript.net/Eloquent_JavaScript.pdf); + - [As EPUB](https://eloquentjavascript.net/Eloquent_JavaScript.epub); + - [As MOBI](https://eloquentjavascript.net/Eloquent_JavaScript.mobi) (for Kindle). +- [Handlebars Training](https://www.youtube.com/playlist?list=PLtV5RF44Yj8S4RcpQehL-2XMuVsJXwNvK), by Rich Finelli (YouTube playlist) diff --git a/modules/level_5/agile_software_projects/README.md b/modules/level_5/agile_software_projects/README.md new file mode 100644 index 00000000..4d83a811 --- /dev/null +++ b/modules/level_5/agile_software_projects/README.md @@ -0,0 +1,69 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Agile Software Projects](#agile-software-projects) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Complementary learning](#complementary-learning) + - [Textbooks listed for this module](#textbooks-listed-for-this-module) + +--- + +# Agile Software Projects + +This module aims to provide insights and practice in software +development using contemporary methods to produce software that meets +the needs of users and supports an organisation’s business function. +The module will enable you to gain competence in the conceptualisation +of a technology-based solution to a real-world problem, fulfilling +the requirements of users and taking constraints imposed by the +prevailing and foreseen market conditions and lessons learned from +prototypes into account. You will then be given the opportunity to +present a proposal for a technical project including a structured plan +for implementing the solution using the agile development methodology +and test driven development practices. During the whole process from +concept to solution presentation, you will be required to work in a +distributed team using online collaboration, project tracking and +version control tools. + +# Topics covered + +- Project management & team working +- Requirements gathering & specification +- Market & solutions research +- User centred design & prototyping +- Project proposal +- Agile software development methodologies +- Test driven software development +- Software validation & user testing +- Professional practices +- Software documentation + +# Assessment + +Coursework only (Type III) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2020_ASP-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2020_ASP-Module-Spec.pdf) + +# Resources + +## Complementary learning + +- [Manifesto for Agile Software Development](https://agilemanifesto.org/) + +## Textbooks listed for this module + +- J. Preece, Y. Rogers and H. Sharp (2011), Interaction Design: Beyond Human-Computer Interaction, John Wiley & Sons +- D. Norman, 2013, The Design of Everyday Things, MIT Press +- Rob Cole and Edward Scotcher. Brilliant Agile Project Management. Pearson 2016 diff --git a/modules/level_5/algorithms_and_data_structures_ii/README.md b/modules/level_5/algorithms_and_data_structures_ii/README.md new file mode 100644 index 00000000..e2ae187f --- /dev/null +++ b/modules/level_5/algorithms_and_data_structures_ii/README.md @@ -0,0 +1,135 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Algorithms and Data Structures II](#algorithms-and-data-structures-ii) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [List of required reading](#list-of-required-reading) +- [Resources](#resources) + - [Complementary learning](#complementary-learning) + - [Mock exam](#mock-exam) + - [Solutions shared by students](#solutions-shared-by-students) + - [Notes](#notes) + - [Solutions to the textbook Introduction to Algorithms](#solutions-to-the-textbook-introduction-to-algorithms) + +--- + +# Algorithms and Data Structures II + +This module aims to provide you with detailed knowledge of several +common algorithms and data structures. You will improve your +understanding of searching and sorting and learn new algorithms to +solve new problems. You will learn about a range of data structures +such as trees, heaps, sets, maps, stacks, queues and graphs. You will +learn how to evaluate and describe the performance of algorithms +using big-O notation. You will learn: how to choose appropriate data +structures for representing problems, how to define and implement +algorithms for manipulating them, and how to analyse the correctness +and efficiency of algorithms. + +You will be expected to have mastered the material in Algorithms and +Data Structures I before attempting this module. + +# Topics covered + +- Complexity, growth of functions and big-O notation +- Stacks and queues +- Binary trees +- Heaps and priority queues +- Implicit array algorithms +- Recursion and Iteration +- Graphs and simple pathfinding +- Shortest-path algorithms +- Sets, maps and hash tables +- Collections + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2035_ADS2-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF September 2020](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM2035_ADS2.pdf) + + +# List of required reading + +Book - Cormen, T.H., C.E. Leiserson, R.L. Rivest and C. Stein Introduction to algorithms. (MIT Press, 2009) 3rd edition [ISBN 9780262533058]. + +| Week | Topic | Section | Page number | +| ---- | -------------------------------------- | ----------------------------------- | --------------------------------- | +| 1 | RAM Model | 2.2 | pp. 23-4 | +| 2 | Worst and average case analysis | | p. 27 | +| 2 | Asymptotic notation | 3.1 | 43-52 | +| 4 | Recursive algorithm and analysis | 2.3, ch. 4 (except 4.6) | pp. 29-37, pp. 65-113 | +| 5 | Insertion Sort | 2.1, 2.2 | pp. 16-22, pp. 23-9 | +| 6 | QuickSort | Ch.7, 7.1, 7.2 | pp. 170-3, pp. 174-8 | +| 6 | MergeSort | 2.3.1, 2.3.2 | pp. 30-34, pp. 34-37 | +| 7 | Lower bounds for comparison sorts | Chapter 8, 8.1 | pp. 191-3 | +| 7 | Counting Sort | 8.2 | pp 194-6 | +| 8 | Radix Sort | 8.3 | pp. 197-9 | +| 8 | Bucket Sort | 8.4 | pp. 200- | +| 9 | Hashing | 11 | pp. 253-285 | +| 13 | Linked Lists | definition of DS, 10.2 | p.9, pp.236-41 | +| 14 | Stacks and Queues | 10.1 | pp 232-5 | +| 16 | Binary search trees | ch. 12, 12.1, 12.2, 12.3 | pp. 286-8, pp. 289-92, pp.294-8 | +| 17 | Heaps, Heapsort and priority queues | Chapter 6 | pp. 151-69 | +| 19 | Graph representation, MST and Dijsktra | Ch.22- 22.1, Ch. 23, Ch 24-Ch. 24.3 | pp. 579-92, pp. 624-42, pp.658-66 | + +# Resources + +## Complementary learning + +- Courses + + - [Algorithmic Design and Techniques](https://courses.edx.org/courses/course-v1:UCSanDiegoX+ALGS200x+2T2017/course) - _edX platform, by UC San Diego_ + - [Data Structures Fundamentals](https://courses.edx.org/courses/course-v1:UCSanDiegoX+ALGS201x+1T2019/course) - _edX platform, by UC San Diego_ + - [Graph Algorithms](https://courses.edx.org/courses/course-v1:UCSanDiegoX+ALGS202x+2T2017/course) - _edX platform, by UC San Diego_ + +- Websites + + - [Algorithms in the "Real World" (2018)](http://www.cs.cmu.edu/~guyb/realworld.html) - Compression, error correcting codes, cryptography, parallel algorithms, locality and I/O efficient algorithms, indexing and searching, nearest neighbors, dimensionality reduction. + - [Comparison of Algorithms](https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms) - See time complexity at a glance for various popular algorithms. + - [Dictionary of Algorithms and Data Structures](https://xlinux.nist.gov/dads) - _"This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions."_ + - [Introduction to algorithms](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/) ([problem sets](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/assignments/)) - MIT OpenCourseWare. + - [Khan Academy - Algorithms](https://www.khanacademy.org/computing/computer-science/algorithms/) - _"We've partnered with Dartmouth college professors Tom Cormen and Devin Balkcom to teach introductory computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, quizzes, and coding challenges."_ + - [Skiena's Algorithms Lectures](https://www3.cs.stonybrook.edu/~algorith/video-lectures/) + + - Visualizations + - [HackerEarth](https://www.hackerearth.com/practice/algorithms/sorting/bubble-sort/visualize/) - Visualize sorting algorithms, step by step. + - [VisuAlgo](https://visualgo.net/en) - Visualising data structures and algorithms through animation. + +- Youtube + - [Alejandra Beghelli's channel](https://www.youtube.com/channel/UCJWZNQIKS9V5R3Wn42PMIIw/) - **Instructor for this module**. + - [Algorithm Design and Analysis](https://www.youtube.com/playlist?list=PL6EF0274BD849A7D5) (playlist) - UC Davis + - [Algorithmic Lower Bounds: Fun with Hardness Proofs](https://www.youtube.com/playlist?list=PLUl4u3cNGP63d33STUUBfZUpzFCVR5-PV) (playlist) - MIT OpenCourseWare - _"[...] summarizing the prerequisite complexity theory and featuring two examples of hardness proofs in games."_ + - [Algorithms Course - Graph Theory Tutorial from a Google Engineer](https://www.youtube.com/watch?v=09_LlHjoEiY) - freeCodeCamp.org + - [Algorithms for Big Data](https://www.youtube.com/playlist?list=PL2SOU6wwxB0v1kQTpqpuu5kEJo2i-iUyf) (playlist) - Harvard University + - [Asymptotic Bounding 101: Big O, Big Omega, & Theta (Deeply Understanding Asymptotic Analysis)](https://www.youtube.com/watch?v=0oDAlMwTrLo) - Back To Back SWE + - [Asymptotic Notation Recurrences Substitution Master Method](https://www.youtube.com/watch?v=whjt_N9uYFI) - MIT OpenCourseWare + - [Introduction to algorithms](https://www.youtube.com/watch?v=0IAPZzGSbME&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O) (playlist) - Abdul Bari + - [Introduction to algorithms](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) (playlist) - MIT OpenCourseWare + +## Mock exam + +- [Mock exam, 2020](https://github.com/world-class/binary-assets/blob/master/modules/cm2035_ads2/CM2035-ADS2_MOCK_Exam.pdf) + +### Solutions shared by students + +- Solutions to the mock exam are available in this [Google Sheets document](https://docs.google.com/spreadsheets/d/1llp2ReT4yWXPnoM9vuJM5FtCZdSKhgbwe0CUsbUTVJA/edit?usp=sharing). + +## Notes + +- [student_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_5/algorithms_and_data_structures_ii/student_notes/felipe_balbi/notes.pdf) + +## Solutions to the textbook Introduction to Algorithms + +- [CLRS Solutions](https://sites.math.rutgers.edu/~ajl213/CLRS/CLRS.html) - Michelle Bodnar, Andrew Lohr diff --git a/modules/level_5/computer_security/README.md b/modules/level_5/computer_security/README.md new file mode 100644 index 00000000..b17e50a0 --- /dev/null +++ b/modules/level_5/computer_security/README.md @@ -0,0 +1,41 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Computer Security](#computer-security) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) + +--- + +# Computer Security + +This module aims to provide you with an understanding of the need for +computer security and the technologies that support it. It has both a +theoretical component that will teach you mathematical underpinnings +of security systems and a practical element that will help you +discover the pitfalls of security design and to comprehend the +mathematics underlying the protocols by programming small examples. + +# Topics covered + +- Security threats +- Social Issues in Computer Security +- Access Control and Authentication +- Security Models +- Operating System Security +- Network security +- Cryptography +- Cryptographic protocols and key management +- Public Key Cryptography +- Blockchain protocols + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2025_CS-Module-Spec.pdf) diff --git a/modules/level_5/databases_networks_and_the_web/README.md b/modules/level_5/databases_networks_and_the_web/README.md new file mode 100644 index 00000000..bedea414 --- /dev/null +++ b/modules/level_5/databases_networks_and_the_web/README.md @@ -0,0 +1,63 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Databases, Networks and the Web](#databases-networks-and-the-web) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Notes](#notes) + - [Websites](#websites) + +--- + +# Databases, Networks and the Web + +In this module, you will learn theory and practical skills focused +on the modern web, internet and client-server applications. You will +learn about relational database systems, mainly from a development +perspective, emphasising issues related to data modelling and +database implementation in SQL. You will learn how to model data in a +database, retrieve data from the database and provide access to data +through dynamic websites. In particular, you will learn about the +Relational Model, Query processing, and socket architectures to enable +communication. + +# Topics covered + +- Networking concepts +- Building Simple socket clients and servers +- Building an HTTP server +- Generating web pages from data using templates +- Relational Databases +- Querying a database +- Representing data in a database +- Representing data in a database pt 2 +- Revision of HTML and CSS +- Building a dynamic website + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2040_DNW-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM2040_DNW.pdf) + +# Resources + +## Notes + +- [student_notes/arjun_muralidharan/CM2040_DNW_Summary.pdf](https://github.com/world-class/notes/tree/master/level_5/databases-networks-and-the-web/student_notes/arjun_muralidharan/CM2040_DNW_Summary.pdf) +- [student_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_5/databases-networks-and-the-web/student_notes/felipe_balbi/notes.pdf) + +## Websites + +- [SQL Zoo - for interactive SQL practice problems](https://sqlzoo.net/) diff --git a/modules/level_5/graphics_programming/README.md b/modules/level_5/graphics_programming/README.md new file mode 100644 index 00000000..08725ab2 --- /dev/null +++ b/modules/level_5/graphics_programming/README.md @@ -0,0 +1,54 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Graphics Programming](#graphics-programming) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Notes](#notes) + +--- + +# Graphics Programming + +This module aims to show you how to work with images in a variety of +ways. You will learn how to synthesise graphics and how to process +visual signals. You will learn about the mathematical ideas that +underpin digital representations of graphics; how digital media files +represent graphics, and how to handle and manipulate them; and the +basics of working with simulated physics and 3D graphics. + +# Topics covered + +- Introduction to graphics +- Coordinate transformations +- Number generators: noise/sine +- Images, pixels, colors +- Image processing +- Computer Vision: introduction +- Computer Vision: advanced +- Simulating physical systems +- 3D graphics +- Recap and review + +# Assessment + +Coursework only (Type II) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2030_GP-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM2030_GP.pdf) + +# Resources + +## Notes + +- [student_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_5/graphics_programming/student_notes/felipe_balbi/notes.pdf) diff --git a/modules/level_5/object_oriented_programming/README.md b/modules/level_5/object_oriented_programming/README.md new file mode 100644 index 00000000..07431eee --- /dev/null +++ b/modules/level_5/object_oriented_programming/README.md @@ -0,0 +1,91 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Object-Oriented Programming](#object-oriented-programming) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Linux setup guide for OOP projects](#linux-setup-guide-for-oop-projects) + - [Class diagram of starter code](#class-diagram-of-starter-code) + - [Complementary learning](#complementary-learning) + - [C++](#c) + - [Notes](#notes) + - [On REPL](#on-repl) +- [IDE warning](#ide-warning) + +--- + +# Object-Oriented Programming + +This module will provide you with an object-oriented programming +skillset. You'll learn what objects and classes are and how to +write classes. You'll see how objects can interact with each +other, including defining and implementing interfaces to control +the interaction. You'll learn how to use inheritance to extend +functionality from parent classes. You'll learn how to write +code according to style guidelines and how to write formal code +documentation. + +# Topics covered + +- Variable and types +- Control flow: conditionals and iteration +- Functions +- Objects and classes +- Interaction between objects +- Inheritance: extending a parent class +- Inheritance: defining a class hierarchy +- Code documentation and style +- Abstraction and polymorphism: implementing an abstract class +- Abstraction and polymorphism: defining an interface + +# Assessment + +Coursework only (Type II) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2005_OOP-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM2005_OOP.pdf) + +# Resources + +- :star: [Sourcetrail](https://www.sourcetrail.com) (Windows, macOS, Linux) - _"Free and open-source cross-platform source explorer"_. Supports C, C++, Java and Python. + +## Linux setup guide for OOP projects + +Refer [Linux setup guide](https://github.com/world-class/binary-assets/blob/master/modules/cm2005_oop/linux_guide.md) + +## Class diagram of starter code + +![class diagram of starter code](https://github.com/world-class/binary-assets/blob/master/modules/cm2005_oop/class_diagram_starter_code.png?raw=true) + +## Complementary learning + +- [Binary Data Representation](http://web.cecs.pdx.edu/~harry/videos-binary/) - Prof. Harry H. Porter III, Ph.D., Portland State University. +- [Software Design Principles](http://principles-wiki.net/start) - Principles Wiki. + +### C++ + +- [C++](https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb) - Playlist by The Cherno + +## Notes + +- [student_notes/alex_f/notes.md](https://github.com/world-class/notes/tree/master/level_5/object-oriented-programming/student_notes/alex_f/notes.md) +- [student_notes/felipe_balbi/notes.pdf](https://github.com/world-class/notes/tree/master/level_5/object-oriented-programming/student_notes/felipe_balbi/notes.pdf) + +## On REPL + +- [YouTube](../../../youtube/README.md). + - [C++](../../../youtube/README.md#c-2). + +# IDE warning + +The programme's director said that "_you cannot do the work in the second half of the course in Windows with VSCode, so people would need to install Visual Studio eventually anyway._" diff --git a/modules/level_5/programming_with_data/README.md b/modules/level_5/programming_with_data/README.md new file mode 100644 index 00000000..1c03b4a4 --- /dev/null +++ b/modules/level_5/programming_with_data/README.md @@ -0,0 +1,55 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Programming with Data](#programming-with-data) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) +- [Syllabus](#syllabus) +- [Resources](#resources) + - [Complementary learning](#complementary-learning) + +--- + +# Programming with Data + +This module will show you how to work with data: getting data from a +variety of sources, visualising data in compelling, informative ways, +processing data to make it useful and shareable, and reasoning with +data to test hypotheses and make parameterised predictions. The module +will also introduce you to a new language and programming environment +that is well-adapted to languages for these applications. + +# Topics covered + +- Setting up the programming environment +- Control structures, functions and comprehensions +- Data-driven programming +- Visualising data +- Descriptive statistics +- Getting data +- Processing data: cleaning, normalizing, and scaling +- Classification with K-nearest neighbours +- Bayes' theorem and naïve Bayes classification +- Clustering + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2015_PWD-Module-Spec.pdf) + +# Syllabus + +- [Syllabus PDF (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/syllabi/Syllabus_CM2015_PWD.pdf) + +# Resources + +## Complementary learning + +- [Foundations of Data Science: K-Means Clustering in Python](https://www.coursera.org/learn/data-science-k-means-clustering-python) - Coursera, by Dr Matthew Yee-King +3 more instructors. +- [Learn Python, Data Viz, Pandas & More on Kaggle](https://www.kaggle.com/learn/overview) diff --git a/modules/level_5/software_design_and_development/README.md b/modules/level_5/software_design_and_development/README.md new file mode 100644 index 00000000..745a3e89 --- /dev/null +++ b/modules/level_5/software_design_and_development/README.md @@ -0,0 +1,48 @@ +[Go back to the main page](../../../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Software Design and Development](#software-design-and-development) +- [Topics covered](#topics-covered) +- [Assessment](#assessment) +- [Module specification](#module-specification) + +--- + +# Software Design and Development + +This module aims to advance your software development skills so that +you can write more robust and complicated programs. You will learn +how to use a range of programming techniques that will allow you to +deal with unwanted or unexpected events that might happen when your +application is running. You will use defensive coding to check data +before processing it, and exception handling to gracefully manage +unforeseen or unwanted occurrences. You will learn how to discuss +program structure concerning cohesion (how to meaningfully organise +code into modules) and coupling (how to define the interactions +between different parts of the program). You will learn about +test-driven development, where you write tests for your code, and +write the code itself, in parallel. You will also learn how to use +software versioning tools to manage a software project as it develops. + +# Topics covered + +- Language primer 1: variables and conditionals +- Language primer 2: control flow +- Language primer 3: functions +- Version Control +- Collaboration using version control +- Module coupling and cohesion +- Unit Testing +- Test driven development +- Defensive coding +- Exception handling + +# Assessment + +One two hour unseen written examination and coursework (Type I) + +# Module specification + +- [Module specification (September 2020)](https://github.com/world-class/binary-assets/blob/master/modules/module_specification/CM2010_SDD-Module-Spec.pdf) diff --git a/modules/level_6/cm_3005/README.md b/modules/level_6/cm_3005/README.md new file mode 100644 index 00000000..05032c4c --- /dev/null +++ b/modules/level_6/cm_3005/README.md @@ -0,0 +1,29 @@ +[Go back to the main page](../../../README.md) + +## Data Science (CM3005) + +By taking this module, you will gain a data science skillset. With +these skills, you will be able to write computer programs that can +read, process and analyse textual and numerical data. You will be able +to generate plots and interactive visualisations of data. You will +understand how to apply statistical methods to the interpretation of +results. You will be able to use data analysis in the decision-making +process. You will also learn about a range of application domains for +data science. + +### Topics covered + +- Introduction and development environment +- Working with different types of data +- Correlation and regression +- Distributions and significance +- Processing text data +- Decision making based on data analysis: from correlation to causation +- Introduction to data visualisation +- Time-series data visualisation +- Scientific data visualisation +- Case studies: different contexts for data analysis + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3010/README.md b/modules/level_6/cm_3010/README.md new file mode 100644 index 00000000..ea33982f --- /dev/null +++ b/modules/level_6/cm_3010/README.md @@ -0,0 +1,28 @@ +[Go back to the main page](../../../README.md) + +## Databases and Advanced Data Techniques (CM3010) + +This module aims to show you how to work with data in your computer +programs. You will learn how to use SQL and NoSQL databases to store +tabular data and documents. You will learn about the ethics of gathering +and processing data and why it is important to consider issues around +data security. You will learn about open data resources, and how you can +access them from your computer programs. You will learn about audio and +video data, and the challenges of working with this kind of data. + +### Topics covered + +- Open data sources: different data formats +- Gathering and cleaning data +- The ethics of working with data +- SQL: advanced data representation +- SQL: advanced queries and linking +- NoSQL and document stores +- NoSQL and data pipelines +- Speeding up queries with indexes +- Audio and video data +- Data security + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3015/README.md b/modules/level_6/cm_3015/README.md new file mode 100644 index 00000000..dbcccdb3 --- /dev/null +++ b/modules/level_6/cm_3015/README.md @@ -0,0 +1,29 @@ +[Go back to the main page](../../../README.md) + +## Machine Learning and Neural Networks (CM3015) + +This module provides a broad view of machine learning and neural +networks. You will learn how to solve common machine learning problems +such as regression, classification, clustering, matrix completion and +pattern recognition. You will learn about neural networks and how they +can be trained and optimised, including an exploration of deep neural +networks. You will learn about machine learning and neural network +software libraries that allow you to develop machine learning systems +rapidly, and you will learn how to verify and evaluate the results. + +### Topics covered + +- Regression and classification +- Features and distances +- Supervised clustering +- Evaluation: accuracy, precision, recall and cross validation +- Dimensional reduction: principal component analysis +- Matrix completion +- Unsupervised clustering +- Multi-Layer Perceptrons and back progagation +- Network optimisers +- Deep and recurrent networks + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3020/README.md b/modules/level_6/cm_3020/README.md new file mode 100644 index 00000000..8c14db4c --- /dev/null +++ b/modules/level_6/cm_3020/README.md @@ -0,0 +1,28 @@ +[Go back to the main page](../../../README.md) + +## Artificial Intelligence (CM3020) + +This module is focused on Artificial Intelligence techniques. You +will understand the historical development of Artificial Intelligence +including search, vision and planning. You will become familiar with +the foundations of agent-based approaches to software design, decision +making and problem solving including under uncertainty. You will have an +opportunity to apply Artificial Intelligence techniques to particular +problems such as game playing and decision making. + +### Topics covered + +- Historical overview of Artificial Intelligence. +- Intelligent agents and environments (Part 1) +- Intelligent agents and environments (Part 2) +- Problem solving +- Knowledge representation, ontologies +- Uncertain knowledge and reasoning under uncertainty. +- Games and optimal decisions in games (Part 1) +- Games and optimal decisions in games (Part 2) +- Robotics +- Advanced Topics in AI + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3025/README.md b/modules/level_6/cm_3025/README.md new file mode 100644 index 00000000..4b9f5c37 --- /dev/null +++ b/modules/level_6/cm_3025/README.md @@ -0,0 +1,33 @@ +[Go back to the main page](../../../README.md) + +## Virtual Reality (CM3025) + +The module will combine the theory and psychology of VR with practical +development skills. You will learn the skills needed to design +compelling VR environments and the skills that apply to creative +practice, science and industry. + +This module aims to give you the skills needed to develop VR. These +skills include understanding the basic theory of presence in VR, +which underlies the basic design principles. You will also learn +practical development skills, using an appropriate 3D engine to create +interactive virtual environments. These skills will include creating +3D environments, designing and implementing 3D interaction for VR and +building social VR experiences with interactive virtual characters. + +### Topics covered + +- Introduction to Virtual Reality: History of VR, VR Hardware and applications +- Presence: the three illusions of VR +- 3D graphics for VR +- Immersive Sound for VR +- Interaction Design in VR +- Navigation +- Object Interaction and physics +- Virtual Characters +- Social VR +- Developing a VR project + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3030/README.md b/modules/level_6/cm_3030/README.md new file mode 100644 index 00000000..52448875 --- /dev/null +++ b/modules/level_6/cm_3030/README.md @@ -0,0 +1,39 @@ +[Go back to the main page](../../../README.md) + +## Games Development (CM3030) + +This module will introduce you to i) industry standard tools for +game development, such as game engines, and ii) the process of game +development, including prototyping and playtesting. You will undertake +a short series of game development projects, each lasting a set number +of weeks and with a specific brief. For each project, you will propose +a game that fits the brief, and then you will implement it. You are +expected to deliver the proposed game and document it thoroughly. +Through this process, you will develop an awareness of intended audience +and the use of media for documentation. + +Contemporary video game production draws on a range of techniques from +artificial intelligence (AI) to perform tasks such as controlling +virtual agents and generating novel game content. This module will also +introduce crucial game AI concepts. Compared to mainstream AI, the +emphasis is less on optimal problem solving and more on entertaining the +player with limited computational resources. This module gives students +practical experience of programming game AI systems and an understanding +of the relevant theory. + +### Topics covered + +- Introduction to game development, the games industry and game engines +- Creating sprite based 2D +- Scripting game interaction +- 2D physics and collision +- Game Design +- Developing a Game project +- State Machines +- Pathfinding +- Behaviour Trees +- Recap and review + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3035/README.md b/modules/level_6/cm_3035/README.md new file mode 100644 index 00000000..ffd31247 --- /dev/null +++ b/modules/level_6/cm_3035/README.md @@ -0,0 +1,32 @@ +[Go back to the main page](../../../README.md) + +## Advanced Web Development (CM3035) + +Through this module, you will learn how to build dynamic, data-driven +websites using databases, front-end frameworks and server-side +programming. This module provides the skill set required to do full +stack web development work. By studying this module, you will develop +a web developer skill set that enables you to understand how to build +and deploy complete, data-driven websites. You will consider several +different technologies for client side-web development such as HTML, +CSS, JavaScript and templates. You will explore methods for developing +server-side web applications, by building web-accessible wrappers around +databases. You will consider issues of scalability, and learn about web +application configuration and deployment. + +### Topics covered + +- The web stack: clients, web servers and databases +- Advanced features of HTML, CSS and Templates +- Deploy a website +- Basic databases and data schemas for a website +- Build a CRUD/ RESTFul API +- Build a CRUD/ RESTFul API pt 2 +- Build a websocket server +- User authentication and security +- Working with external APIs +- Scalability + +### Assessment + +Coursework only (Type II) diff --git a/modules/level_6/cm_3040/README.md b/modules/level_6/cm_3040/README.md new file mode 100644 index 00000000..93d54f85 --- /dev/null +++ b/modules/level_6/cm_3040/README.md @@ -0,0 +1,33 @@ +[Go back to the main page](../../../README.md) + +## Physical Computing and the Internet of Things (CM3040) + +This course provides an introduction to the development and programming +of hardware devices that can sense and act in the environment. The +course will explain and demonstrate how the environment, which is +inherently continuous, can be monitored by analogue electrical and +mechanical sensors, then captured and analysed using a computer, which +is a discrete system. A focus of this course is the interface between +the digital and the analogue. + +This study encompasses basic physics, electronics, programming and +software engineering. The practical objective of this course is the +development of the skills needed for designing and building interactive +physical devices. + +### Topics covered + +- Electricity and circuits +- Microcontrollers +- Sensors +- Physical Interaction Design +- Physical Computing Projects +- Motors and actuators +- Communications protocols +- Networked Devices +- Bodily monitoring +- Robots + +### Assessment + +Coursework only (Type III) diff --git a/modules/level_6/cm_3045/README.md b/modules/level_6/cm_3045/README.md new file mode 100644 index 00000000..712a767c --- /dev/null +++ b/modules/level_6/cm_3045/README.md @@ -0,0 +1,30 @@ +[Go back to the main page](../../../README.md) + +## 3D Graphics and Animation (CM3045) + +This module will cover advanced methods used in current state-of-the-art +graphics and animation systems. It will include the mathematical +foundations, computational techniques and their use in creative +practice. By taking this module, you will learn how to write programs +that generate animated 3D graphics. There are several distinct study +areas: 3D modelling and animation, the graphics pipeline, simulation +of physics and shader programming. You will study a range of examples, +and through these learn how you can program computer graphics in +contemporary graphical software for different applications. + +### Topics covered + +- Overview of 3D Graphics and mathematics for graphics +- 3D Models and Transforms +- Physics simulation +- Keyframe Animation +- Character Animation +- Rendering and the Graphics Pipeline +- Lighting, Materials and Texturing +- Shader Programming +- Vertex Shaders +- Fragment Shaders + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3050/README.md b/modules/level_6/cm_3050/README.md new file mode 100644 index 00000000..340273ba --- /dev/null +++ b/modules/level_6/cm_3050/README.md @@ -0,0 +1,31 @@ +[Go back to the main page](../../../README.md) + +## Mobile Development (CM3050) + +This module aims to give you the fundamental understanding and skills +needed to develop mobile applications. By studying this module, you will +learn the principles of effective mobile user interface design and how +to design and build user interfaces. You will learn about data-driven +mobile applications, and how you can integrate a mobile application to +a data source. You will learn about the mobile development ecosystem +and how you can develop, run and test your applications. You will learn +how to work with various sensors available on mobile devices using +built-in APIs. The style of the modules will be practical, with a focus +on developing functioning applications. + +### Topics covered + +- The mobile app ecosystem +- Mobile user interface design +- Programming user interfaces +- Advanced user interface elements +- Developing a mobile app project +- Data sources +- Integrating Cloud and web services +- Sensor programming +- Advanced APIs +- Deployment + +### Assessment + +Coursework only (Type III) diff --git a/modules/level_6/cm_3055/README.md b/modules/level_6/cm_3055/README.md new file mode 100644 index 00000000..112665f4 --- /dev/null +++ b/modules/level_6/cm_3055/README.md @@ -0,0 +1,31 @@ +[Go back to the main page](../../../README.md) + +## Interaction Design [CM3055] + +When taking this module, you will examine the notion of 'interaction +with technology'. You will focus on the concepts behind modern user +experience design and production. You will gain a solid grasp and +practical experience of the process which allows the creation of +interactive systems. This process involves specification, design, +prototyping and evaluation. You will examine several design approaches +and techniques, and consider how they enable usability engineering. You +will learn how to evaluate interactive systems against criteria such as +efficiency and usability. You will examine issues of accessibility from +the perspective of different populations. + +### Topics covered + +- History of HCI. +- Usability and Principles of design. +- User-centred design techniques. +- Evaluation of interaction design. +- Evaluation of interaction design part 2 +- Designing for different users. +- Design case studies. +- Design case studies part 2 +- Tools and techniques that support interaction development. +- Current trends in interaction design and HCI. + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3060/README.md b/modules/level_6/cm_3060/README.md new file mode 100644 index 00000000..b5e28bb1 --- /dev/null +++ b/modules/level_6/cm_3060/README.md @@ -0,0 +1,31 @@ +[Go back to the main page](../../../README.md) + +## Natural Language Processing (CM3060) + +This module will provide you with a grounding in both rule-based and +statistical approaches to NLP, and it combines theoretical study with +hands-on work employing widely used software packages. The module +focuses on text processing, and by taking this module, you will learn +about how you can work with text-based natural language in your +computer programs. You will learn about grammars and how they can be +used to analyse text. You will learn how statistical analysis can be +used to extract information from and classify text. You will work in +an appropriate programming environment for NLP, using libraries to +implement NLP workflows. + +### Topics covered + +- History of NLP. +- Information retrieval and curation in NLP. +- Curated corpora and raw data sources. +- Formal grammars. +- Rule based NLP. +- Statistical NLP. +- NER (Named Entity Recognition). +- Readers, stemmers, taggers and parsers +- Software packages for NLP +- Applications of NLP + +### Assessment + +One two-hour unseen written examination and coursework (Type I) diff --git a/modules/level_6/cm_3065/README.md b/modules/level_6/cm_3065/README.md new file mode 100644 index 00000000..ac9e78db --- /dev/null +++ b/modules/level_6/cm_3065/README.md @@ -0,0 +1,27 @@ +[Go back to the main page](../../../README.md) + +## Intelligent Signal Processing (CM3065) + +This module aims to provide you with a broad experience of digital +signal processing techniques and applications. You will study how audio +and video signals can be captured and processed by a computer program. +You will learn about time domain and frequency domain representations +and processing. You will learn how you can extract information from +audio signals. You will implement movement and face detection systems +that work with live camera input. + +### Topics covered + +- Capturing representing and processing audio signals +- LTI systems and impulse responses +- Frequency domain representations +- Extracting features from signals +- Speech recognition +- Capturing, representing and processing camera input +- Computer vision: movement detection +- Computer vision: face detection +- Compressing signals + +### Assessment + +Coursework only (Type II) diff --git a/modules/level_6/cm_3070/README.md b/modules/level_6/cm_3070/README.md new file mode 100644 index 00000000..1a160070 --- /dev/null +++ b/modules/level_6/cm_3070/README.md @@ -0,0 +1,34 @@ +[Go back to the main page](../../../README.md) + +## Final Project (CM3070) + +In this module, you will undertake a substantial independent project +that will allow you to demonstrate a wide range of skills such as +project planning, management, research, software implementation, and +written presentation. If you are enrolled on a specialist pathway, +either as part of the BSc or a graduate diploma, you will be expected +to undertake a project in your specialist area. You will integrate +the knowledge gained throughout the programme and use skills acquired +in other modules in the implementation of your final project which +will be in computer science or your specialist area. The work will +consist of a combination of research and software development in various +proportions. You will be expected to make use of methodologies from +various components of computer science, including your specialist +pathway if appropriate. + +### Topics covered + +- Project planning and management. +- Project-associated risk management. +- Project-specific research methodology and methods. +- Aims and objectives of your project. +- Project-specific literature review. +- Project-specific software design. +- Project-specific software development. +- Project-specific software testing. +- Evaluation of project results. +- Project-specific academic writing. + +### Assessment + +One two-hour unseen written examination and coursework diff --git a/modules/level_6/data_science/README.md b/modules/level_6/data_science/README.md new file mode 100644 index 00000000..79164d3f --- /dev/null +++ b/modules/level_6/data_science/README.md @@ -0,0 +1,94 @@ +[Go back to the main page](../../../README.md) + +# Data Science + +# Table of contents + +- [Data Science](#data-science) +- [Table of contents](#table-of-contents) +- [_Data Science_ specialism modules](#data-science-specialism-modules) + - [Data Science](#data-science-1) + - [Databases and Advanced Data Techniques](#databases-and-advanced-data-techniques) + - [Machine Learning and Neural Networks](#machine-learning-and-neural-networks) + - [Advanced Web Development](#advanced-web-development) + - [Natural Language Processing](#natural-language-processing) +- [Resources](#resources) + - [Jupyter](#jupyter) + - [Pandas](#pandas) + - [Working with data (Pandas, NumPy, Matplotlib, IPython, Scikit-Learn...)](#working-with-data-pandas-numpy-matplotlib-ipython-scikit-learn) + +--- + +# _Data Science_ specialism modules + +## Data Science + +This module will develop your data science skillset so that you'll +be able to write programs that can read, process and analyse textual +and numerical data. You will be able to generate plots and interactive +visualisations of data and understand how to apply statistical methods +to the interpretation of results. You'll be able to use data analysis +in the decision-making process. You'll also learn about application +domains for data science. + +## Databases and Advanced Data Techniques + +This module aims to show you how to work with data in your computer +programs. You will learn how to use SQL and NoSQL databases to store +tabular data and documents. You will learn about the ethics of gathering +and processing data and why it is important to consider issues around +data security. You will learn about open data resources, and how you can +access them from your computer programs. You will learn about audio and +video data, and the challenges of working with this kind of data. + +## Machine Learning and Neural Networks + +This module provides a broad view of machine learning and neural +networks. You'll learn how to solve common machine learning problems +such as regression, classification, clustering, matrix completion and +pattern recognition. You'll explore how neural networks can be trained +and optimised. You'll learn how to develop machine learning systems +rapidly, and you will learn how to verify and evaluate the results. + +## Advanced Web Development + +Advanced Web Development teaches you how to build dynamic, data-driven +websites using databases, front-end frameworks and server-side +programming. You'll develop the skills needed for full stack web +development work and develop a web developer skillset, enabling you +to build and deploy complete, data-driven websites. You'll consider +different technologies for clientside web development such as HTML, +CSS, JavaScript and templates. You'll explore methods for developing +server-side web applications, by building web-accessible wrappers +around databases, consider scalability issues and learn about web app +configuration and deployment. + +## Natural Language Processing + +Natural Language Processing (NLP) provides a grounding in both +rule-based and statistical approaches to NLP, combining theoretical +study with hands-on work employing widely used software packages. The +module focuses on text processing and you'll learn about how to work +with text-based natural language in your programs. You'll explore +grammars and how they can be used to analyse text. You'll learn how +to use statistical analysis to extract information from and classify +text. You'll use appropriate programming libraries to implement NLP +workflows. + +# Resources + +## Jupyter + +- [Jupyter Notebook for Beginners: A Tutorial](https://www.dataquest.io/blog/jupyter-notebook-tutorial/) +- [Six easy ways to run your Jupyter Notebook in the cloud](https://www.dataschool.io/cloud-services-for-jupyter-notebook/) +- [Tutorial: Advanced Jupyter Notebooks](https://www.dataquest.io/blog/advanced-jupyter-notebooks-tutorial/) + +## Pandas + +- [Modern Pandas](https://tomaugspurger.github.io/modern-1-intro) - _"This series is about how to make effective use of pandas, a data analysis library for the Python programming language. It's targeted at an intermediate level: people who have some experience with pandas, but are looking to improve."_ +- [Official website](https://pandas.pydata.org/) - _"pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language."_ + +## Working with data (Pandas, NumPy, Matplotlib, IPython, Scikit-Learn...) + +- [Kaggle: Micro-Courses](https://www.kaggle.com/learn/overview) - _"Practical data skills you can apply immediately: that's what you'll learn in these free micro-courses. They're the fastest (and most fun) way to become a data scientist or improve your current skills."_ +- [Python Data Science Handbook: full text in Jupyter Notebooks](https://github.com/jakevdp/PythonDataScienceHandbook) - _"This repository contains the entire Python Data Science Handbook, in the form of (free!) Jupyter notebooks."_ diff --git a/modules/level_6/final_project/README.md b/modules/level_6/final_project/README.md new file mode 100644 index 00000000..f881cc46 --- /dev/null +++ b/modules/level_6/final_project/README.md @@ -0,0 +1,15 @@ +[Go back to the main page](../../../README.md) + +# Final Project + +In this module, you'll undertake a substantial independent project +that allows you to demonstrate a wide range of skills such as project +planning, management, research, software implementation and written +presentation. **If you are enrolled on a specialist pathway as part of +the BSc, you'll be expected to undertake a project in your specialist +area.** You will integrate your knowledge gained throughout the degree +and use skills acquired in other modules in the implementation of your +final project. The work will consist of a combination of research and +software development. You will be expected to use methodologies from +various components of computer science, including your specialist +pathway if appropriate. diff --git a/modules/level_6/games_dev/README.md b/modules/level_6/games_dev/README.md new file mode 100644 index 00000000..130b5dfb --- /dev/null +++ b/modules/level_6/games_dev/README.md @@ -0,0 +1,66 @@ +[Go back to the main page](../../../README.md) + +# _Games Development_ specialism modules + +### Artificial Intelligence + +Focusing on Artificial Intelligence (AI) techniques, you will learn the +historical development of AI including search, vision and planning. You +will become familiar with the foundations of agent-based approaches to +software design, decision making and problem solving including under +uncertainty. You will have an opportunity to apply AI techniques to +particular problems such as game playing and decision making. + +### Virtual Reality + +The Virtual Reality (VR) module combines the theory and psychology of VR +with practical development skills. You'll learn the skills needed to +design compelling VR environments and the skills that apply to creative +practice, science and industry. This module gives you the skills needed +to develop VR, including understanding the basic theory of presence in +VR, which underlies the basic design principles. Using a 3D engine to +create interactive virtual environments, you'll also learn practical +development skills, including creating 3D environments, designing and +implementing 3D interaction for VR and building social VR experiences +with interactive virtual characters. + +### Games Development + +This module introduces you to i) industry standard tools for game +development, such as game engines, and ii) the process of game +development, including prototyping and playtesting. You will undertake a +series of game development projects, each lasting a few weeks and with +a specific brief. For each project, you'll propose a game that fits +the brief then deliver the game and document it thoroughly. Through this +process, you'll develop an awareness of intended audience and the use +of media for documentation. Contemporary video game production draws on +a range of techniques from AI to perform tasks like controlling virtual +agents and generating novel content. This module also introduces crucial +game AI concepts. Compared to mainstream AI, the emphasis is less on +optimal problem-solving and more on entertaining the player with limited +computational resources. This module provides practical experience of +programming game AI systems and an understanding of the relevant theory. + +### 3D Graphics and Animation + +This module covers advanced methods used in current state-of-the-art +graphics and animation systems. It includes mathematical foundations, +computational techniques and their use in creative practice. In this +module, you'll learn how to write programs that generate animated +3D graphics. There are several distinct study areas: 3D modelling and +animation, the graphics pipeline, simulation of physics and shader +programming. You'll study a range of examples and learn how to program +graphics in contemporary graphical software for different applications. + +### Interaction Design + +In this module, you'll examine the notion of ‘interaction with +technology'. You will focus on the concepts behind modern UX design +and production and gain a solid grasp and practical experience of +the process which allows the creation of interactive systems. This +process involves specification, design, prototyping and evaluation. +You'll examine several design approaches and techniques and consider +how they enable usability engineering. You'll learn how to evaluate +interactive systems against criteria such as efficiency and usability. +You'll examine accessibility issues from the perspective of different +populations. diff --git a/modules/level_6/ml_ai/README.md b/modules/level_6/ml_ai/README.md new file mode 100644 index 00000000..80a93f99 --- /dev/null +++ b/modules/level_6/ml_ai/README.md @@ -0,0 +1,72 @@ +[Go back to the main page](../../../README.md) + +- [List of free deep learning ebooks](#list-of-free-deep-learning-ebooks) +- [List of deep learning courses](#list-of-deep-learning-courses) +- [Modules in the specialism](#modules-in-the-specialism) + - [Databases and Advanced Data Techniques](#databases-and-advanced-data-techniques) + - [Machine Learning and Neural Networks](#machine-learning-and-neural-networks) + - [Artificial Intelligence](#artificial-intelligence) + - [Intelligent Signal Processing](#intelligent-signal-processing) + - [Natural Language Processing](#natural-language-processing) + +_Machine Learning and Artificial Intelligence_ specialism modules + +## List of free deep learning ebooks + +- [Best Deep Learning Books](https://blog.floydhub.com/best-deep-learning-books-updated-for-2019/#deep-learning), by Alessio Gozzoli (updated March 1st, 2019) + +## List of deep learning courses + +- [Best Deep Learning Courses](https://blog.floydhub.com/best-deep-learning-courses-updated-for-2019/), by Alessio Gozzoli (updated March 8th, 2019) + +## Modules in the specialism + +### Databases and Advanced Data Techniques + +This module aims to show you how to work with data in your computer +programs. You will learn how to use SQL and NoSQL databases to store +tabular data and documents. You will learn about the ethics of gathering +and processing data and why it is important to consider issues around +data security. You will learn about open data resources, and how you can +access them from your computer programs. You will learn about audio and +video data, and the challenges of working with this kind of data. + +### Machine Learning and Neural Networks + +This module provides a broad view of machine learning and neural +networks. You'll learn how to solve common machine learning problems +such as regression, classification, clustering, matrix completion and +pattern recognition. You'll explore how neural networks can be trained +and optimised. You'll learn how to develop machine learning systems +rapidly, and you will learn how to verify and evaluate the results. + +### Artificial Intelligence + +Focusing on Artificial Intelligence (AI) techniques, you will learn the +historical development of AI including search, vision and planning. You +will become familiar with the foundations of agent-based approaches to +software design, decision making and problem solving including under +uncertainty. You will have an opportunity to apply AI techniques to +particular problems such as game playing and decision making. + +### Intelligent Signal Processing + +Studying Intelligent Signal Processing will provide a broad experience +of digital signal processing techniques and applications. You will +study how programs can capture and process audio and video signals. +You'll learn about time domain and frequency domain representations +and processing and how you can extract information from audio signals. +You'll implement movement and face detection systems that work with +live camera input. + +### Natural Language Processing + +Natural Language Processing (NLP) provides a grounding in both +rule-based and statistical approaches to NLP, combining theoretical +study with hands-on work employing widely used software packages. The +module focuses on text processing and you'll learn about how to work +with text-based natural language in your programs. You'll explore +grammars and how they can be used to analyse text. You'll learn how +to use statistical analysis to extract information from and classify +text. You'll use appropriate programming libraries to implement NLP +workflows. diff --git a/modules/level_6/phys_computing_iot/README.md b/modules/level_6/phys_computing_iot/README.md new file mode 100644 index 00000000..d4c07e84 --- /dev/null +++ b/modules/level_6/phys_computing_iot/README.md @@ -0,0 +1,62 @@ +[Go back to the main page](../../../README.md) + +# _Physical Computing and the Internet of Things_ specialism modules + +### Databases and Advanced Data Techniques + +This module aims to show you how to work with data in your computer +programs. You will learn how to use SQL and NoSQL databases to store +tabular data and documents. You will learn about the ethics of gathering +and processing data and why it is important to consider issues around +data security. You will learn about open data resources, and how you can +access them from your computer programs. You will learn about audio and +video data, and the challenges of working with this kind of data. + +### Advanced Web Development + +Advanced Web Development teaches you how to build dynamic, data-driven +websites using databases, front-end frameworks and server-side +programming. You'll develop the skills needed for full stack web +development work and develop a web developer skillset, enabling you +to build and deploy complete, data-driven websites. You'll consider +different technologies for client-side web development such as HTML, +CSS, JavaScript and templates. You'll explore methods for developing +server-side web applications, by building web-accessible wrappers +around databases, consider scalability issues and learn about web app +configuration and deployment. + +### Physical Computing and the Internet of Things + +Studying this module will introduce the technology involved in the +development and programming of hardware devices that can sense and act +in the environment. It explains and demonstrates how the environment, +which is inherently continuous, can be monitored by analogue electrical +and mechanical sensors, then captured and analysed using a computer, +which is a discrete system. A focus of this module is the interface +between the digital and the analogue. You'll learn basic physics, +electronics, programming and software engineering. The module's +practical objective is the development of the skills needed for +designing and building interactive physical devices. + +### Interaction Design + +In this module, you'll examine the notion of ‘interaction with +technology'. You will focus on the concepts behind modern UX design +and production and gain a solid grasp and practical experience of +the process which allows the creation of interactive systems. This +process involves specification, design, prototyping and evaluation. +You'll examine several design approaches and techniques and consider +how they enable usability engineering. You'll learn how to evaluate +interactive systems against criteria such as efficiency and usability. +You'll examine accessibility issues from the perspective of different +populations. + +### Intelligent Signal Processing + +Studying Intelligent Signal Processing will provide a broad experience +of digital signal processing techniques and applications. You will +study how programs can capture and process audio and video signals. +You'll learn about time domain and frequency domain representations +and processing and how you can extract information from audio signals. +You'll implement movement and face detection systems that work with +live camera input. diff --git a/modules/level_6/user_experience/README.md b/modules/level_6/user_experience/README.md new file mode 100644 index 00000000..299843d1 --- /dev/null +++ b/modules/level_6/user_experience/README.md @@ -0,0 +1,68 @@ +[Go back to the main page](../../../README.md) + +# _User Experience_ specialism modules + +### Virtual Reality + +The Virtual Reality (VR) module combines the theory and psychology of VR +with practical development skills. You'll learn the skills needed to +design compelling VR environments and the skills that apply to creative +practice, science and industry. This module gives you the skills needed +to develop VR, including understanding the basic theory of presence in +VR, which underlies the basic design principles. Using a 3D engine to +create interactive virtual environments, you'll also learn practical +development skills, including creating 3D environments, designing and +implementing 3D interaction for VR and building social VR experiences +with interactive virtual characters. + +### Advanced Web Development + +Advanced Web Development teaches you how to build dynamic, data-driven +websites using databases, front-end frameworks and server-side +programming. You'll develop the skills needed for full stack web +development work and develop a web developer skillset, enabling you +to build and deploy complete, data-driven websites. You'll consider +different technologies for clientside web development such as HTML, +CSS, JavaScript and templates. You'll explore methods for developing +server-side web applications, by building web-accessible wrappers +around databases, consider scalability issues and learn about web app +configuration and deployment. + +### Physical Computing and the Internet of Things + +Studying this module will introduce the technology involved in the +development and programming of hardware devices that can sense and act +in the environment. It explains and demonstrates how the environment, +which is inherently continuous, can be monitored by analogue electrical +and mechanical sensors, then captured and analysed using a computer, +which is a discrete system. A focus of this module is the interface +between the digital and the analogue. You'll learn basic physics, +electronics, programming and software engineering. The module's +practical objective is the development of the skills needed for +designing and building interactive physical devices. + +### Mobile Development + +The Mobile Development module aims to give you the fundamental +understanding and skills needed to develop mobile applications. By +studying this module, you will learn the principles of effective mobile +user interface design and how to design and build user interfaces. +You'll learn about datadriven mobile apps, and how you can integrate +an app with a data source. You'll learn about the mobile development +ecosystem and how to develop, run and test your applications. You'll +work with various sensors available on mobile devices using built-in +application programming interfaces. The style of the module is +practical, focusing on developing working apps. + +### Interaction Design + +In this module, you'll examine the notion of ‘interaction with +technology'. You will focus on the concepts behind modern UX design +and production and gain a solid grasp and practical experience of +the process which allows the creation of interactive systems. This +process involves specification, design, prototyping and evaluation. +You'll examine several design approaches and techniques and consider +how they enable usability engineering. You'll learn how to evaluate +interactive systems against criteria such as efficiency and usability. +You'll examine accessibility issues from the perspective of different +populations. diff --git a/modules/level_6/virtual_reality/README.md b/modules/level_6/virtual_reality/README.md new file mode 100644 index 00000000..0a332aa1 --- /dev/null +++ b/modules/level_6/virtual_reality/README.md @@ -0,0 +1,70 @@ +[Go back to the main page](../../../README.md) + +# _Virtual Reality_ specialism modules + +### Virtual Reality + +The Virtual Reality (VR) module combines the theory and psychology of VR +with practical development skills. You'll learn the skills needed to +design compelling VR environments and the skills that apply to creative +practice, science and industry. This module gives you the skills needed +to develop VR, including understanding the basic theory of presence in +VR, which underlies the basic design principles. Using a 3D engine to +create interactive virtual environments, you'll also learn practical +development skills, including creating 3D environments, designing and +implementing 3D interaction for VR and building social VR experiences +with interactive virtual characters. + +### Games Development + +This module introduces you to i) industry standard tools for game +development, such as game engines, and ii) the process of game +development, including prototyping and playtesting. You will undertake a +series of game development projects, each lasting a few weeks and with +a specific brief. For each project, you'll propose a game that fits +the brief then deliver the game and document it thoroughly. Through this +process, you'll develop an awareness of intended audience and the use +of media for documentation. Contemporary video game production draws on +a range of techniques from AI to perform tasks like controlling virtual +agents and generating novel content. This module also introduces crucial +game AI concepts. Compared to mainstream AI, the emphasis is less on +optimal problem-solving and more on entertaining the player with limited +computational resources. This module provides practical experience of +programming game AI systems and an understanding of the relevant theory. + +### 3D Graphics and Animation + +This module covers advanced methods used in current state-of-the-art +graphics and animation systems. It includes mathematical foundations, +computational techniques and their use in creative practice. In this +module, you'll learn how to write programs that generate animated +3D graphics. There are several distinct study areas: 3D modelling and +animation, the graphics pipeline, simulation of physics and shader +programming. You'll study a range of examples and learn how to program +graphics in contemporary graphical software for different applications. + +### Mobile Development + +The Mobile Development module aims to give you the fundamental +understanding and skills needed to develop mobile applications. By +studying this module, you will learn the principles of effective mobile +user interface design and how to design and build user interfaces. +You'll learn about datadriven mobile apps, and how you can integrate +an app with a data source. You'll learn about the mobile development +ecosystem and how to develop, run and test your applications. You'll +work with various sensors available on mobile devices using built-in +application programming interfaces. The style of the module is +practical, focusing on developing working apps. + +### Interaction Design + +In this module, you'll examine the notion of ‘interaction with +technology'. You will focus on the concepts behind modern UX design +and production and gain a solid grasp and practical experience of +the process which allows the creation of interactive systems. This +process involves specification, design, prototyping and evaluation. +You'll examine several design approaches and techniques and consider +how they enable usability engineering. You'll learn how to evaluate +interactive systems against criteria such as efficiency and usability. +You'll examine accessibility issues from the perspective of different +populations. diff --git a/modules/level_6/web_mobile_dev/README.md b/modules/level_6/web_mobile_dev/README.md new file mode 100644 index 00000000..fec158e1 --- /dev/null +++ b/modules/level_6/web_mobile_dev/README.md @@ -0,0 +1,63 @@ +[Go back to the main page](../../../README.md) + +# _Web and Mobile Development_ specialism modules + +### Databases and Advanced Data Techniques + +This module aims to show you how to work with data in your computer +programs. You will learn how to use SQL and NoSQL databases to store +tabular data and documents. You will learn about the ethics of gathering +and processing data and why it is important to consider issues around +data security. You will learn about open data resources, and how you can +access them from your computer programs. You will learn about audio and +video data, and the challenges of working with this kind of data. + +### Advanced Web Development + +Advanced Web Development teaches you how to build dynamic, data-driven +websites using databases, front-end frameworks and server-side +programming. You'll develop the skills needed for full stack web +development work and develop a web developer skillset, enabling you +to build and deploy complete, data-driven websites. You'll consider +different technologies for clientside web development such as HTML, +CSS, JavaScript and templates. You'll explore methods for developing +server-side web applications, by building web-accessible wrappers +around databases, consider scalability issues and learn about web app +configuration and deployment. + +### 3D Graphics and Animation + +This module covers advanced methods used in current state-of-the-art +graphics and animation systems. It includes mathematical foundations, +computational techniques and their use in creative practice. In this +module, you'll learn how to write programs that generate animated +3D graphics. There are several distinct study areas: 3D modelling and +animation, the graphics pipeline, simulation of physics and shader +programming. You'll study a range of examples and learn how to program +graphics in contemporary graphical software for different applications. + +### Mobile Development + +The Mobile Development module aims to give you the fundamental +understanding and skills needed to develop mobile applications. By +studying this module, you will learn the principles of effective mobile +user interface design and how to design and build user interfaces. +You'll learn about datadriven mobile apps, and how you can integrate +an app with a data source. You'll learn about the mobile development +ecosystem and how to develop, run and test your applications. You'll +work with various sensors available on mobile devices using built-in +application programming interfaces. The style of the module is +practical, focusing on developing working apps. + +### Interaction Design + +In this module, you'll examine the notion of ‘interaction with +technology'. You will focus on the concepts behind modern UX design +and production and gain a solid grasp and practical experience of +the process which allows the creation of interactive systems. This +process involves specification, design, prototyping and evaluation. +You'll examine several design approaches and techniques and consider +how they enable usability engineering. You'll learn how to evaluate +interactive systems against criteria such as efficiency and usability. +You'll examine accessibility issues from the perspective of different +populations. diff --git a/online_courses/free/README.md b/online_courses/free/README.md new file mode 100644 index 00000000..2033ca51 --- /dev/null +++ b/online_courses/free/README.md @@ -0,0 +1,403 @@ +[Go back to the main page](../../README.md) + +# Free online courses + +- [Free online courses](#free-online-courses) + - [Awesome Courses](#awesome-courses) + - [Artificial intelligence & machine learning](#artificial-intelligence--machine-learning) + - [First steps](#first-steps) + - [Deep learning](#deep-learning) + - [Machine learning](#machine-learning) + - [Next steps](#next-steps) + - [Complementary topics](#complementary-topics) + - [Business](#business) + - [Command-line (terminal, shell)](#command-line-terminal-shell) + - [Computer science](#computer-science) + - [Algorithms](#algorithms) + - [Blockchain technology](#blockchain-technology) + - [Cloud computing](#cloud-computing) + - [Complete curriculum](#complete-curriculum) + - [Computer vision](#computer-vision) + - [Cryptography](#cryptography) + - [Design and product](#design-and-product) + - [Open Source](#open-source) + - [Programming](#programming) + - [C++](#c) + - [Python](#python) + - [Security](#security) + - [Software development](#software-development) + - [Various Topics](#various-topics) + - [Cybersecurity](#cybersecurity) + - [Data science](#data-science) + - [Data analysis](#data-analysis) + - [Data collection](#data-collection) + - [Data mining](#data-mining) + - [Machine learning](#machine-learning-1) + - [Databases](#databases) + - [Foreign languages](#foreign-languages) + - [Spanish](#spanish) + - [Artificial intelligence](#artificial-intelligence) + - [Machine learning](#machine-learning-2) + - [Cloud computing](#cloud-computing-1) + - [Programming](#programming-1) + - [Web development](#web-development) + - [Game development](#game-development) + - [Git & GitHub](#git--github) + - [Internet of Things](#internet-of-things) + - [Learning strategies](#learning-strategies) + - [Linux](#linux) + - [Mathematics](#mathematics) + - [Calculus](#calculus) + - [Linear algebra](#linear-algebra) + - [Probability and statistics](#probability-and-statistics) + - [Various topics](#various-topics-1) + - [Mobile development](#mobile-development) + - [Psychology & Health](#psychology--health) + - [Support & Operations](#support--operations) + - [Web development](#web-development-1) + +--- + +- [Top 50 Free Online Courses of All Time](https://www.classcentral.com/collection/top-free-online-courses) on Class Central. +- Courses with the :black_square_button: emoji mean they can be used for RPL (Recognition of Prior Learning) for the BSc Computer Science at University of London, because they serve as a proof. :black_square_button: + - Currently, only the :black_square_button: [Google IT Support Professional Certificate](https://www.coursera.org/professional-certificates/google-it-support) is eligible. + +--- + +## [Awesome Courses](https://github.com/prakhar1989/awesome-courses) + +> List of awesome university courses for learning Computer Science! — [![awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +## Artificial intelligence & machine learning + +### First steps + +- [AI Demystified: 5-Day Mini-Course](https://academy.infinite.red/p/ai-demystified-free-5-day-mini-course) - Infinite Red Academy. Lecturer: Gant Laborde. _"By the end of the mini-course, you’ll be able to speak intelligently about AI buzzwords, common types of AI and Machine Learning and their practical business applications."_ +- [AI for everyone](https://www.coursera.org/learn/ai-for-everyone) - Coursera. Lecturer: Andrew Ng. +- [Applied AI: Artificial Intelligence with IBM Watson Specialization](https://www.coursera.org/specializations/applied-artifical-intelligence-ibm-watson-ai) - Coursera. Offered by IBM. + +### Deep learning + +- [Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning) - Coursera. Offered by [deeplearning.ai](https://www.deeplearning.ai/). Includes: + - Neural Networks and Deep Learning + - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization + - Structuring Machine Learning Projects + - Convolutional Neural Networks + - Sequence Models +- [Intro to TensorFlow for Deep Learning](https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187) - by TensorFlow, on Udacity. _"Learn how to build deep learning applications with TensorFlow."_ + +### Machine learning + +- [Machine Learning: Algorithms in the Real World Specialization](https://www.coursera.org/specializations/machine-learning-algorithms-real-world) - Coursera. Offered by amii. +- [Machine Learning](https://www.coursera.org/learn/machine-learning) - Coursera. Lecturer: Andrew Ng. Offered by Stanford. +- [Machine Learning Specialization](https://www.coursera.org/specializations/machine-learning) - Coursera. Offered by University of Washington. Includes: + - Machine Learning Foundations: A Case Study Approach + - Machine Learning: Regression + - Machine Learning: Classification + - Machine Learning: Clustering & Retrieval + +### Next steps + +- [Linear Regression and Modeling](https://www.coursera.org/learn/linear-regression-model) - Coursera. Duke University. +- [TensorFlow in Practice Specialization](https://www.coursera.org/specializations/tensorflow-in-practice) - Coursera. Offered by [deeplearning.ai](https://www.deeplearning.ai/). Includes: + - [Course 1: Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning](https://www.coursera.org/learn/introduction-tensorflow/) + - [Course 2: Convolutional Neural Networks in TensorFlow](https://www.coursera.org/learn/convolutional-neural-networks-tensorflow) + - [Course 3: Natural Language Processing in TensorFlow](https://www.coursera.org/learn/natural-language-processing-tensorflow) + - [Course 4: Sequences, Time Series and Prediction](https://www.coursera.org/learn/tensorflow-sequences-time-series-and-prediction) + +#### Complementary topics + +- [Self-Driving Cars Specialization](https://www.coursera.org/specializations/self-driving-cars) - Coursera. Offered by University of Toronto. Includes: + - Introduction to Self-Driving Cars + - State Estimation and Localization for Self-Driving Cars + - Visual Perception for Self-Driving Cars + - Motion Planning for Self-Driving Cars + +## Business + +- [Launching Breakthrough Technologies](https://www.edx.org/course/launching-breakthrough-technologies) - edX. Offered by Harvard University. + +## Command-line (terminal, shell) + +- [Command Line Essentials: Git Bash for Windows](https://www.udemy.com/git-bash/) - Udemy. _"A step-by-step guide for Windows users unfamiliar with Bash or the terminal environment."_ + +## Computer science + +### Algorithms + +- [Accelerated Computer Science Fundamentals Specialization](https://www.coursera.org/specializations/cs-fundamentals) - Coursera. Offered by Illinois. +- [Algorithmic Design and Techniques](https://courses.edx.org/courses/course-v1:UCSanDiegoX+ALGS200x+2T2017/course) - edX. Offered by UCSanDiegoX. +- [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) - Coursera. Offered by Princeton University. +- [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) - Coursera. Offered by Princeton University. +- [Algorithms Specialization](https://www.coursera.org/specializations/algorithms) - Coursera. Offered by Stanford. Includes: + - Divide and Conquer, Sorting and Searching, and Randomized Algorithms + - Graph Search, Shortest Paths, and Data Structures + - Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming + - Shortest Paths Revisited, NP-Complete Problems and What To Do About Them +- [University of California, San Diego: Algorithms and Data Structures](https://www.edx.org/micromasters/ucsandiegox-algorithms-and-data-structures) - edX MicroMaster + +### Blockchain technology + +- [Blockchain Revolution for the Enterprise Specialization](https://www.coursera.org/specializations/blockchain-revolution-enterprise) - Coursera. Offered by The Business School for the World INSEAD. Includes: + - Introduction to Blockchain Technologies + - Transacting on the Blockchain + - Blockchain and Business: Applications and Implications + - Blockchain Opportunity Analysis +- [Blockchain Specialization](https://www.coursera.org/specializations/blockchain) - Coursera. Offered by University at Buffalo, The State University of New York. +- [Introduction to Blockchain Specialization](https://www.coursera.org/specializations/introduction-to-blockchain) - Coursera. Offered by AICPA & CIMA. +- [Introduction to Blockchain Technologies](https://www.coursera.org/learn/introduction-blockchain-technologies) - Coursera. Offered by The Business School for the World INSEAD. +- [Supply Chain Finance and Blockchain Technology Specialization](https://www.coursera.org/specializations/supply-chain-finance-and-blockchain-technology) - Coursera. Offered by New York Institute of Finance. Includes: + - Introduction to Supply Chain Finance & Blockchain Technology + - Key Success Factors in Supply Chain Finance + - Supply Chain Finance Market and Fintech Ecosystem + - Future Development in Supply Chain Finance and Blockchain Technology + +### Cloud computing + +- [Architecting with Google Kubernetes Engine Specialization](https://www.coursera.org/specializations/architecting-google-kubernetes-engine) - Coursera. Offered by Google Cloud. +- [Building Scalable Java Microservices with Spring Boot and Spring Cloud](https://www.coursera.org/learn/google-cloud-java-spring) - Coursera. Offered by Google Cloud. +- [Preparing for the Google Cloud Associate Cloud Engineer Exam](https://www.coursera.org/learn/preparing-cloud-associate-cloud-engineer-exam) - Coursera. Offered by Google Cloud. +- [Preparing for the Google Cloud Professional Cloud Architect Exam](https://www.coursera.org/learn/preparing-cloud-professional-cloud-architect-exam) - Coursera. Offered by Google Cloud. +- [Security in Google Cloud Platform Specialization](https://www.coursera.org/specializations/security-google-cloud-platform) - Coursera. Offered by Google Cloud. Includes: + - Google Cloud Platform Fundamentals: Core Infrastructure + - Managing Security in Google Cloud Platform + - Mitigating Security Vulnerabilities on Google Cloud Platform +- [University of Illinois: Cloud Computing](https://www.coursera.org/specializations/cloud-computing) - Coursera Specialization + +### Complete curriculum + +- [Open Source Society University](https://github.com/ossu/computer-science) - _"The OSSU curriculum is a complete education in computer science using online materials."_ +- [Teach Yourself Computer Science](https://teachyourselfcs.com/) - _"Study all nine subjects below, in roughly the presented order, using either the suggested textbook or video lecture series, but ideally both. Aim for 100-200 hours of study of each topic, then revisit favorites throughout your career."_ + +### Computer vision + +- [University at Buffalo: Computer Vision Specialization](https://www.coursera.org/specializations/computervision) - Coursera Specialization + +### Cryptography + +- [Cryptography I](https://www.coursera.org/learn/crypto) - Coursera. Offered by Stanford. +- [Cryptography II](https://www.coursera.org/learn/crypto2) - Coursera. Offered by Stanford. +- [Cryptography](https://www.coursera.org/learn/cryptography) - Coursera. Offered by University of Maryland. + +### Design and product + +- [Agile Development Specialization](https://www.coursera.org/specializations/agile-development) - Coursera. Offered by University of Virginia. +- [Building AI Powered Chatbots Without Programming](https://www.coursera.org/learn/building-ai-powered-chatbots) - Coursera. Offered by IBM. +- [Gamification](https://www.coursera.org/learn/gamification) - Coursera. Offered by Penn, University of Pennsylvania. - _"Gamification is the application of game elements and digital game design techniques to non-game problems, such as business and social impact challenges. This course will teach you the mechanisms of gamification, why it has such tremendous potential, and how to use it effectively."_ +- [Software Product Management Specialization](https://www.coursera.org/specializations/product-management) - Coursera. Offered by University of Alberta. + +### Open Source + +- [Open Source Software Development, Linux and Git Specialization](https://www.coursera.org/specializations/oss-development-linux-git) - Coursera. Offered by The Linux Foundation. + +### Programming + +#### C++ + +- [Object-Oriented Data Structures in C++](https://www.coursera.org/learn/cs-fundamentals-1) - Coursera. Offered by University of Illinois. + +#### Python + +- [An Introduction to Interactive Programming in Python (Part 1)](https://www.coursera.org/learn/interactive-python-1) - Coursera. Offered by RICE. +- [Introduction to Computer Science and Programming Using Python](https://www.edx.org/course/introduction-to-computer-science-and-programming-using-python-2) - edX. Offered by MIT. +- [Learn to Program: The Fundamentals](https://www.coursera.org/learn/learn-to-program) - Coursera. Offered by University of Toronto. - _"This course introduces the fundamental building blocks of programming and teaches you how to write fun and useful programs using the Python language."_ +- [Programming for Everybody (Getting Started with Python)](https://www.coursera.org/learn/python) - Coursera. Offered by University of Michigan. +- [Using Python for Research](https://www.edx.org/course/using-python-for-research-2) - _"Take your introductory knowledge of Python programming to the next level and learn how to use Python 3 for your research."_ - edX. Offered by Harvard University. +- [Automate the Boring Stuff with Python Programming](https://www.udemy.com/course/automate/) - Udemy. Offered by Al Sweigert. - _"A practical programming course for anyone who want to improve their productivity."_ - This course can be accessed for free with [monthly coupon codes](https://inventwithpython.com/automateudemy) that are available. + +### Security + +- [Advanced System Security Design Specialization](https://www.coursera.org/specializations/advanced-system-security-design) - Coursera. Offered by University of Colorado. Includes: + - Cloud Computing Security + - DDoS Attacks and Defenses + - Security and Privacy in TOR Network + - Advanced System Security Topics +- [IT Fundamentals for Cybersecurity Specialization](https://www.coursera.org/specializations/it-fundamentals-cybersecurity) - Coursera. Offered by IBM. +- [Secure Coding Practices Specialization](https://www.coursera.org/specializations/secure-coding-practices) - Coursera. Offered by UCDavis University of California. +- [Security and Privacy for Big Data - Part 1](https://www.coursera.org/learn/security-privacy-big-data) - Coursera. Offered by Digital Academy. +- [Security and Privacy for Big Data - Part 2](https://www.coursera.org/learn/security-privacy-big-data-protection) - Coursera. Offered by Digital Academy. + +### Software development + +- [Computational Thinking with Beginning C Programming Specialization](https://www.coursera.org/specializations/computational-thinking-c-programming) - Coursera. Offered by University of Colorado. +- [Data Engineering on Google Cloud Platform Specialization](https://www.coursera.org/specializations/gcp-data-machine-learning) - Coursera. Offered by Google Cloud. +- [Functional Programming in Scala Specialization](https://www.coursera.org/specializations/scala) - Coursera. Offered by EPFL. +- [Java Programming and Software Engineering Fundamentals Specialization](https://www.coursera.org/specializations/java-programming) - Coursera. Offered by Duke University. +- [Python 3 Programming Specialization](https://www.coursera.org/specializations/python-3-programming) - Coursera. University of Michigan. + +### Various Topics + +- [MIT OpenCourseWare](https://ocw.mit.edu) - _"MIT OpenCourseWare makes the materials used in the teaching of almost all of MIT's subjects available on the Web, free of charge. With more than 2,400 courses available, OCW is delivering on the promise of open sharing of knowledge."_ +- [Saylor Academy](https://learn.saylor.org/course/index.php?categoryid=9) - _"Learn the basics of in-demand skills like programming, information technology, software engineering, systems architecture and management, and networking. You can earn a free certificate of completion for any of these online Computer Science courses, or use many of them to earn credit in leading computer science, information technology, and cybersecurity college programs. "_ + +## Cybersecurity + +- [IT Fundamentals for Cybersecurity Specialization](https://www.coursera.org/specializations/it-fundamentals-cybersecurity) - Coursera. Offered by IBM. +- [Cybersecurity and Its Ten Domains](https://www.coursera.org/learn/cyber-security-domain) - Coursera. Offered by University System of Georgia. +- [Advanced System Security Design Specialization](https://www.coursera.org/specializations/advanced-system-security-design) - Coursera. Offered by University of Colorado. + +## Data science + +- [Arizona State University: Data Systems](https://www.coursera.org/specializations/data-systems) - Coursera Specialization +- [Deep Learning in Python](https://www.datacamp.com/courses/deep-learning-in-python) - DataCamp. +- [Python for Data Science](https://www.edx.org/course/python-for-data-science-2) - edX. Offered by UCSanDiego. +- [University of California, San Diego: Data Science](https://www.edx.org/micromasters/data-science) - edX MicroMaster + +### Data analysis + +- [AI Foundations for Everyone Specialization](https://www.coursera.org/specializations/ai-foundations-for-everyone) - Coursera. Offered by IBM. +- [Modern Big Data Analysis with SQL Specialization](https://www.coursera.org/specializations/cloudera-big-data-analysis-sql) - Coursera. Offered by Cloudera. +- [University of California, San Diego: Python Data Products for Predictive Analytics Specialization](https://www.coursera.org/specializations/python-data-products-for-predictive-analytics) - Coursera Specialization + +### Data collection + +- [University of Maryland, College Park & University of Michigan: Survey Data Collection and Analytics](https://www.coursera.org/specializations/data-collection) - Coursera Specialization + +### Data mining + +- [University of Illinois: Data Mining](https://www.coursera.org/specializations/data-mining) - Coursera Specialization + +### Machine learning + +- [Data Science: Machine Learning](https://www.edx.org/course/data-science-machine-learning) - edX. Offered by Harvard University. Includes: R basics, visualization, probability, inference and modeling, productivity tools, wrangling, linear regression, machine learning, capstone. +- [Reinforcement Learning Specialization](https://www.coursera.org/specializations/reinforcement-learning) - Coursera. Offered by University of Alberta. Includes: fundamentals of reinforcement learning, sample-based learning methods, prediction and control with function approximation, a complete reinforcement learning system (capstone). + +## Databases + +- [Database systems Specialization](https://www.coursera.org/specializations/database-systems) - Coursera. Includes: + - [Relational database systems](https://www.coursera.org/learn/relational-database) + - [Business intelligence and data warehousing](https://www.coursera.org/learn/business-intelligence-data-warehousing) + - [NoSQL systems](https://www.coursera.org/learn/nosql-databases) + - [Designing data-intensive applications](https://www.coursera.org/learn/data-intensive-applications) + +## Foreign languages + +### Spanish + +#### Artificial intelligence + +- [Introducción a la inteligencia artificial Specialization](https://www.coursera.org/specializations/inteligencia-artificial) - Coursera. Includes: + - [Sesenta años de inteligencia artificial](https://www.coursera.org/learn/sesenta-anos-inteligencia-artificial?specialization=inteligencia-artificial) + - [Razonamiento artificial](https://www.coursera.org/learn/razonamiento-artificial?specialization=inteligencia-artificial) + - [Resolución de problemas por búsqueda](https://www.coursera.org/learn/resolucion-busqueda?specialization=inteligencia-artificial) + - [Aprendizaje de máquinas](https://www.coursera.org/learn/aprendizaje-maquinas?specialization=inteligencia-artificial) + - [Cómputo evolutivo](https://www.coursera.org/learn/computo-evolutivo) + - [Comportamiento adaptativo](https://www.coursera.org/learn/comportamiento-adapta) + - [Creatividad artificial](https://www.coursera.org/learn/creatividad-artificial) + - [Cognición encarnada](https://www.coursera.org/learn/cognicion) + - [Inteligencia artificial: Proyecto final](https://www.coursera.org/learn/inteligencia-artificial-proyecto) + +##### Machine learning + +- [Machine Learning with TensorFlow on Google Cloud Platform en Español Specialization](https://www.coursera.org/specializations/machine-learning-tensorflow-gcp-es) - Coursera. Includes: + - [How Google does Machine Learning en Español](https://www.coursera.org/learn/google-machine-learning-es?specialization=machine-learning-tensorflow-gcp-es) + - [Launching into Machine Learning en Español](https://www.coursera.org/learn/launching-machine-learning-es?specialization=machine-learning-tensorflow-gcp-es) + - [Intro to TensorFlow en Español](https://www.coursera.org/learn/intro-tensorflow-es?specialization=machine-learning-tensorflow-gcp-es) + - [Feature Engineering en Español](https://www.coursera.org/learn/feature-engineering-es?specialization=machine-learning-tensorflow-gcp-es) + - [Art and Science of Machine Learning en Español](https://www.coursera.org/learn/art-science-ml-es) +- [How Google does Machine Learning en Español](https://www.coursera.org/learn/google-machine-learning-es) - Coursera. + +#### Cloud computing + +- [Architecting with Google Cloud Platform en Español Specialization](https://www.coursera.org/specializations/gcp-architecture-es) - Coursera. Includes: + - [Google Cloud Platform Fundamentals: Core Infrastructure en Español](https://www.coursera.org/learn/gcp-fundamentals-es?specialization=gcp-architecture-es) + - [Essential Cloud Infrastructure: Foundation en Español](https://www.coursera.org/learn/gcp-infrastructure-foundation-es?specialization=gcp-architecture-es) + - [Essential Cloud Infrastructure: Core Services en Español](https://www.coursera.org/learn/gcp-infrastructure-core-services-es?specialization=gcp-architecture-es) + - [Elastic Cloud Infrastructure: Scaling and Automation en Español](https://www.coursera.org/learn/gcp-infrastructure-scaling-automation-es?specialization=gcp-architecture-es) + - [Elastic Cloud Infrastructure: Containers and Services en Español](https://www.coursera.org/learn/gcp-infrastructure-containers-services-es) + - [Reliable Cloud Infrastructure: Design and Process en Español](https://www.coursera.org/learn/cloud-infrastructure-design-process-es) + +#### Programming + +- [Introducción a la programación con Python](https://www.coursera.org/learn/introduccion-python) - Coursera. + +#### Web development + +- [Full Stack Web Development en Español Specialization](https://www.coursera.org/specializations/fullstack-web-development-espanol) - Coursera. Includes: + - [Diseñando páginas web con Bootstrap 4](https://www.coursera.org/learn/disenando-paginas-bootstrap4) + - [Desarrollo de páginas con Angular](https://www.coursera.org/learn/desarrollar-paginas-web-con-angular) + - [Desarrollo de Aplicaciones Mobile Multiplataforma con Nativescript, Angular y Redux](https://www.coursera.org/learn/aplicaciones-mobile-multiplataforma-nativescript-angular-redux) + - [Desarrollo del lado servidor: NodeJS, Express y MongoDB](https://www.coursera.org/learn/desarrollo-lado-servidor-nodejs-express-mongodb) + +## Game development + +- [CS50's Introduction to Game Development](https://www.edx.org/professional-certificate/harvardx-computer-science-for-game-development) - HarvardX - _"Learn about the development of 2D and 3D interactive games in this hands-on course, as you explore the design of games such as Super Mario Bros., Pokémon, Angry Birds, and more. The course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and LÖVE 2D, as well as languages like Lua and C#."_ + +## Git & GitHub + +- [Git Essential Training](https://www.linkedin.com/learning/git-essential-training) (_free with free trial_) - LinkedIn Learning. _"Using a step-by-step approach, author Kevin Skoglund presents the commands that enable efficient code management and reveals the fundamental concepts behind version control systems and the Git architecture. Discover how to track changes to files in a repository, review previous edits, and compare versions of a file; create branches to test new ideas without altering the main project; and merge those changes into the project if they work out._" +- [Git Started with GitHub](https://www.udemy.com/git-started-with-github/) - Udacity. _"This course is designed to jump right into showing how Git and GitHub work together, focusing on the Git basic workflow. Students can expect to learn the minimum needed to start using Git in about 30 minutes."_ +- [How to Use Git and GitHub](https://eu.udacity.com/course/how-to-use-git-and-github--ud775) - Udacity. _"This course, built with input from GitHub, will introduce the basics of using version control by focusing on a particular version control system called Git and a collaboration platform called GitHub."_ +- [Short and Sweet: Get Started with Git and GitHub Right Now](https://www.udemy.com/short-and-sweet-get-started-with-git-and-github-right-now/) - Udemy. _"In just 30 minutes, this "Short and Sweet" course covers the essential ideas you need to move forward, without a lot of filler. At the end of the course, you'll be able to set up a GitHub account, install Git, create and configure new Git and GitHub repositories, create a change history for your software projects, and publish your software projects to GitHub."_ +- [The Ultimate GIT 5-day Challenge](https://www.udemy.com/the-ultimate-git-5-day-challenge/) - Udacity. _"A quick way to determine if working with GIT is something you want to learn more about. This course takes us step-by-step through some basic GIT operations. The course will not dive too deep, and takes small steps on each of five days. As we continue through the course, we learn a basic, single-person workflow that could allow anyone to store files at GitHub or BitBucket."_ +- [Version Control with Git](https://www.coursera.org/learn/version-control-with-git) - Coursera. _"In this course, you will not learn everything there is to know about Git, but you will build a strong conceptual understanding of the technology, and afterward will be able to confidently dig deeper on any topic that interests you."_ +- [Introduction to Git and Github](https://www.coursera.org/learn/introduction-git-github) - Coursera. Offered by Google. _"In this course, you’ll learn how to keep track of the different versions of your code and configuration files using a popular version control system (VCS) called Git. We'll also go through how to setup an account with a service called GitHub so that you can create your very own remote repositories to store your code and configuration."_ + +## Internet of Things + +- [Curtin University](https://www.edx.org/micromasters/curtinx-internet-of-things-iot) (Internet of Things) - edX MicroMaster + +## Learning strategies + +- [Learning How to Learn: Powerful mental tools to help you master tough subjects](https://www.coursera.org/learn/learning-how-to-learn) - Coursera. McMaster University & University of California San Diego. +- [Mindshift: Break Through Obstacles to Learning and Discover Your Hidden Potential](https://www.coursera.org/learn/mindshift) - Coursera. McMaster University. + +## Linux + +- [Introduction to Linux](https://www.edx.org/course/introduction-to-linux) - edX. _"Develop a good working knowledge of Linux using both the graphical interface and command line, covering the major Linux distribution families."_ + +## Mathematics + +- [Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) - Coursera. _"Learn how to think the way mathematicians do – a powerful cognitive process developed over thousands of years."_ +- [Mathematics for Machine Learning Specialization](https://www.coursera.org/specializations/mathematics-machine-learning) - Coursera. Includes: + - [Mathematics for Machine Learning: Linear Algebra](https://www.coursera.org/learn/linear-algebra-machine-learning) + - [Mathematics for Machine Learning: Multivariate Calculus](https://www.coursera.org/learn/multivariate-calculus-machine-learning) + - [Mathematics for Machine Learning: PCA](https://www.coursera.org/learn/pca-machine-learning) +- [Number Theory and Cryptography](https://www.coursera.org/learn/number-theory-cryptography) - Coursera. _"By the end, you will be able to apply the basics of the number theory to encrypt and decrypt messages, and to break the code if one applies RSA carelessly. You will even pass a cryptographic quest!"_ + +### Calculus + +- [Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation-2) - edX. Offered by MIT. +- [Calculus Applied](https://online-learning.harvard.edu/course/calculus-applied) - edX. Offered by Harvard University. +- [Calculus: Single Variable Part 1 - Functions](https://www.coursera.org/learn/single-variable-calculus) - Coursera. Offered by Penn, University of Pennsylvania. +- [Calculus: Single Variable Part 2 - Differentiation](https://www.coursera.org/learn/differentiation-calculus) - Coursera. Offered by Penn, University of Pennsylvania. +- [Calculus: Single Variable Part 3 - Integration](https://www.coursera.org/learn/integration-calculus) - Coursera. Offered by Penn, University of Pennsylvania. +- [Calculus: Single Variable Part 4 - Applications](https://www.coursera.org/learn/applications-calculus) - Coursera. Offered by Penn, University of Pennsylvania. +- [Introduction to Calculus](https://www.coursera.org/learn/introduction-to-calculus) - Coursera. Offered by University of Sydney. +- [Mathematics for Machine Learning: Multivariate Calculus](https://www.coursera.org/learn/multivariate-calculus-machine-learning) - Coursera. Offered by Imperial College London. + +### Linear algebra + +- [Linear Algebra - Foundations to Frontiers](https://www.edx.org/es/course/linear-algebra-foundations-to-frontiers-2) - edX. Offered by University of Texas. + +### Probability and statistics + +- [Bayesian Statistics: From Concept to Data Analysis](https://www.coursera.org/learn/bayesian-statistics) - Coursera. _"This course introduces the Bayesian approach to statistics, starting with the concept of probability and moving to the analysis of data. We will learn about the philosophy of the Bayesian approach as well as how to implement it for common types of data. We will compare the Bayesian approach to the more commonly-taught Frequentist approach, and see some of the benefits of the Bayesian approach."_ +- [Fat Chance: Probability from the Ground Up](https://online-learning.harvard.edu/course/fat-chance-probability-ground) - edX. Offered by Harvard University. _"Increase your quantitative reasoning skills through a deeper understanding of probability and statistics."_ +- [Probability - The Science of Uncertainty and Data](https://www.edx.org/course/probability-the-science-of-uncertainty-and-data-0) - edX. Offered by MIT. + +### Various topics + +- [Saylor Academy](https://learn.saylor.org/course/index.php?categoryid=13) - _"Explore the real-world applications of mathematics through algebra, calculus, statistics, and geometry. You can earn a free certificate of completion for any of these online Mathematics courses, or use many of them to earn credit in leading college programs."_ + +## Mobile development + +- [CS50's Mobile App Development with React Native](https://www.edx.org/professional-certificate/harvardx-computer-science-and-mobile-apps) - HarvardX. _"Learn about mobile app development with React Native, a popular framework maintained by Facebook that enables cross-platform native apps using JavaScript without Java or Swift."_ + +## Psychology & Health + +- [A Life of Happiness and Fulfillment](https://www.coursera.org/learn/happiness) - Coursera. - _"[...] draws content from a variety of fields, including psychology, neuroscience, and behavioral decision theory to offer a tested and practical recipe for leading a life of happiness and fulfillment."_ +- [Maintaining a Mindful Life](https://www.futurelearn.com/courses/mindfulness-life) - FutureLearn. - _"Learn how to apply mindfulness techniques, so you can improve your communication, relationships and emotional health."_ +- [Mindfulness for Wellbeing and Peak Performance](https://www.futurelearn.com/courses/mindfulness-wellbeing-performance) - FutureLearn - _"Learn mindfulness techniques to reduce stress and improve your wellbeing and work/study performance."_ + +## Support & Operations + +- :black*square_button: [Google IT Support Professional Certificate](https://www.coursera.org/professional-certificates/google-it-support) - Coursera. (free to audit, :heavy_dollar_sign: paid certification) *"The program will introduce you to troubleshooting, customer service, networking, operating systems, system administration and security."\_ +- [Google IT Automation with Python Professional Certificate](https://www.coursera.org/professional-certificates/google-it-automation) - Coursera. (free to audit, :heavy*dollar_sign: paid certification) *"Automate tasks by writing Python scripts. Use Git and GitHub for version control. Manage IT resources at scale, both for physical machines and virtual machines in the cloud. Analyze real-world IT problems and implement the appropriate strategies to solve those problems."\_ + +## Web development + +- [CS50's Web Programming with Python and JavaScript](https://www.edx.org/course/cs50s-web-programming-with-python-and-javascript) - edX. - Offered by Harvard University. - _"This course picks up where [CS50](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x) leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Flask, Django, and Bootstrap."_ +- [FreeCodeCamp](https://www.freecodecamp.org) - _"freeCodeCamp.org is a friendly community where you can learn to code for free. [...] Our full-stack web development curriculum is completely free and self-paced. We have thousands of interactive coding challenges to help you expand your skills."_ +- [Responsive Website Basics: Code with HTML, CSS, and JavaScript](https://www.coursera.org/learn/website-coding) - Offered by University of London. _"In this course you will learn three key website programming and design languages: HTML, CSS and JavaScript. You will create a web page using basic elements to control layout and style. Additionally, your web page will support interactivity."_ +- [Web Fundamentals](https://developers.google.com/web/fundamentals) - _"Google's opinionated reference for building amazing web experiences."_ diff --git a/online_courses/paid/README.md b/online_courses/paid/README.md new file mode 100644 index 00000000..2a8759e1 --- /dev/null +++ b/online_courses/paid/README.md @@ -0,0 +1,25 @@ +[Go back to the main page](../../README.md) + +# Paid online courses + +# Table of contents + +- [Paid online courses](#paid-online-courses) +- [Table of contents](#table-of-contents) +- [Subscription-based](#subscription-based) +- [Pay per course](#pay-per-course) + +--- + +# Subscription-based + +- [ACM - Association for Computing Machinery](https://www.acm.org/membership) \* [Includes access to O'Reilly, ScienceDirect and Skillsoft learning platforms](https://learning.acm.org/e-learning). - _"ACM, the world's largest educational and scientific computing society, delivers resources that advance computing as a science and a profession."_ +- [O'Reilly Safari Books Online](https://learning.oreilly.com) - _"Gain technology and business knowledge and hone your skills with learning resources created and curated by O'Reilly's experts: live online training, video, books, conferences, our platform has content from 200+ of the world’s best publishers."_ +- [PluralSight](https://www.pluralsight.com) - _"The technology learning platform that provides web development, IT certification and ondemand training that helps your career and your business move forward with the right technology and the right skills."_ +- [The Great Courses Plus](https://www.thegreatcoursesplus.com) - _"Access a world of knowledge. Unlimited video learning with the world's greatest professors at The Great Courses Plus."_ +- [Treehouse](https://teamtreehouse.com) - _"Treehouse [...] is an online technology school that offers beginner to advanced courses in web design, web development, mobile development and game development taught by team of expert teachers. Its courses are aimed at beginners looking to learn coding skills for a career in the tech industry."_ ([from Wikipedia]()) + +# Pay per course + +- [Udacity](https://www.udacity.com) - _"Advance your career with online courses in programming, data science, artificial intelligence, digital marketing, and more. Built with industry leaders."_ +- [Udemy](https://www.udemy.com) - _"Study any topic, anytime. Choose from thousands of expert-led courses now."_ diff --git a/podcasts/README.md b/podcasts/README.md new file mode 100644 index 00000000..197d378e --- /dev/null +++ b/podcasts/README.md @@ -0,0 +1,142 @@ +[Go back to the main page](../README.md) + +# Podcasts + +# Table of contents + +- [Podcasts](#podcasts) +- [Table of contents](#table-of-contents) +- [Awesome Geek Podcasts](#awesome-geek-podcasts) +- [Artificial intelligence](#artificial-intelligence) +- [Computer science](#computer-science) +- [Cybersecurity](#cybersecurity) +- [Data science](#data-science) +- [Economics](#economics) +- [Education](#education) +- [Music](#music) +- [Programming](#programming) + - [Beginner-friendly](#beginner-friendly) + - [Interviews](#interviews) + - [Music](#music-1) + - [Python](#python) + - [Software development](#software-development) + - [Testing](#testing) + - [Web development](#web-development) +- [Science](#science) +- [Technology](#technology) +- [Variety](#variety) + +--- + +# [Awesome Geek Podcasts](https://github.com/ayr-ton/awesome-geek-podcasts) + +> A curated list of podcasts we like to listen to. — [![awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +# Artificial intelligence + +- [Artificial Intelligence: AI Podcast](https://lexfridman.com/ai) - _"Artificial Intelligence podcast (AI podcast) is a series of conversations about technology, science, and the human condition hosted by Lex Fridman."_ +- [Brain Inspired](https://braininspired.co/podcast/) - _"Where neuroscience and artificial intelligence converge."_ + +# Computer science + +- [Base.cs](https://www.codenewbie.org/basecs) - _"Beginner-friendly computer science lessons based on Vaidehi Joshi's base.cs blog series, produced by CodeNewbie."_ + +# Cybersecurity + +- [Darknet Diaries](https://darknetdiaries.com/) - _"Darknet Diaries delves into the cybercrimes that are happening right under your nose. Cover your laptop camera, throw that iPhone in the river, and hang out in that weird no-reception corner or your home."_ +- [Hackable?](https://hackablepodcast.com/) - _"Curious about how cybercriminals get all of your information? "Hackable?" gets into the mind of a hacker to see how easy it is to crack into Wi-Fi, cars, webcams, and more."_ +- [Malicious Life](https://malicious.life/) - _"Malicious Life by Cybereason tells the unknown stories of the history of cybersecurity, with comments and reflections by real hackers, security experts, journalists, and politicians."_ +- [Security Now](https://twit.tv/shows/security-now) - _"Steve Gibson, the man who coined the term spyware and created the first anti-spyware program, creator of Spinrite and ShieldsUP, discusses the hot topics in security today with Leo Laporte."_ + +# Data science + +- [Data Skeptic](https://dataskeptic.com/) - _"Data science, statistics, machine learning, artificial intelligence, and scientific skepticism."_ +- [Linear Digressions](http://lineardigressions.com/) - _"Linear Digressions is a podcast about machine learning and data science. Machine learning is being used to solve a ton of interesting problems, and to accomplish goals that were out of reach even a few short years ago."_ + +# Economics + +- [EconTalk](http://www.econtalk.org/) - _"EconTalk is a weekly economics podcast hosted by Russ Roberts. Roberts, formerly an economics professor at George Mason University, is a research fellow at Stanford University's Hoover Institution. On the podcast, Roberts typically interviews a single guest—often professional economists—on topics in economics."_ ([from Wikipedia](https://en.wikipedia.org/wiki/EconTalk)) + +# Education + +- [Naval](https://nav.al/) - _"Naval on wealth and happiness."_ +- [TED Podcasts](https://www.ted.com/podcasts) - _"Learn more about TED's original podcast initiatives. Subscribe to listen on Apple Podcasts, the TED Android app, or wherever you get your podcasts."_ +- [TED Radio Hour](https://www.npr.org/programs/ted-radio-hour/) - _"A journey through fascinating ideas, astonishing inventions, and new ways to think and create. Based on riveting TEDTalks from the world's most remarkable minds."_ +- [The Knowledge Project](https://fs.blog/knowledge-project/) - _"Master the best of what other people have already figured out."_ + +# Music + +- [Song Exploder](http://songexploder.net) - _"Song Exploder is a podcast where musicians take apart their songs, and piece by piece, tell the story of how they were made."_ + +# Programming + +- [Developer Tea](https://spec.fm/podcasts/developer-tea) - _"A podcast for developers designed to fit inside your tea break."_ +- [GitHub Community Cast](https://player.fm/series/github-community-cast) - _"The GitHub Community Cast features interesting community stories and news from around the GitHub universe."_ +- [Programming Throwdown](https://www.programmingthrowdown.com/) - _"Programming Throwdown with Patrick Wheeler and Jason Gauci."_ + +## Beginner-friendly + +- [CodeNewbie](https://www.codenewbie.org/podcast/) - _"Stories from people on their coding journey."_ +- [Coding Blocks](https://www.codingblocks.net/) - _"Coding Blocks is the podcast and website for learning how to become a better software developer. We cover a wide variety of topics that range from good programming practices which are language agnostic all the way to specifics for particular languages."_ +- [Complete Developer Podcast](https://player.fm/series/series-2257924) - _"A podcast by coders for coders about all aspects of life as a developer."_ +- [Developing Up](https://player.fm/series/series-1402140) - _"A podcast focused on the non-technical side of being a developer, because your career is about more than the code you write."_ +- [Eat Sleep Code](http://pca.st/lDZb) - _"On Eat Sleep Code you'll hear from industry pros and developers just like you. Topics include all things software development and upcoming tech."_ +- [HANSELMINUTES](https://www.hanselminutes.com/) - _"The Hanselminutes Podcast by Scott Hanselman - Fresh Air for Developers - Deep tech talk from an inclusive perspective."_ +- [Learn To Code With Me](https://learntocodewith.me/podcast/) - *"Learning how to code? Love podcasts? Then you can't miss the *new* Learn to Code With Me podcast!"* +- [Simple Programmer](https://player.fm/series/74672) - _"The Simple Programmer Podcast is a short podcast that is a mix of career advice, philosophy and soft skills from successful author and software developer, John Sonmez."_ +- [Soft Skills Engineering](https://player.fm/series/soft-skills-engineering-133571) - _"It takes more than great code to be a great engineer. Soft Skills Engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into being a great software developer."_ +- [This Developer's Life](http://thisdeveloperslife.com/) - _"A podcast about developers and their lives."_ +- [Weekly Dev Tips](https://player.fm/series/weekly-dev-tips) - _"Weekly Dev Tips offers a variety of technical and career tips for software developers. Each tip is quick and to the point, describing a problem and one or more ways to solve that problem."_ + +## Interviews + +- [CoRecursive - Software Engineering Interviews](https://player.fm/series/corecursive-software-engineering-interviews) - _"CoRecursive features In-Depth technical interviews with software developers. Learn about programming languages such as Scala, Haskell, Idris, Kotlin, Erlang and Functional Programming and Type Theory from experts in one on one interviews."_ +- [Developer On Fire](https://player.fm/series/developer-on-fire-117746) - _"Developer On Fire with Dave Rael is an interview podcast with inspiring and successful software professionals telling personal stories about their experiences with delivering value."_ + +## Music + +- [Music For Programming](http://musicforprogramming.net/) - _"Datassette presents a series of mixes intended for listening while programming to aid concentration and increase productivity (also compatible with other activities)."_ + +## Python + +- [Python Bytes](https://pythonbytes.fm/) - _"Python headlines delivered directly to your earbuds."_ +- [Talk Python To Me](https://talkpython.fm/) - _"Talk Python To Me is a podcast for developers who are passionate about Python. Learn about the language and related technologies."_ + +## Software development + +- [Changelog Masterfeed](https://changelog.com/master) - _Weekly shows about developer culture, software development, open source, building startups, artificial intelligence, and the people involved._ +- [Coder Radio](https://player.fm/series/coder-radio-2440919) - _"A weekly talk show taking a pragmatic look at the art and business of Software Development and related technologies."_ +- [InfoQ](https://www.infoq.com/the-infoq-podcast) - _"Curated and peer-reviewed content covering innovation in professional software development, read by over 1 million developers worldwide."_ +- [Software Engineering Daily](https://softwareengineeringdaily.com) - _"The world through the lens of software."_ +- [Software Engineering Radio](https://www.se-radio.net/) - _"The podcast for professional software developers."_ +- [The Rabbit Hole: An Inside Look into Software Development](https://player.fm/series/the-rabbit-hole-an-inside-look-into-software-development) - _"If you are a software developer or technology leader looking to stay on top of the latest news in the software development world, or just want to learn actionable tactics to improve your day-to-day job performance, this podcast is for you."_ + +## Testing + +- [Test & Code](https://testandcode.com/) - _"A Podcast about Software Testing, Software Development, and Python."_ +- [TestTalks - Automation Awesomeness - Helping YOU Succeed with Test Automation](https://player.fm/series/testtalks-automation-awesomeness-helping-you-succeed-with-test-automation-2391007) - _"TestTalks is a weekly podcast hosted by Joe Colantonio, which geeks out on all things software test automation. TestTalks covers news found in the testing space, reviews books about automation and speaks with some of the thought leaders in the test automation field."_ + +## Web development + +- [Front End Happy Hour](https://player.fm/series/front-end-happy-hour-131187) - _"A podcast featuring panelists of engineers from Netflix, Evernote & LinkedIn talking over drinks about all things Front End development."_ +- [Full Stack Radio](https://player.fm/series/series-1401837) - _"A podcast for developers interested in building great software products. Every episode, Adam Wathan is joined by a guest to talk about everything from product design and user experience to unit testing and system administration."_ +- [Syntax.fm](https://syntax.fm/) - _"Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and talking about their own experiences."_ + +# Science + +- [The Naked Scientists](https://www.thenakedscientists.com/) - _"The Naked Scientists is a one-hour audience-interactive science radio talk show broadcast live by the BBC in the East of England, nationally by BBC Radio 5 Live and internationally on ABC Radio National, Australia; it is also distributed globally as a podcast."_ ([from Wikipedia](https://en.wikipedia.org/wiki/The_Naked_Scientists)) + +# Technology + +- [A16z](https://a16z.com/podcasts/) - _"The a16z Podcast discusses tech and culture trends, news, and the future -- especially as ‘software eats the world’. It features industry experts, business leaders, and other interesting thinkers and voices from around the world. Multiple episodes are released every week."_ +- [Accidental Tech Podcast](https://atp.fm/) - _"A tech podcast we accidentally created while trying to do a car show."_ +- [Command_Line Heroes](https://www.redhat.com/en/command-line-heroes) - _"An original podcast about the people who transform technology from the command line up. Presented by Red Hat."_ +- [IRL: Online Life is Real Life](https://irlpodcast.org/) - _"Host Manoush Zomorodi shares real stories of life online and real talk about the future of the Web. IRL is an original podcast from Firefox."_ ([from IRL](https://irlpodcast.org/)) +- [On the Metal](https://oxide.computer/blog/categories/on-the-metal/) - _"Joined frequently by their boss, Steve Tuck, Bryan and Jess interview incredible guests retelling stories of adventure at the hardware/software interface. It’s unapologetically technical and as Jess says, “the nerdiest podcast on the face of the planet” -- but if you're their kind of nerd, you'll find yourself hanging on every word!"_ ([from Spotify](https://open.spotify.com/show/4GDUravTUbvTrdJ2oWnzJp)) +- [Recode Decode](https://www.vox.com/recode-podcasts) - _"Recode’s Kara Swisher, Silicon Valley’s most revered journalist, hosts candid interviews with tech execs, politicians, celebrities and more about their big ideas and how they’re changing our world. Tune in every week for enlightening conversations with people like Tesla CEO Elon Musk, former Secretary of State Hillary Clinton, Facebook CEO Mark Zuckerberg, and many more."_ +- [Techdirt](https://www.techdirt.com/blog/podcast/) - _"Techdirt is one of the better podcasts in tech policy issues."_ (from Alex Flach, UoL student) +- [The Talk Show - John Gruber](https://daringfireball.net/thetalkshow/) - _"The Talk Show is a technology podcast started by Gruber intended as a "director's commentary" to his website, Daring Fireball."_ ([from Wikipedia](https://en.wikipedia.org/wiki/John_Gruber#The_Talk_Show)) + +# Variety + +- [The Joe Rogan Experience](http://podcasts.joerogan.net/) - _"The Joe Rogan Experience is a free audio and video podcast hosted by American comedian, actor, sports commentator, martial artist and television host Joe Rogan."_ ([from Wikipedia](https://en.wikipedia.org/wiki/The_Joe_Rogan_Experience)) diff --git a/showcase/README.md b/showcase/README.md new file mode 100644 index 00000000..523d6df3 --- /dev/null +++ b/showcase/README.md @@ -0,0 +1,17 @@ +[Go back to the main page](../README.md) + +# Showcase + +The following list is a showcase of student-built applications, technologies, frameworks, and research that other students and faculty may find useful. + +# Table of contents + +- [Showcase](#showcase) +- [Table of contents](#table-of-contents) + - [Educational](#educational) + +--- + +## Educational + +- [Coding Rooms](https://codingrooms.com/) - Virtual classrooms for teaching coding that let you see all your students' code in real-time with multi-language support, audio, video, and presentation uploads by [Sasha Varlamov (BSc CS - ML/AI program)](https://github.com/svarlamov) diff --git a/slack/README.md b/slack/README.md new file mode 100644 index 00000000..72e6cf22 --- /dev/null +++ b/slack/README.md @@ -0,0 +1,189 @@ +[Go back to the main page](../README.md) + +# Slack + +# Table of contents + +- [Slack](#slack) +- [Table of contents](#table-of-contents) + - [Resources](#resources) + - [Channels](#channels) + - [All cohorts](#all-cohorts) + - [Fun channels](#fun-channels) + - [Help and resources](#help-and-resources) + - [Modules level 4](#modules-level-4) + - [Modules level 5](#modules-level-5) + - [Modules level 6](#modules-level-6) + - [Specialisms](#specialisms) + - [How to use Slack](#how-to-use-slack) + - [For developers & contributors](#for-developers--contributors) + - [Slack Onboarding](#slack-onboarding) + - [Slack Onboarding Workflow ('Slack Tutor')](#slack-onboarding-workflow-slack-tutor) + +## Resources + +### Channels + +Don't forget to check out the right channels on Slack that will be best suited to help you! + +#### All cohorts + +There is a channel available for each new cohort: + +- `firstcohort` (private) - `april2019batcharchive` (archive) +- `october2019batch` +- `april2020batch` +- ... + +#### Fun channels + +| Channel | Purpose | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `#hackathons` | Organise coding challenges | +| `#hacking` | Ethical hacking / general InfoSec stuff | +| `#introductions` | Introduce yourself to your new course mates | +| `#journal-club` | Read and discuss research papers | +| `#memes` | Share all the dank memes | +| `#music` | Off topic discussion about music | +| `#pets` | For a bit of furry, feathery or scaly relief | +| `#photography` | Share your favorite photos and view those from others | +| `#polyglots` | If you are into learning languages other than programming ones | +| `#random` | A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels | +| `#retrocomputing` | For those who think that modern computers are too fast. Here we can show our C64-programs, our EBCDIC-skills and ask questions about the Motorola 68000 CPU. | +| `#space` | Space exploration, astrophysics and astronomy (or maybe you're just a Trek-kie) | +| `#today-i-learned` | Share briefly what you learned today | +| `#uol_game-jam` | Group for organising game jams | + +#### Help and resources + +| Channel | Purpose | +| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `#advanceddegree` | Everything related to advanced degree(s) | +| `#askpreviouscohorts` | Asking previous cohorts questions related to the programme | +| `#bookworm` | What the great minds of this world are reading | +| `#bugs` | When you see a bug, report it here so we can all collectively flag it and speed up the process of cleaning up the course content | +| `#channel-discovery` | Find great new channels related to our degree | +| `#cs-professionals` | Gathering for professionals from computer science & engineering industry | +| `#entrepreneurs` | A channel for entrepreneurs or wannabe entrepreneurs to collaborate and help each other | +| `#free-stuff` | Free stuff to share with others. How have you used your student card etc? | +| `#functional` | Since functional programming is becoming kind of a mandatory skill in many companies and since it is not easy to be good at it, maybe we want to share thoughts, links, ideas, know-how, blogs, presentations, designs, patterns etc. | +| `#general` | This channel is for workspace-wide communication and announcements. All members are in this channel. | +| `#html-and-css` | To discuss and questions about web development. | +| `#job_opportunities` | To share IT job opportunities | +| `#latex` | Share examples and ask questions about the LaTeX typesetting system | +| `#linear-algebra` | Extra-curricular activity | +| `#linux` | A channel for Linux related discussions | +| `#live-sessions` | Study in live sessions with your peers, making the most of our collective intelligence | +| `#maths` | To share interesting math problems | +| `#newbies` | Discussion about programming fundamentals, for programming newbies | +| `#notes` | Sharing different notes not only from uni or links to other uni open lectures | +| `#official-communications` | Please post any helpful conversations with SRMs or communication from UoL here. Use threads and try to keep things searchable. (Add textual descriptions). A fair warning: even though the name says official. Nothing posted here is binding in any way. | +| `#open_source_collaborations` | For UoL students to collaborate together on projects they may want to use for portfolios or building future businesses | +| `#pair-programming` | Find partners to work with on programming problems | +| `#podcasts` | Listen your way to success while being entertained | +| `#repl` | Shaping the future of the REPL with a flow of ideas | +| `#resources` | Post useful learning resources here | +| `#reviewexchange` | For those that need a peer review to review each other | +| `#rpl-hcw-google-it` | For discussing Google IT professional Certificate | +| `#studytips_and_tools` | Share study tips, methods, apps that might help others | +| `#teachyourselfcs` | Discussions related to the roadmap provided by teachyourselfcs.com, Find Resources on https://teachyourselfcs-uol.btofficiel.now.sh | +| `#transfer-to-on-campus` | For everyone considering transferring to an on-campus degree | +| `#vent` | We know that sometimes, you need to let off steam. Instead of cluttering other channels, it makes more sense to have a dedicated channel to just venting | +| `#webinars` | Automatic announcements for upcoming webinars | + +All channels starting with `#asg` for **Accountable Study Groups**. + +#### Modules level 4 + +| Channel | Module name | +| ---------------------------- | ------------------------------------------------------------------------------------------------- | +| `#cm1005-intro-prog-i` | [Introduction to programming I](../modules/level_4/introduction_to_programming_i/README.md) | +| `#cm1010-intro-prog-ii` | [Introduction to programming II](../modules/level_4/introduction_to_programming_ii/README.md) | +| `#cm1015-computational-math` | [Computational mathematics](../modules/level_4/computational_mathematics/README.md) | +| `#cm1020-discrete-math` | [Discrete mathematics](../modules/level_4/discrete_mathematics/README.md) | +| `#cm1025-fundamental-cs` | [Fundamentals of computer science](../modules/level_4/fundamentals_of_computer_science/README.md) | +| `#cm1030-hcw` \* | [How computers work](../modules/level_4/how_computers_work/README.md) | +| `#cm1035-algos-data-i` | [Algorithms and data structures I](../modules/level_4/algorithms_and_data_structures_i/README.md) | +| `#cm1040-web-dev` | [Web development](../modules/level_4/web_development/README.md) | + +\* This module can be skipped with RPL (Recognition of Prior Learning). See the channel `#rpl-hcw-google-it` and the [FAQ here](../faq#recognition-of-prior-learning-rpl). + +#### Modules level 5 + +| Channel | Module name | +| ------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `#cm2005-object-oriented-programming` | [Object Oriented Programming](../modules/level_5/object_oriented_programming) | +| `#cm2010-software-design-development` | [Software Design and Development](../modules/level_5/software_design_and_development) | +| `#cm2015-programming-with-data` | [Programming with Data](../modules/level_5/programming_with_data) | +| `#cm2020-agile-software-projects` | [Agile Software Projects](../modules/level_5/agile_software_projects) | +| `#cm2025-computer-security` | [Computer Security](../modules/level_5/computer_security) | +| `#cm2030-graphics-programming` | [Graphics Programming](../modules/level_5/graphics_programming) | +| `#cm2035-algos-data-ii` | [Algorithms and data structures II](../modules/level_5/algorithms_and_data_structures_ii/README.md) | +| `#cm2040-databases-networks-web` | [Databases, Networks and the Web](../modules/level_5/databases_networks_and_the_web) | + +#### Modules level 6 + +| Channel | Module name | +| ---------------------------------------------- | ------------------------------------------------------------------ | +| `#cm3005-data-science` | [Data Science](../modules/level_6/cm_3005) | +| `#cm3015-machine-learning-and-neural-networks` | [Machine Learning and Neural Networks](../modules/level_6/cm_3015) | +| `#cm3020-artificial-intelligence` | [Artificial Intelligence](../modules/level_6/cm_3020) | +| `#cm3035-adv-web-dev` | [Advanced Web Development](../modules/level_6/cm_3035) | +| `#cm3055-interaction-design` | [Interaction Design](../modules/level_6/cm_3055) | + +#### Specialisms + +| Channel | Specialism | +| --------------- | -------------------------------------------------------------------------------- | +| `#data_science` | [Data Science](../modules/level_6/data_science/README.md) | +| `#gamedev` | [Game Development](../modules/level_6/games_dev/README.md) | +| `#iot` | [Internet of Things](../modules/level_6/phys_computing_iot/README.md) | +| `#mlai` | [Machine Learning & Artificial Intelligence](../modules/level_6/ml_ai/README.md) | +| `#ux` | [User Experience](../modules/level_6/user_experience/README.md) | +| `#vr` | [Virtual Reality](../modules/level_6/virtual_reality/README.md) | +| `#webdev` | [Web and Mobile Development](../modules/level_6/web_mobile_dev/README.md) | + +### How to use Slack + +- [Available shortcuts](https://get.slack.help/hc/en-us/articles/201374536-Slack-keyboard-shortcuts) +- [How to format your messages](https://get.slack.help/hc/en-us/articles/202288908-Format-your-messages) +- [How to share snippets of code](https://slack.com/slack-tips/share-code-snippets) (JavaScript, HTML, CSS, Python, C++, etc.) +- [How to use pinned items](https://slack.com/intl/en-mx/help/articles/205239997-Pin-messages) (important info in each channel) +- [How to search effectively](https://slack.com/intl/en-mx/help/articles/202528808-Search-in-Slack) (filtering by channel, user, date, file types, etc.) +- [How to find channels](https://slackhq.com/introducing-channel-search-for-slack) +- [Using threads while communicating to keep chats organized](https://slack.com/intl/en-in/help/articles/115000769927-Use-threads-to-organise-discussions-) +- [Slack help center](https://get.slack.help/hc/en-us) for anything else + +## For developers & contributors + +[awesome-slack](https://github.com/matiassingers/awesome-slack/) — [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +> A curated list of awesome Slack related things + +### Slack Onboarding + +#### Slack Onboarding Workflow ('Slack Tutor') + +A Slack workflow welcomes new students joining the workspace to guide them on their journey from the very beginning by pointing them to this repository and other useful resources. Right now, the custom message sent by the workflow is as follow: + +``` +Hey @new_user_name! Welcome aboard. A few key points you will want to know to get started: + +- *Reply using threads* to keep things neat instead of posting to the channel. :thumbsup: +* Read the *Programme Regulations* and the *Guidelines for Examinations*: london.ac.uk/sites/default/files/regulations/progregs-computer-science-2019-2020.pdf and london.ac.uk/sites/default/files/examiners/guidelines-for-examinations-2018-19.pdf +- *Post in the relevant channels*: there is a channel for each module, starting with `#cm`. For example, discrete maths questions should go in #cm1020-discrete-math. Use #askpreviouscohorts or #october2019batch for cohort specific discussion instead of #general. +- *Make sure a channel doesn't already exist* before creating another one with the same purpose. You can collaborate in a *private group work* by creating a *private channel* instead of a public one. +- *Curated list of course related resources* here: github.com/world-class/REPL +* Remember to check the *pinned messages* in each channel: you'll find useful info! +- *Please do your own research* (Slack, search engine, etc.) before asking a question that has been answered many times. For a start, make sure you have read all the documents you will find on that page: github.com/world-class/REPL#documents-and-resources-provided-publicly-by-the-university-of-london +* Don't forget the *_Search_ feature* available on Slack (specific keywords, messages from a specific user with *from:@username*, in different channels, by files, within certain dates, etc.). → slack.com/help/articles/202528808-search-in-slack +* Get in touch with your tutors and SRMs (Student Relationship Managers)! → github.com/world-class/REPL#reaching-out-to-tutors-and-srms +* Be *nice*, be *respectful*. Don't make jokes or post memes that target a particular gender, religion, nationality or sexuality — we're a global and multicultural community. *Some students may be more sensitive* about certain topics and we certainly *don't want to discriminate* anybody and *don't want to make Slack a hostile environment* in any way. +- *Do not violate UoL guidelines* (don’t post *illegal* materials, solutions to *graded quizzes* or big *chunks of code* related to any graded assignment). +- *Refer to specific modules, videos and quizzes by their number* (week and item numbers as shown in Coursera), so that it is easy for future users to look for answers. You'll find a #bugs channel to help you uncover if a bug you have encountered has been documented before: please post to that channel *only once a bug has been identified* as such in another channel. +- *Thank people* when they help you! :slightly_smiling_face: Despite the distance, we're still humans (most of us, anyways). + +We hope you'll have a great time here! *_Remember that succeeding as a CS student has a lot to do with being able to find answers on your own and sharing them to cement your learning_* :bulb:. + +Be well and *welcome* :slightly_smiling_face:! +``` diff --git a/slack/slack_tutor.slackworkflow b/slack/slack_tutor.slackworkflow new file mode 100644 index 00000000..31ed069c --- /dev/null +++ b/slack/slack_tutor.slackworkflow @@ -0,0 +1 @@ +{"source_id":"290667582422266378","version":"1","workflow":{"name":"Slack Tutor","blueprint":{"version":"1","trigger":{"type":"member_joined_channel","id":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451","config":{"channel":{"value":"CDTPC3FKL"}}},"steps":[{"type":"dialog","id":"de054215-9575-4709-9716-53769657db44","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"dialog_title":"Channel registration","dialog_elements":[{"name":"c45881d6-3920-4add-84c9-9abe885ac25a","type":"select","label":"Subject #1","optional":false,"data_source":"channels"},{"name":"6c848b82-92bf-4d8e-9367-e897e9aed5e1","type":"select","label":"Subject #2","optional":false,"data_source":"channels"},{"name":"f2d01bae-1157-4def-98c8-19e811f8d3df","type":"select","label":"Subject #3","optional":true,"data_source":"channels"},{"name":"398e2f6c-312a-4c58-a396-2fd0b55ed467","type":"select","label":"Subject #4","optional":true,"data_source":"channels"}],"dialog_submit_label":"","delivery_button_label":"Open Registration Form","delivery_message_text":"Hello! To get started, please select modules that you're taking."}},{"type":"message","id":"3e435492-5f3c-4fe0-a017-92352727ff64","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"Continue","message_text":"Let's start by joining the channel of subjects that you've registered. Each subject has a specific channel. All discussions/questions related to the subject should be posted in their relevant channels.\n\n\n\nTo join channels, click on channel link below and and click \"Join Channel\".\nCome back to this message by selecting slackbot from sidebar.\n\n{{de054215-9575-4709-9716-53769657db44==c45881d6-3920-4add-84c9-9abe885ac25a==channel}}\n\nClick on continue after you've joined the channel."}},{"type":"message","id":"d342b15d-8d17-4350-8165-11b08dbeb9cc","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"Continue","message_text":"Join the channel for second subject.\n\n{{de054215-9575-4709-9716-53769657db44==6c848b82-92bf-4d8e-9367-e897e9aed5e1==channel}}\n\nClick on continue after you've joined the channel."}},{"type":"message","id":"ea3e5c4b-ae47-4eea-90ec-c19deac98e0d","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"Continue or Skip","message_text":"Join the channel for third subject.\n\n{{de054215-9575-4709-9716-53769657db44==f2d01bae-1157-4def-98c8-19e811f8d3df==channel}}\n\nClick on continue after you've joined the channel. If you've not taken more than 2 modules you can skip this step."}},{"type":"message","id":"6dec6df7-3b8b-42d5-924d-9561e2fa71ce","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"Continue","message_text":"Join the channel for fourth subject.\n\n{{de054215-9575-4709-9716-53769657db44==398e2f6c-312a-4c58-a396-2fd0b55ed467==channel}}\n\nClick on continue after you've joined the channel. If you've not taken more than 2 modules you can skip this step."}},{"type":"message","id":"c070c0e2-4d6f-456d-bb88-dc500eab33de","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"I've read them, Continue.","message_text":"Make sure you've read the program specifications thoroughly. If not please read them now. They contain answers to 90% of your questions.\n\nhttps://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2019-2020.pdf"}},{"type":"message","id":"5c9d8200-2717-4d6c-b3cc-d59de3c7c8a5","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"Continue or Skip","message_text":"Join <#CN955BTCG|introductions> and introduce yourself.\n\nThis step is optional."}},{"type":"message","id":"6dccfafd-43cb-4446-81b0-f13df5476ebe","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"Continue","message_text":"Gloss over this quick starter guide for Slack: https://slack.global.ssl.fastly.net/0cc2/pdfs/users_guide.pdf\n\nUpdate your profile and timezone details. It's recommended that you use your real name."}},{"type":"message","id":"e62fdd85-aaa7-4a7c-b501-5d14e2e16103","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"has_button":true,"button_label":"I understood, continue.","message_text":"You're almost finished. Please read following guidelines to make everyone's experience wonderful:\n\n- *Reply using threads* to keep things neat instead of posting to the channel. :thumbsup:\n- Read the *Programme Regulations* and the *Guidelines for Examinations*: london.ac.uk/sites/default/files/regulations/progregs-computer-science-2019-2020.pdf and london.ac.uk/sites/default/files/examiners/guidelines-for-examinations-2018-19.pdf\n- *Post in the relevant channels*: there is a channel for each module, starting with `#cm`. For example, discrete maths questions should go in <#CKZT2LKPW|cm1020-discrete-math>. Use #askpreviouscohorts or <#CNE7YKNB1|october2019batch> for cohort specific discussion instead of <#CDTPC3FKL|general>.\n- *Make sure a channel doesn't already exist* before creating another one with the same purpose. You can collaborate in a *private group work* by creating a *private channel* instead of a public one.\n- *Curated list of course related resources* here: github.com/world-class/REPL\n- Remember to check the *pinned messages* in each channel: you'll find useful info!\n- *Please do your own research* (Slack, search engine, etc.) before asking a question that has been answered many times. For a start, make sure you have read all the documents you will find on that page: github.com/world-class/REPL#documents-and-resources-provided-publicly-by-the-university-of-london\n- Don't forget the *_Search_ feature* available on Slack (specific keywords, messages from a specific user with *from:@username*, in different channels, by files, within certain dates, etc.). → slack.com/help/articles/202528808-search-in-slack\n- Get in touch with your tutors and SRMs (Student Relationship Managers)! → github.com/world-class/REPL#reaching-out-to-tutors-and-srms\n- Be *nice*, be *respectful*. Don't make jokes or post memes that target a particular gender, religion, nationality or sexuality — we're a global and multicultural community. *Some students may be more sensitive* about certain topics and we certainly *don't want to discriminate* anybody and *don't want to make Slack a hostile environment* in any way.\n- *Do not violate UoL guidelines* (don’t post *illegal* materials, solutions to *graded quizzes* or big *chunks of code* related to any graded assignment).\n- *Refer to specific modules, videos and quizzes by their number* (week and item numbers as shown in Coursera), so that it is easy for future users to look for answers. You'll find a #bugs channel to help you uncover if a bug you have encountered has been documented before: please post to that channel *only once a bug has been identified* as such in another channel.\n- *Thank people* when they help you! :slightly_smiling_face: Despite the distance, we're still humans (most of us, anyways).\n\nWe hope you'll have a great time here! *_Remember that succeeding as a CS student has a lot to do with being able to find answers on your own and sharing them to cement your learning_* :bulb:.\n\nBe well and *welcome* :slightly_smiling_face:!"}},{"type":"dialog","id":"62923c72-5941-4dc8-b9b8-4e457b0d9e7d","config":{"user":{"ref":"b7b1cd80-e7dc-4f05-9bb0-c7971a82f451==user"},"dialog_title":"Onboarding feedback form","dialog_elements":[{"name":"f3999350-a1c0-464d-82c7-096403150e7d","type":"select","label":"Rate your experience.","options":[{"label":"1","value":"1"},{"label":"2","value":"2"},{"label":"3","value":"3"},{"label":"4","value":"4"},{"label":"5","value":"5"}],"optional":false,"data_source":"static"},{"name":"09eacc52-56ef-4229-bb21-31251b00967c","type":"textarea","label":"Please share your feedback if any.","optional":true}],"results_channel":{"value":"CUXANH2MT"},"dialog_submit_label":"","delivery_button_label":"Open Form","delivery_message_text":"You have finished a basic onboarding task created by current students. We hope this helped you learn how to use slack. If you've any feedback for this on-boarding experience, let us know."}}]}}} \ No newline at end of file diff --git a/software/README.md b/software/README.md new file mode 100644 index 00000000..f3a82572 --- /dev/null +++ b/software/README.md @@ -0,0 +1,570 @@ +[Go back to the main page](../README.md) + +# Table of contents + +- [Table of contents](#table-of-contents) +- [Free Software](#free-software) + - [Discounts](#discounts) + - [Free access](#free-access) + - [Mixed: Discounts & Free](#mixed-discounts--free) + - [Free software](#free-software-1) + - [2D animation](#2d-animation) + - [3D animation](#3d-animation) + - [3D prototyping](#3d-prototyping) + - [Antivirus](#antivirus) + - [Audio](#audio) + - [Players](#players) + - [Production](#production) + - [Recording & Editing](#recording--editing) + - [Automation](#automation) + - [File management](#file-management) + - [Services](#services) + - [Time tracking](#time-tracking) + - [Bug Tracker](#bug-tracker) + - [Burning CDs/DVDs](#burning-cdsdvds) + - [Clipboard manager](#clipboard-manager) + - [Cloud IDE](#cloud-ide) + - [Code snippets savers](#code-snippets-savers) + - [Cross-platform compatibility](#cross-platform-compatibility) + - [Data compression](#data-compression) + - [Data converter](#data-converter) + - [Data storage & syncronization](#data-storage--syncronization) + - [Desktop publishing](#desktop-publishing) + - [Documentation](#documentation) + - [Ebook readers](#ebook-readers) + - [Format checker & validator](#format-checker--validator) + - [FTP](#ftp) + - [Graphics software](#graphics-software) + - [IDE (Integrated Development Environment)](#ide-integrated-development-environment) + - [Image processing](#image-processing) + - [LaTeX](#latex) + - [Online editors](#online-editors) + - [Plugins](#plugins) + - [Distributions](#distributions) + - [TeX editors](#tex-editors) + - [Learning environment](#learning-environment) + - [Mathematical tools](#mathematical-tools) + - [Mind mapping](#mind-mapping) + - [Office suite](#office-suite) + - [Operating Systems](#operating-systems) + - [Linux distributions](#linux-distributions) + - [Beginner-friendly](#beginner-friendly) + - [Password managers](#password-managers) + - [PDF editors](#pdf-editors) + - [PDF viewers](#pdf-viewers) + - [Presentation sharing](#presentation-sharing) + - [Productivity](#productivity) + - [All-in-one organization](#all-in-one-organization) + - [Conversations with teams](#conversations-with-teams) + - [Emails](#emails) + - [Habit tracker](#habit-tracker) + - [Managing documents](#managing-documents) + - [Note taking](#note-taking) + - [Tasks and project management](#tasks-and-project-management) + - [Writing assistant](#writing-assistant) + - [Programming tools](#programming-tools) + - [Python](#python) + - [Data science](#data-science) + - [RSS/Atom readers/aggregators - Keeping on top of news](#rssatom-readersaggregators---keeping-on-top-of-news) + - [Screen recorders](#screen-recorders) + - [Beginner friendly](#beginner-friendly-1) + - [More advanced](#more-advanced) + - [Screenshot tools](#screenshot-tools) + - [Source code explorers](#source-code-explorers) + - [System utilities](#system-utilities) + - [Text editors](#text-editors) + - [Beginner friendly](#beginner-friendly-2) + - [Time trackers](#time-trackers) + - [Touch typing](#touch-typing) + - [UX/UI design](#uxui-design) + - [Version control system](#version-control-system) + - [Video communication](#video-communication) + - [Video conversion](#video-conversion) + - [Video edition](#video-edition) + - [Video player](#video-player) + - [Virtualization (running other operating system without installation)](#virtualization-running-other-operating-system-without-installation) + - [VPN (unblock Coursera and other restricted content)](#vpn-unblock-coursera-and-other-restricted-content) + - [Web browsers](#web-browsers) + - [Especially useful for web development](#especially-useful-for-web-development) + - [Extensions - Plugins](#extensions---plugins) + - [Firefox](#firefox) + - [Remove distractions](#remove-distractions) + - [Google Chrome](#google-chrome) + - [Remove distractions](#remove-distractions-1) + +--- + +# Free Software + +## Discounts + +- [Spotify](https://www.spotify.com/student) - 50% off for students. + +## Free access + +- [JetBrains for students](https://www.jetbrains.com/student) - _"Free individual licenses for students and faculty members."_ Includes: AppCode, CLion, DataGrip, dotCover, dotMemory, dotTrace, GoLand, IntelliJ IDEA Ultimate, PhpStorm, PyCharm, ReSharper, ReSharper C++, Rider, RubyMine, WebStorm. + +### Mixed: Discounts & Free + +- [Student Developer Pack – GitHub Education](https://education.github.com/pack) - _"give students free access to the best developer tools in one place so they can learn by doing."_ + +--- + +## Free software + +**Note:** + +- [Open source software](https://en.wikipedia.org/wiki/Open-source_software) is denoted with a :star:. +- Tools that can be used online are denoted with a :cloud:. + +[List of free and open-source software packages](https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages). A few note-worthy options in the context of this degree are presented below. + +--- + +### 2D animation + +- :star: [OpenToonz](https://opentoonz.github.io/e) +- :star: [Pencil2D](https://www.pencil2d.org) +- :star: [Pivot animator](http://pivotanimator.net) +- :star: [Synfig Studio](https://www.synfig.org) +- :star: [TupiTube](https://www.maefloresta.com) + +### 3D animation + +- :star: [Blender](https://www.blender.org) + +### 3D prototyping + +- :star: [MakeHuman](http://www.makehumancommunity.org) - _"Makehuman is a free and open source 3D computer graphics software middleware designed for the prototyping of photo realistic humanoids."_ ([from Wikipedia](https://en.wikipedia.org/wiki/MakeHuman)) + +### Antivirus + +- :star: [Clamav](https://www.clamav.net) (Windows, Linux, macOS, BSD, Solaris) - _"ClamAV® is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats."_ ([from Clamav](https://www.clamav.net)) + +### Audio + +- :star: [Comparison of free software for audio](https://en.wikipedia.org/wiki/Comparison_of_free_software_for_audio) + +#### Players + +- :star: [Amarok](https://amarok.kde.org) (Windows, macOS, Linux) +- :star: [Clementine](https://www.clementine-player.org) (Windows, macOS, Linux) + +#### Production + +- :heavy_dollar_sign: [REAPER](https://www.reaper.fm) **(60 days free trial, US\$60 for personal license)** (Windows, macOS, Linux\*) - _"REAPER is a complete digital audio production application for computers, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset."_ (\* experimental) + +#### Recording & Editing + +- :star: [Audacity](https://www.audacityteam.org) (Windows, macOS, Linux) + +### Automation + +#### File management + +- [Organize](https://github.com/tfeldmann/organize) - _"Your desktop is a mess? You cannot find anything in your downloads and documents? Sorting and renaming all these files by hand is too tedious? Time to automate it once and benefit from it forever. `organize` is a command line, open-source alternative to apps like Hazel (macOS) or File Juggler (Windows)."_ + +#### Services + +- [IFTTT](https://ifttt.com) - _"If This Then That, also known as IFTTT is a free web-based service to create chains of simple conditional statements, called applets."_ ([from Wikipedia](https://en.wikipedia.org/wiki/IFTTT)) + +#### Time tracking + +- [ActivityWatch](https://github.com/ActivityWatch/activitywatch) - _"Records what you do so that you can know how you've spent your time. All in a secure way where you control the data."_ + +### Bug Tracker + +- [MantisBT](https://www.mantisbt.org) - _"MantisBT is an open source issue tracker that provides a delicate balance between simplicity and power. Users are able to get started in minutes and start managing their projects while collaborating with their teammates and clients effectively."_ + +### Burning CDs/DVDs + +- :star: [List of free software](https://en.wikipedia.org/wiki/Category:Free_optical_disc_authoring_software) + +### Clipboard manager + +- [Clip Clip](https://clipclip.com) (Windows) - _"ClipClip is free clipboard management software for Windows that will revolutionize the way you copy and paste. ClipClip makes it possible to copy multiple texts, images or files to your clipboard. You can then browse or search through these Latest Clips, or convert them to Saved Clips so you can assign a title and organize them into folders to use later on."_ +- :star: [CopyQ](https://hluk.github.io/CopyQ) (Windows, macOS, Linux) - _"CopyQ is advanced clipboard manager with editing and scripting features. CopyQ monitors system clipboard and saves its content in customized tabs. Saved clipboard can be later copied and pasted directly into any application."_ +- [Paste](https://setapp.com/apps/paste) (macOSOS) - _"Your Mac’s robust cloud clipboard manager and time-reliever."_ + +### Cloud IDE + +- :heavy_dollar_sign: :cloud: [Codeanywhere](https://codeanywhere.com) - _"Share and collaborate on your code in real time. Whether you want to pair program, or just get some help from a friend. Codeanywhere makes it easy."_ + +### Code snippets savers + +- :cloud: [Gist](https://gist.github.com) (from GitHub) - _"Instantly share code, notes, and snippets."_ +- :cloud: [Ideone](https://ideone.com) - _"Ideone is an online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages."_ + +### Cross-platform compatibility + +- :star: [Wine](https://www.winehq.org) - _"Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD."_ (Android, Linux, macOS) + +### Data compression + +- :star: [Free data compression software](https://en.wikipedia.org/wiki/Category:Free_data_compression_software) + +### Data converter + +- :cloud: [Mr. Data Converter](http://shancarter.github.io/mr-data-converter) - _"I will convert your Excel data into one of several web-friendly formats, including HTML, JSON and XML."_ + +### Data storage & syncronization + +- :cloud: [Dropbox](https://www.dropbox.com) (Windows, macOS, Linux) - **2GB Free**. _"Dropbox is a file hosting service operated by the American company Dropbox, Inc., headquartered in San Francisco, California, that offers cloud storage, file synchronization, personal cloud, and client software."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Dropbox_%28service%29) +- :cloud: [Google Drive](https://www.google.com/drive) (Windows, macOS, officially) - **15GB Free**. _"Google Drive is a file storage and synchronization service developed by Google. [...] Google Drive allows users to store files on their servers, synchronize files across devices, and share files."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Google_Drive)) +- :cloud: [pCloud](https://www.pcloud.com) (Windows, macOS, Linux) - **10GB Free**. _"pCloud is the secure cloud storage, where you can store, share and work on all your files. You can access them on any device, anywhere you go!"_ +- :star: [Syncthing](https://syncthing.net) - (Windows, macOS, Linux, FreeBSD, Solaris, OpenBSD) - _"Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers and replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the internet."_ + +### Desktop publishing + +- :star: [Scribus](https://www.scribus.net) (Windows, macOS, Linux) - _One of the premier Open Source desktop applications._ + +### Documentation + +- :star: [Sphinx](http://www.sphinx-doc.org) (Windows, macOS, Linux) - _"Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license. It was originally created for the Python documentation, and it has excellent facilities for the documentation of software projects in a range of languages."_ + +### Ebook readers + +- :star: [Calibre](https://calibre-ebook.com) (Windows, macOS, Linux) +- [Kindle](https://www.amazon.com/kindle-dbs/fd/kcp) (Windows, macOS, Android, iOS, Linux - installed by Wine) +- :cloud: [Kindle Cloud Reader](https://read.amazon.com) (Windows, macOS, Linux) + +### Format checker & validator + +- :cloud: [JSONLint](https://jsonlint.com) - _"JSONLint is a validator and reformatter for JSON, a lightweight data-interchange format. Copy and paste, directly type, or input a URL in the editor above and let JSONLint tidy and validate your messy JSON code."_ + +### FTP + +- :cloud: [net2ftp](http://net2ftp.com) - _"net2ftp is a web based FTP client. It is mainly aimed at managing websites using a browser."_ + +### Graphics software + +- :star: [List of free graphics software](https://en.wikipedia.org/wiki/Category:Free_graphics_software) +- Graphic art & Office suite + - :star: [Calligra](https://www.calligra.org) + - :cloud: :star: [draw.io](https://www.draw.io) (Linux, macOS, Windows, Browser, ChromeOS) - _"Create flow charts, process diagrams, org charts, UML diagrams, ER models, network diagrams, and much more."_ (from [draw.io](https://www.draw.io)) + +### IDE (Integrated Development Environment) + +- [Comparison of integrated development environments](https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments) +- :star: [Eclipse](https://eclipse.org) - C, C++, Java, Perl, PHP, Python, Ruby and more. (Windows, macOS, Linux) +- [IntelliJ IDEA](https://www.jetbrains.com/idea) - AngularJS, CoffeeScript, CS, HTML, JavaScript, LESS, Node JS, PHP, Python, Ruby, Sass, TypeScript and more. (Windows, macOS, Linux) +- :star: [Netbeans](https://netbeans.org) - C, C++, C++11, Fortan, HTML 5, Java, PHP and more. (Works with Java) +- [PyCharm](https://www.jetbrains.com/pycharm) - Python. (Windows, macOS, Linux) +- :star: [Visual Studio Code](https://code.visualstudio.com) - C, C#, CSS, D, F#, Go, Java, JavaScript, Lua, Markdown, PHP, Python, R, Ruby, SQL, Swift, TypeScript and more. (Windows, macOS, Linux) +- [Visual Studio Community](https://visualstudio.microsoft.com/vs/community) - C#, Visual Basic, F#, C++, HTML, JavaScript, TypeScript, Python, and more. (Windows, macOS) + +### Image processing + +- :star: [GIMP](https://www.gimp.org) – Free equivalent to Photoshop +- :star: [Inkscape](https://inkscape.org) – Vector graphics editor +- :star: [Krita](https://krita.org/en) – Digital painting and sketching application + +### LaTeX + +#### Online editors + +- :cloud: [Overleaf](https://www.overleaf.com) - _"The easy to use, online, collaborative LaTeX editor."_ + +#### Plugins + +- [Vimtex](https://github.com/lervag/vimtex) - _"A modern vim plugin for editing LaTeX files."_ + +#### Distributions + +- [TexLive](https://tug.org/texlive) - _"A free software distribution for the TeX typesetting system."_ + +#### TeX editors + +- :star: [Kile](https://kile.sourceforge.io) (Windows, macOS, Linux) - _"Kile is a TeX/LaTeX editor to edit TeX/LaTeX source code. It runs on Unix-like systems including Mac OS X and Linux, as well as Microsoft Windows via the KDE on Windows initiative, with the Qt and KDE libraries installed."_ +- :star: [LyX](https://www.lyx.org) (Windows, macOS, Linux) - _"LyX is an open source document processor based on the LaTeX typesetting system."_ ([from Wikipedia](https://en.wikipedia.org/wiki/LyX)) +- :star: [Texmaker](http://www.xm1math.net/texmaker) (Windows, macOS, Linux) - _"Texmaker is a cross-platform open-source LaTeX editor with an integrated PDF viewer."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Texmaker)) +- :star: [TeXstudio](https://www.texstudio.org) - _"TeXstudio is a cross-platform open-source LaTeX editor. Its features include an interactive spelling checker, code folding, and syntax highlighting."_ ([from Wikipedia](https://en.wikipedia.org/wiki/TeXstudio)) + +### Learning environment + +- :cloud: [GoConqr](https://www.goconqr.com) - _"GoConqr is a personal learning environment that allows students & teachers to create, discover and share learning resources. Goconqr includes study tools to create Mind Maps, Flashcards, Notes and Quizzes."_ + +### Mathematical tools + +- :star: [Free plotting software](https://en.wikipedia.org/wiki/Category:Free_plotting_software) +- :star: [Free statistical software](https://en.wikipedia.org/wiki/Category:Free_statistical_software) +- :star: [GeoGebra](https://www.geogebra.org/?lang=en) - Graphing, geometry, 3D, and more +- :star: [SciPy](https://www.scipy.org) - Library used for scientific computing and technical computing + +### Mind mapping + +- [Coggle](https://coggle.it) (Web-based) - _"Coggle is an online tool for creating and sharing mindmaps and flow charts. It works online in your browser: there's nothing to download or install. Whether you're taking notes, brainstorming, planning, or doing something awesomely creative, it is super simple to visualise your ideas with Coggle. Share with as many friends or colleagues as you like. Changes you make will show up instantly in their browser, wherever they are in the world."_ +- :cloud: :star: [draw.io](https://www.draw.io) (Linux, macOS, Windows, Browser, ChromeOS) - Best for flowcharts. _"Create flow charts, process diagrams, org charts, UML diagrams, ER models, network diagrams, and much more."_ (from [draw.io](https://www.draw.io)) +- :star: [Freeplane](https://www.freeplane.org/) (Windows, macOS, Linux) - _"Freeplane is a free and open source software application that supports thinking, sharing information and getting things done at work, in school and at home."_ +- :cloud: [MindMeister](https://www.mindmeister.com) (Web, Android, iOS) - "MindMeister is an online mind mapping tool that lets you capture, develop and share ideas visually. MindMeister is completely web-based, which means there's no download and no updating! Whether you're working on Windows, Mac OS or Linux, you can always access your mind maps right inside the web-browser." +- [MindMup](https://www.mindmup.com) (Web-based) - _"Powerful keyboard shortcuts speed up your work. Frictionless interface helps you focus. Convert maps easily to PDF, PowerPoint, outlines... Publish and share maps online Easily save to Google Drive and manage using Google Apps."_ + +### Office suite + +- :star: [LibreOffice](https://www.libreoffice.org) (Windows, macOS, Linux) +- :cloud: [Google Docs](https://www.google.com/docs/about) (Windows, macOS, Linux) +- [WPS Office](https://www.wps.com/office-free) (Windows, Linux, Android, iOS) + +### Operating Systems + +- [FreeBSD](https://www.freebsd.org) - _"FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution, which was based on Research Unix. The first version of FreeBSD was released in 1993."_ ([from Wikipedia](https://en.wikipedia.org/wiki/FreeBSD)) +- [Linux](https://www.linux.org) - _"Linux is a family of free and open-source software operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Linux)) +- [macOS](https://www.apple.com/lae/macos/mojave) - _"It is the primary operating system for Apple's Mac family of computers. Within the market of desktop, laptop and home computers, and by web usage, it is the second most widely used desktop OS, after Microsoft Windows."_ ([from Wikipedia](https://en.wikipedia.org/wiki/MacOS)) +- [Windows](https://www.microsoft.com/en-us/windows) - _"Microsoft Windows is a group of several graphical operating system families, all of which are developed, marketed, and sold by Microsoft. Each family caters to a certain sector of the computing industry."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Microsoft_Windows)) + +#### Linux distributions + +- [DistroWatch](https://distrowatch.com) - _"DistroWatch is a website which provides news, popularity rankings, and other general information about various Linux distributions as well as other free software/open source Unix-like operating systems such as OpenSolaris, MINIX and BSD. It now contains information on several hundred distributions."_ ([from Wikipedia](https://en.wikipedia.org/wiki/DistroWatch)) + +##### Beginner-friendly + +- :star: [Fedora](https://getfedora.org/en/workstation) - A more developer centric distribution based on Red Hat Enterprise Linux (RHEL) ecosystem. +- :star: [Linux Mint](https://linuxmint.com) - _"Linux Mint is a community-driven Linux distribution based on Debian and Ubuntu that strives to be a "modern, elegant and comfortable operating system which is both powerful and easy to use.""_ ([from Wikipedia](https://en.wikipedia.org/wiki/Linux_Mint) +- :star: [Ubuntu](https://www.ubuntu.com/download/desktop) - A beginner-friendly distribution based on Debian. + +### Password managers + +- Beginner friendly + - [Dashlane](https://www.dashlane.com) (Windows, macOS, Linux, Chromebook) + - :star: [KeePass](https://keepass.info) (Windows, macOS, BSD) + - :star: [KeePassXC](https://keepassxc.org) (Windows, macOS, Linux) + - :star: [Firefox Lockwise](https://lockwise.firefox.com) (Browser extension, Android, iOS) - _"Firefox Lockwise is an experimental product from Mozilla, the makers of Firefox. It’s an app for iOS and Android that gives you access to passwords you’ve saved to Firefox."_ + - [LastPass](https://www.lastpass.com) (Windows, macOS, Linux, Chromebook) +- More advanced + - :star: [gopass](https://www.gopass.pw) (Windows, macOS, Linux) + - :star: [pass](https://www.passwordstore.org) (Windows, macOS, Linux, Android, iOS) + +### PDF editors + +- :star: [LibreOffice Draw](https://www.libreoffice.org/discover/draw) (Windows, macOS, Linux) +- :star: [Inkscape](https://inkscape.org) (Windows, macOS, Linux) +- Limited to split, merge, rotate, mix and extract + - [Master PDF](https://code-industry.net/free-pdf-editor) (Windows, macOS, Linux) + - :star: [PDF Shuffler](https://sourceforge.net/p/pdfshuffler/wiki/Home) (Linux) + - [PDFSAM Basic](https://pdfsam.org/download-pdfsam-basic) (Windows, macOS, Linux) +- Online + - [PDF2GO](https://www.pdf2go.com) - Easy to use. + - [PDFEscape](https://www.pdfescape.com) - Intuitive. Limited to 10MB filesize. + - [Sejda](https://www.sejda.com/pdf-editor) - Slow. Good for basic editing + +### PDF viewers + +- :star: Firefox, Google Chrome, :star: Chromium - Built-in viewer (Windows, macOS, Linux) +- [Foxit Reader](https://www.foxitsoftware.com/pdf-reader) (Windows, macOS, Linux) +- [PDF Reader – PDF Viewer & Epub, Ebook reader](https://play.google.com/store/apps/details?id=com.officetool.pdfreader2018.pdfviewer) (Android) +- [PDF Viewer Pro](https://itunes.apple.com/us/app/pdf-viewer-pro-by-pspdfkit/id1120099014) (iOS) +- As secondary feature + - :star: [GIMP](https://www.gimp.org) (Windows, macOS, Linux) + - :star: [Inkscape](https://inkscape.org) (Windows, macOS, Linux) + - :star: [Scribus](https://www.scribus.net) (Windows, macOS, Linux) +- Linux + - :star: [Evince](https://wiki.gnome.org/Apps/Evince) (GNOME) + - :star: [Okular](https://okular.kde.org) (KDE) + - :star: [CUPS](https://www.cups.org) + - :star: [Zathura](https://pwmt.org/projects/zathura/) (Linux) - Supports Vim keybindings. + +### Presentation sharing + +- [SlideShare](https://www.slideshare.net) - _"Share what you know and love through presentations, infographics, documents and more."_ + +### Productivity + +#### All-in-one organization + +- :heavy_dollar_sign: [Notion](https://www.notion.so) ([Personal plan free for students](https://www.notion.so/students)) (Windows, macOS, Android, iOS, web) - **Free version currently limited to 1000 block storage and 5MB upload limit.** - _"Write, plan, collaborate, and get organized. Notion is all you need — in one tool."_ + +#### Conversations with teams + +- [Microsoft Teams](https://teams.microsoft.com) - _"Microsoft Teams is a unified communication and collaboration platform that combines persistent workplace chat, video meetings, file storage, and application integration."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Microsoft_Teams)) +- [Slack](https://slack.com) - _"Slack is a cloud-based proprietary instant messaging platform developed by Slack Technologies."_ ([from Wikipedia]()) +- [Twist](https://twist.com) - _"Imagine a distraction-free teamwork app. Where conversations stay organized and on-topic. And where information is easy to find, forever. That’s Twist."_ + +#### Emails + +- :heavy_dollar_sign: [Front](https://frontapp.com) - _"Front is the first inbox for teams. Organize all your conversations in one place, route them to the right people, and get more done as a team."_ + +#### Habit tracker + +- [Habitica](https://habitica.com) - _"Habitica is a free habit and productivity app that treats your real life like a game. Habitica can help you achieve your goals to become healthy and happy."_ +- [Habitify](https://habitify.me) (macOS, Android, iOS, web) - _"Track your habits, discover weak spots & improve them to achieve your goals."_ + +#### Managing documents + +- :cloud: [Google Docs](https://www.google.com/docs/about) - _Web-based app designed to store, create, and edit spreadsheets and documents online._ + +#### Note taking + +- :cloud: [Evernote](https://evernote.com) - _"Evernote is a mobile app designed for note taking, organizing, task lists, and archiving._" ([from Wikipedia](https://en.wikipedia.org/wiki/Evernote)) +- :star: [Joplin](https://github.com/laurent22/joplin) (Windows, Linux, macOS, Android, iOS) - _"Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks."_ (from [Joplin Github](https://github.com/laurent22/joplin)) +- [OneNote](https://www.onenote.com) (Windows, macOS, Android, iOS, web) - _"Microsoft OneNote is a program for free-form information gathering and multi-user collaboration. It gathers users' notes, drawings, screen clippings and audio commentaries. Notes can be shared with other OneNote users over the Internet or a network."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Microsoft_OneNote) +- :star: :cloud: [Simplenote](https://simplenote.com) (Windows, macOS, Linux, Android, iOS, web) - _The simplest way to keep notes. Light, clean, and free._ +- [Typora](https://www.typora.io) (Windows, macOS, Linux) - _"Typora is a minimal markdown editor, providing new ways for reading and writing markdown. It is currently in beta. Typora is commercial software (not open source), but is free during beta."_ +- [Vimwiki](https://github.com/vimwiki/vimwiki) (Windows, macOS, Linux) - _"VimWiki is a personal wiki for Vim -- a number of linked text files that have their own syntax highlighting. With VimWiki you can: organize notes and ideas; manage to-do lists; write documentation; maintain a diary; export everything to HTML."_ + +#### Tasks and project management + +- :cloud: [Asana](https://asana.com) - _Asana is the work management platform teams use to stay focused on the goals, projects, and daily tasks that grow business._ +- :cloud: [Basecamp](https://basecamp.com) - Currently [free when applying as a student](https://basecamp.com/discounts) - _"Before Basecamp: Projects feel scattered, things slip, it’s tough to see where things stand, and people are stressed. After Basecamp: Everything’s organized in one place, you’re on top of things, progress is clear, and a sense of calm sets in."_ +- :cloud: [ClickUp](https://clickup.com) - _The productivity platform. Create. Plan. Organize. Everything._ +- :cloud: [Google Keep](https://keep.google.com) - _Keep offers a variety of tools for taking notes, including text, lists, images, and audio._ +- :cloud: [meistertask](https://www.meistertask.com) - _The most intuitive project and task management tool on the web._ +- :cloud: [Pearltrees](https://www.pearltrees.com) - _"Pearltrees refers to itself as "a place for your interests". Functionally the product is a visual and collaborative curation tool that allows users to organize, explore and share any URL they find online as well as to upload personal photos, files and notes."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Pearltrees) +- :cloud: [Pocket](https://getpocket.com) - _"Pocket, previously known as Read It Later, is an application and web service for managing a reading list of articles from the Internet."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Pocket_%28service%29)) +- :cloud: [TickTick](https://ticktick.com) - _Capture ideas, organize to-dos, and make the most of your life._ +- :star: [Todo.txt](http://todotxt.org) - (_operating system agnostic_, Android, iOS, CLI) _"If you have a file called todo.txt on your computer right now, you're in the right place. So many power users try dozens of complicated todo list software applications, only to go right back to their trusty todo.txt file."_ +- :cloud: [Todoist](https://todoist.com) - _Todoist lets you keep track of everything in one place, so you can get it all done and enjoy more peace of mind along the way._ +- :cloud: [Trello](https://trello.com/en) - _Trello's boards, lists, and cards enable you to organize and prioritize your projects in a fun, flexible, and rewarding way._ +- :cloud: [Wunderlist](https://www.wunderlist.com) - _"Whether you’re planning a holiday, sharing a shopping list with a partner or managing multiple work projects, Wunderlist is here to help you tick off all your personal and professional to-dos."_ + +#### Writing assistant + +- :cloud: [Grammarly](https://www.grammarly.com) - _From grammar and spelling to style and tone, Grammarly helps you eliminate errors and find the perfect words to express yourself._ +- :star: [UMLet](https://www.umlet.com) - _UMLet is a UML tool aimed at providing a fast way of creating UML diagrams. UML elements are modified using text input instead of pop-up dialogs._ +- :star: :cloud: [UMLetino](http://www.umletino.com) - _UMLetino 14.3 is a free online UML tool for fast UML diagrams. It runs in your browser, and does not require any installs._ + +### Programming tools + +#### Python + +##### Data science + +- [Anaconda distribution](https://www.anaconda.com) (Windows, macOS, Linux) - _The World's Most Popular Python Data Science Distribution_ + +### RSS/Atom readers/aggregators - Keeping on top of news + +- :star: [List of free readers](https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages#RSS/Atom_readers/aggregators) +- :cloud: [Feedly](https://feedly.com) +- :cloud: [Feedreader Online](https://feedreader.com) +- :cloud: [Flipboard](https://flipboard.com) + +### Screen recorders + +#### Beginner friendly + +- :cloud: [Apowersoft Free Online Screen Recorder](https://www.apowersoft.com/free-online-screen-recorder) (Windows, Android, iOS) +- [AZ Screen Recorder](https://play.google.com/store/apps/details?id=com.hecorat.screenrecorder.free&hl=en) (Android) +- :star: [GNOME Screenshots](https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html.en) (Linux) +- [Go Record: Screen Recorder](https://itunes.apple.com/us/app/go-record-screen-recorder/id1345200849) (iOS) +- [Screencast o matic](https://screencast-o-matic.com/screen-recorder) (Windows, macOS, Chromebook) +- :star: [Simple Screen Recorder](https://www.maartenbaert.be/simplescreenrecorder) (Linux) + +#### More advanced + +- :star: [ffmpeg](https://ffmpeg.org) (Windows, macOS, Linux) +- :star: [OBS Studio](https://obsproject.com) (Windows, macOS, Linux) + +### Screenshot tools + +- :star: [Flameshot](https://flameshot.js.org) (Linux) +- :star: [GNOME Screenshots](https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html.en) (Linux) +- [Screenshot](https://support.apple.com/en-us/HT201361) (macOS) +- [Snipping Tool](https://support.microsoft.com/en-us/help/13776/windows-10-use-snipping-tool-to-capture-screenshots) (Windows) +- :star: [Spectacle (KDE)](https://kde.org/applications/utilities/org.kde.spectacle) (Linux) + +### Source code explorers + +- :star: [Sourcetrail](https://www.sourcetrail.com) (Windows, macOS, Linux) - _"Free and open-source cross-platform source explorer"_. Supports C, C++, Java and Python. + +### System utilities + +- :star: [Redshift](http://jonls.dk/redshift) (Linux) - _Adjusts the color temperature of your screen according to your surroundings._ +- :star: [f.lux](https://justgetflux.com) (Windows, macOS, Linux, iOS, Android) - _It makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day._ + +### Text editors + +- [Comparison of text editors](https://en.wikipedia.org/wiki/Comparison_of_text_editors) + +#### Beginner friendly + +- :star: [Atom](https://atom.io) +- :star: [Brackets](http://brackets.io) - Used in module [Introduction to Programming I](../modules/level_4/introduction_to_programming_i). +- :star: [Visual Studio Code](https://code.visualstudio.com) + +### Time trackers + +- [Clockify](https://clockify.me) - (Web, Chrome, Firefox, Windows, macOS, Linux, iOS, Android, Integrations) - _"Clockify is the only truly free time tracking software. It's a simple time tracker and timesheet app that lets you and your team track work hours across projects. Unlimited users, free forever."_ +- [RescueTime](https://www.rescuetime.com) - _"RescueTime helps you understand where your time goes each day. Optimize your energy. And take back control of your day."_ +- [Timeular](https://timeular.com) - (Windows, macOS, iOS, Android) - **Uses physical device connected through Bluetooth.** - _"Easily track your time at work, get insights into where you spend it and increase your productivity. Start using Timeular as your time tracking tool today."_ +- [Toggl](https://toggl.com) - (Chrome, iOS, Android, Windows, macOS, Linux) - _"Toggl makes time tracking so simple you’ll actually use it. But even if you forget, our tracking reminders and idle detection have your back."_ +- [WakaTime](https://wakatime.com) - _"The open source plugin for productivity metrics, goals, leaderboards, and automatic time tracking."_ + +### Touch typing + +- [Typing.com](https://www.typing.com) - Learn to type for free without looking at your keyboard. + +### UX/UI design + +See also [Graphics software](#graphics-software). + +- [Adobe XD](https://www.adobe.com/products/xd.html) - _"Wireframe, design, prototype, present, and share amazing experiences for web, mobile, voice, and more — all in one app. XD is made for designers, creative teams, and organizations that need to design at scale. It’s everything you need to work more efficiently, collaborate effortlessly, and create and manage your design system."_ +- :heavy_dollar_sign: [Balsamiq](https://balsamiq.com) - _"With Balsamiq Wireframes, anyone can design great user interfaces."_ +- [Figma](https://www.figma.com) - _"A better way to design. Design, prototype, and gather feedback all in one place."_ **(free for individuals, with limitations)** +- [Whimsical](https://whimsical.com) - _"Communicate visually at the speed of thought. Flowcharts, Wireframes, Sticky Notes, Mind Maps."_ **(free for individuals, with limitations)** + +### Version control system + +- [Free version control software](https://en.wikipedia.org/wiki/Category:Free_version_control_software) +- :star: [Git](https://git-scm.com) - _"Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Git)) +- [Perforce (Helix Core)](https://www.perforce.com) - _"[...] software used for application development, including version control software, web-based repository management, developer collaboration, application lifecycle management and Agile planning software."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Perforce)) + +### Video communication + +- [WhereBy (formerly Appear.in](https://whereby.com) - _"Simple video meetings. With no app or installs required, and the same meeting link every time, Whereby gives you the freedom to work from anywhere."_ +- [Facebook Live](https://live.fb.com) - _"A fun, powerful way to connect with your followers and create new ones along the way._" +- [Google Hangouts](http://www.google.com/hangouts) - _"Google Hangouts is a communication platform developed by Google which includes messaging, video chat, and VOIP features."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Google_Hangouts) +- [Skype](https://www.skype.com) - _"[...] specializes in providing video chat and voice calls between computers, tablets, mobile devices, the Xbox One console, and smartwatches via the Internet. Skype also provides instant messaging services. Users may transmit text, video, audio and images. Skype allows video conference calls."_ [(from Wikipedia)](https://en.wikipedia.org/wiki/Skype) +- [Slack calls](https://slack.com) - _"With Slack Calls, you can make a voice or video call with any member of your workspace."_ +- [Zoom](https://zoom.us) - _"[...] remote conferencing services using cloud computing. Zoom offers communications software that combines video conferencing, online meetings, chat, and mobile collaboration."_ [(from Wikipedia)](https://en.wikipedia.org/wiki/Zoom_Video_Communications) + +### Video conversion + +- [Free video conversion software](https://en.wikipedia.org/wiki/Category:Free_video_conversion_software) + +### Video edition + +- [List of video editing software](https://en.wikipedia.org/wiki/List_of_video_editing_software) + +### Video player + +- [Comparison of video player software](https://en.wikipedia.org/wiki/Comparison_of_video_player_software) +- :star: [Media Player Classic](https://mpc-hc.org) (Windows) +- :star: [mpv](https://mpv.io) (Windows, macOS, Linux) +- :star: [SMPlayer](https://www.smplayer.info) (Windows, Linux) +- :star: [VLC](https://www.videolan.org/vlc) (Windows, macOS, Linux) + +### Virtualization (running other operating system without installation) + +- [Free virtualization software](https://en.wikipedia.org/wiki/Category:Free_virtualization_software) +- :star: [VirtualBox](https://www.virtualbox.org) + +### VPN (unblock Coursera and other restricted content) + +- [NordVPN](https://nordvpn.com) (Windows, macOS, Linux, Android, iOS, Chrome, Firefox, Android TV) - _"NordVPN is a personal virtual private network (VPN) service provider. It has desktop applications for Windows, macOS, and Linux, mobile apps for Android and iOS, as well as an application for Android TV. Manual setup is available for wireless routers, NAS devices and other platforms. NordVPN is based in Panama, as the country has no mandatory data retention laws."_ ([from Wikipedia](https://en.wikipedia.org/wiki/NordVPN)) +- [ProtonVPN](https://protonvpn.com) - (Windows, macOS, Linux, Android, iOS) _"ProtonVPN is a virtual private network (VPN) service provider operated by the Swiss company ProtonVPN AG, the company behind the email service ProtonMail."_ ([from Wikipedia](https://en.wikipedia.org/wiki/ProtonVPN)) +- [Surfshark](https://surfshark.com) (Windows, macOS, Linux, Android, iOS, Chrome, Firefox, etc.) - _"Surfshark is an award-winning, secure VPN that encrypts your online data to help you stay private & protected every day, hassle-free."_ + +### Web browsers + +- :star: [List of free web browsers](https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages#Web_browsers) +- [Vivaldi](https://vivaldi.com) - _"Vivaldi is a new browser with unrivaled customization and control. Fast, secure and flexible – this is a browser made for you."_ + +#### Especially useful for web development + +- :star: [Firefox](https://www.mozilla.org/en-US/firefox/new) (works on all major operating systems) +- [Google Chrome](https://www.google.com/chrome) (works on all major operating systems) +- [Microsoft Edge](https://www.microsoft.com/en-us/windows/microsoft-edge) (**Windows** preferred) +- [Safari]() (**macOS** preferred) + +#### Extensions - Plugins + +##### Firefox + +###### Remove distractions + +- [LeechBlock NG](https://addons.mozilla.org/en-US/firefox/addon/leechblock-ng) - _"LeechBlock NG is a simple productivity tool designed to block those time-wasting sites that can suck the life out of your working day. All you need to do is specify which sites to block and when to block them."_ + +##### Google Chrome + +###### Remove distractions + +- [StayFocusd](https://chrome.google.com/webstore/detail/stayfocusd/laankejkbhbdhmipfmgcngdelahlfoji) - _"StayFocusd increases your productivity by limiting the amount of time that you can spend on time-wasting websites."_ diff --git a/subreddit/README.md b/subreddit/README.md new file mode 100644 index 00000000..bf6c2374 --- /dev/null +++ b/subreddit/README.md @@ -0,0 +1,36 @@ +# About these Markdown files + +This is the canonical source for /u/Yangchenghu's series of Reddit posts on +[/r/UniversityOfLondonCS](https://www.reddit.com/r/UniversityOfLondonCS). Each +post is an explanatory document or guide to some aspect of the programme, or +student life in general. + +Note that while /u/Yangchenghu has made other posts on the subreddit, this +repository will only hold the in-depth guides and documents. + +Future posts will be released first on +[/r/UniversityOfLondonCS](https://www.reddit.com/r/UniversityOfLondonCS), and +then added to REPL on the same day. + +## Index of posts + +Note: this index is copied from `./resources-links/links-reddit-sticky.md`, with the URL links replaced with Markdown links. For links to the original reddit posts, please see `./resources/links-reddit-stick.md` [available here](resources-links/links-reddit-sticky.md) + +- [**Beginner's Guide to Grades, Projects, Exams, and Award Qualifications at UoL's CompSci BSc**](grades-guide.md): A good overview of how the academic structure of the degree works, plus examples of past mid-terms and exam papers. +- [**Thoughts on UoL's BSc in Computer Science - A Comprehensive Review**](uol-review.md): In-depth review of /u/Yangchenghu's experiences as a first cohort student, with screenshots of the Virtual Learning Environment and Slack. +- [**Let's Talk About The Balance of Formative Coursework versus Summative Assessments**](formative-summative.md): Explains how grades and optional assignments work, which segues into a more philosophical discussion on self-driven learning. +- [**Legal Protections for the Distance-Learning Student: The Rights and Protections you are Entitled To**](legal-protections.md): Gives a overview of the Student Terms and Conditions document, and outlines the rights to refund and withdrawl. +- [**Everything You Want to Know about the Institutional Accreditation of the University of London et al**](accreditation.md): A VERY detailed and source-heavy document with many links, detailing the accreditation of the course programme. +- [**Applying for a Recognition of Prior Learning: Or How to Save £400 to £600 GBP**](rpl-guide.md): A student post which explains what RPLs are, and walks you through the process of getting a RPL via Coursera's Google IT Cert. +- [**Interview with David C.**](interview-david-c.md) An interview with a student on their experiences in the programme + +## About resources-links + +The `links-reddit-sticky.md` is the main document of useful resources and links. +Other documents within the `./resources-links/` directory are derived from the +main document, oftentimes abridged or otherwise re-formatted for their specific +location. + +--- + +Original location on GitHub: https://github.com/world-class/REPL/tree/master/subreddit diff --git a/subreddit/accreditation.md b/subreddit/accreditation.md new file mode 100644 index 00000000..19fc2868 --- /dev/null +++ b/subreddit/accreditation.md @@ -0,0 +1,92 @@ +# Everything You Want to Know about the Institutional Accreditation of the University of London, the Academic Partner Goldsmiths, as Well as Private Professional Certification of the Degree Programme Itself (with Many Sources and Links) + +Hello /r/UniversityOfLondon! + +**Summary: Yes, the University of London and this degree in particular are accredited. Read on for details.** + +Lately I've been seeing some questions about the institutional accreditation of the University of London. These questions are typically either about the accreditation of the University of London itself, the academic partner Goldsmiths, University of London, or even specifically about the University of London's Bachelor's of Science in Computer Science Distance-Learning Programme (with Academic Direction from Goldsmiths, University of London). Phew! Those were a lot of words! + +It is important to ask these questions about accreditation and legitimacy when applying for any institution of higher education - and I understand that there are further doubts and insecurities when it comes to something as novel as an entirely-online degree programme. I think it is right that prospective applicants are to be skeptical. I hope that this post will provide some much-needed information on the accreditation of the University of London (and it's partner institution Goldsmiths College, University of London) - and that prospective applicants are better empowered to make the right decisions with this knowledge. + +**Keep in mind that in the following sections, when I talk about the University of London, I _specifically_ mean the University of London as a institution which provides distance learning programmes.** I am not talking about the _Federal_ University of London, which is composed of many member institutions. This entire post is strictly about the University of London as the provider of distance-learning programmes. + +## Background Information on Educational Accreditation in the United Kingdom + +First and foremost, it is important to know that there are significant differences in how educational accreditation works in the United Kingdom, versus a country like the U.S. In the United States, higher educational institutions are typically accreditation by various private state or national bodies. These bodies are typically [private organisations or associations](https://en.wikipedia.org/wiki/Higher_education_accreditation_in_the_United_States#National_accreditors), and any given university or college is typically accredited by a handful of them. + +In contrast, educational accreditation is entirely centralised in the U.K. By law, all higher educational institutions in the United Kingdom are regulated by the [Higher Education and Research Act of 2017](https://en.wikipedia.org/wiki/Higher_Education_and_Research_Act_2017), which itself is an extension of the [Further and Higher Education Act of 1992](https://en.wikipedia.org/wiki/Further_and_Higher_Education_Act_1992). + +The legitimacy and degree-awarding power of any higher educational institution extends from these acts, _and the very fact that a higher educational institution is called as such means that it is legitimate_. As per [Part 1, Section 3 of the Higher Education and Research Act of 2017 (see link for actual text)](https://www.legislation.gov.uk/ukpga/2017/29/part/1/crossheading/the-register-of-english-higher-education-providers), the act establishes an Office for Students which maintains a registrar of English higher educational providers. + +Furthermore, the U.K. makes a [distinction between _recognised_ bodies which are allowed to award their own degrees, versus _listed_ bodies](https://www.gov.uk/check-a-university-is-officially-recognised). Listed bodies are institutions which cannot award a degree themselves, but offer degree programmes which are awarded by a recognised body. For example, the Leeds College of Arts is a listed body, which does not award degrees under their own name, but rather provides programmes which award degrees under the University of Leeds itself, a recognised body. + +Finally, the U.K. makes the term "University" a protected category, and only specific institutions are allowed to call themselves universities. [A UK university is only allowed to call themselves such through an act of law (see page 1, paragraph 9)](https://www.qaa.ac.uk/docs/qaa/guidance/the-right-to-award-degrees-18.pdf?sfvrsn=4a2f781_14). Older universities are granted their status through a Royal Charter, while newer ones were granted via an Act of parliament. No other institution may call or market themselves as a 'University'. + +There are further details still, such as the role of non-governmental organisations like the [Quality Assurance Agency for Higher Education (QAA)](https://www.qaa.ac.uk/) -- but the above overview is sufficient for our level of inquiry. + +## Is the University of London, the awarding body of the Bachelor's of Science in Computer Science programme accredited? + +**Yes. The University of London is specifically a _recognised_ institution of higher education that is empowered to award Research Degrees, as a University founded by Royal Charter** + +You may find the source at the official gov.uk website, [under section L (for London) of the article entitled _Check if a university or college is offically recognised_.](https://www.gov.uk/check-a-university-is-officially-recognised/recognised-bodies) + +Recall that the recognition and legitimacy of a U.K. institution for Higher Education derives from the Higher Education and Research Act of 2017. Further recall that said act stipulates the creation of an Office for Students, which contains a central register of all _recognised_ and _listed_ insitutions. You may verify the presence of the University of London as a _recognised_ institution of higher education [at the official website of the Office for Students](https://www.officeforstudents.org.uk/advice-and-guidance/the-register/the-ofs-register/). Download the spreadsheet of the Official Register ([here's a direct link](https://apis.officeforstudents.org.uk/OfsRegisterDownload/api/Register/)), and you may verify the presence of the University of London on such a list. + +Further note that the U.K. law recognises [three levels of awarding power when it comes to recognised institutions of higher education](https://www.qaa.ac.uk/docs/qaa/guidance/the-right-to-award-degrees-18.pdf), as summarised in page 2, table 1 of the above Quality Assurance Agency for Higher Education report. Cross-verify with the official spreadsheet register of the Office for Students, and observe that the University of London is specifically empowered to reward Research Degrees, which encompasses levels of achievement from bachelor's up to doctoral degrees. + +Finally, note that the official spreadsheet register of the Office for Students denote the University of London as a provider which has the right to use the title of 'University', and that said right was granted via Royal Charter, on 1836. + +As a ultimate confirmation, observe that said 1863 Royal Charter has been affirmed by a Act of Parliament, [the University of London Act 2018](https://london.ac.uk/sites/default/files/governance/University-of-London-Act-2018.pdf). Note that said Act of Parliament has received Royal Assent from the British Crown. + +## Is Goldsmiths, University of London, the provider of academic direction accredited? + +**Yes. Goldsmiths, University of London is specifically a _recognised_ institution of higher education that is empowered to award Research Degrees** + +You may find the source at the official gov.uk website, [under section G of the article entitled _Check if a university or college is offically recognised_.](https://www.gov.uk/check-a-university-is-officially-recognised/recognised-bodies) + +You may likewise verify the presence of Goldsmiths, University of London as a _recognised_ institution of higher education [at the official website of the Office for Students](https://www.officeforstudents.org.uk/advice-and-guidance/the-register/the-ofs-register/). Download the spreadsheet of the Official Register ([here's a direct link](https://apis.officeforstudents.org.uk/OfsRegisterDownload/api/Register/)), and you may verify the presence of Goldsmiths, University of London on such a list. + +Likewise note that Goldsmiths is empowered to award Research Degrees, which encompasses levels of achievement from bachelor's up to doctoral degrees. + +## But wait, is the _specific_ University of London Bachelor's of Science in Computer Science _degree programme_ accredited? + +Why, thank you for asking this question! This is probably the source of the confusion which surrounds the accreditation for this degree. Many technical fields such as Engineering will include additional private certification, typically awarded by a industrial body or private technical society. Computer Science is no exception. + +In the U.K, many (but not all) degrees in Computer Science and IT have an additional accreditation from the [British Computing Society, a private professional body for computing](https://www.bcs.org/). As of the time of this writing (July 2020), **the University of London's Bachelor's of Science in Computer Science is not independently accreditation by the British Computing Society**. + +The reason that the University of London's BSc in Computer Science is not accredited by the British Computing Society is very simple. _There has been no graduates of this programme yet_. This BSc in Computer Science, like it's on-campus counterpart in Goldsmiths College -- simply is not old enough to have any graduates. + +[As per the 50-page accreditation guidelines of the British Computer Society](https://www.bcs.org/media/1209/accreditation-guidelines.pdf), in order for a Higher Educational Institution to be eligible for consideration of accreditation, they must at least have _one graduate cohort_. If you take a look at the list of criterias and subjects of evaluation, you can see that the accreditation process inspects the achievement of graduated students at multiple stages. A programme that has yet to have any graduates simply is not able to be accredited by the British Computing Society, due to mundane logistical reasons. + +Furthermore, note that [the British Computing Society typically visits Universities and higher Education providers _every five years_ for the accreditation process](https://www.bcs.org/deliver-and-teach-qualifications/university-accreditation/), and even once the first cohort at the University of London's BSc has graduated, it will likely still be a couple of years until the British Computing Society will get around to the accreditation process. + +Simply put, there is no malicious reason why this degree programme is not Accredited by the British Computing Society. It simply isn't eligible yet. If you observe the different, but analogous [Bachelor's of Science in Accounting and Finance degree offered by the University of London](https://london.ac.uk/courses/accounting-and-finance#programme-structure-courses-and-specification-939), you can see that this much older degree indeed has [accreditation by various U.K. professional bodies (page 4 of programme specifications)](https://london.ac.uk/sites/default/files/programme-specifications/progspec_accountingfinancebsc.pdf). + +Hence, independent accreditation of the Computer Science BSc by the British Computing Society is most likely a matter of time. + +## What if I really need to be recognised by the British Computing Society? + +That's okay! [You can simply pursue an independent certification from the British Computing Society as a private IT professional](https://www.bcs.org/get-qualified/certifications-for-professionals/). They offer many certifications, including in fields such as AI or Information Security. This is just as legitimate as a qualification as having one's degree accredited right out of the box. + +In fact, the only 'major' benefit offered by an independent accreditation from the British Computing Society, is a free 1-year membership in the BCS for new graduates. You can simply apply for a membership in the BCS independently. + +## Conclusion + +Distance-learning education is fairly novel, and it is very reasonable for someone to be skeptical of the value or legitimacy of a distance-learning degree like that at the University of London. It's important for all students to do their due diligence and research, before committing to any programme. I hope that with the above information and sources, prospective students will be more empowered to make the right decisions for their own education. + +Finally, please let me know if there is anything I have missed in this research. In particular, feel free to correct me if I have been mistaken in any way. I will endeavour to update this post to the best of my knowledge. + +If you guys have any further questions about this programme, or even just life as a distance-learning student in general - feel free to join us at the unofficial Discord Server! Thank you, and take care :) + +Sincerely, + +/u/Yangchenghu + +## Further Reading & Links + +- https://www.gov.uk/check-a-university-is-officially-recognised +- https://www.officeforstudents.org.uk/ +- https://www.officeforstudents.org.uk/advice-and-guidance/the-register/the-ofs-register/ +- https://www.legislation.gov.uk/ukpga/2017/29/contents +- https://www.bcs.org/deliver-and-teach-qualifications/university-accreditation/ +- https://www.bcs.org/get-qualified/certifications-for-professionals/ diff --git a/subreddit/formative-summative.md b/subreddit/formative-summative.md new file mode 100644 index 00000000..33b59aff --- /dev/null +++ b/subreddit/formative-summative.md @@ -0,0 +1,43 @@ +# Let's Talk About The Balance of Formative Coursework versus Summative Assessments: An Important Trade-off to Consider When Enrolling at University of London's BSc in Computer Science + +Hello /r/UniversityOfLondonCS! + +An online Bachelor's programme like University of London's BSc is by it's very nature _different_ from a more traditional on-campus experience. Although it may not be any _better_ or _worse_ quantitatively, the difference in itself makes it important for one to consider the various tradeoffs that the two approaches bring. + +Today I'd like to talk about one of those differences: which is the balance between [formative coursework, and summative _assessments_](https://www.cmu.edu/teaching/assessment/basics/formative-summative.html), that I have noticed in my 3 academic terms here. + +Generally, a student's progress in any academic course is assessed in two ways. Through formative assessments (which I'll call coursework here), and summative assessments. A formative assessment is like a pop quiz, or a optional project. It's something that does not affect your final grade in the module, but is only a means of giving feedback to the student. Some examples of formative coursework in the various modules I've experienced are: + +- **Practice quizzes:** Usually quite short, but present after every video lecture, +- **Discussion Prompt:** Where you are asked to brainstorm the solution to a problem, and talk with other classmates about the solution. These are present in every week's worth of lessons. +- **Peer-reviewed projects:** This is the most major formative coursework present. A project can be a math paper exploring a certain topic, a program, or game. These are sent in for 'grading' and feedback by your peers. There are usually 3 or 4 of them in a module. + +All of the above are formative, because they do not affect your final grade in the module at all. You might be given a 'grade', but it's purely for your own feedback. + +The summative assessments in the modules generally consist of: + +- **Unit quizzes:** Longer and more difficult than the practice quizzes, and occur once every two weeks. They are timed, and you only get 2 or 3 attempts per quiz. Each quiz is usually worth from 4 to 8% of your final module grade. +- **Midterm assessment:** Generally a take-home test, or a project. These are graded by an instructor, and usually count for up to 25% of one's overall module grade. +- **End-of-term exam:** These are the big, two hour long exams that one takes at an exam center. They are worth 50% of your overall module grade. + +Do you spot the overall pattern? _In my experience, I've noticed that in all of my modules, there is far more formative coursework than summative assessments,_ both in terms of the actual quantity, and amount of hours required to complete each one. + +Of the few summative assessments per module, _the majority of one's final grade is from one or two assessments_. By default, 50% of one's grade comes from the final exam. And typically, the midterm project/take-home-exam is worth another 25% of one's grade (but not always - [this depends on the _type_ of module you are taking](https://www.reddit.com/r/UniversityOfLondonCS/comments/hgbcc8/beginners_guide_to_grades_projects_exams_and/)). The various summative quizzes are each worth only a few percentage points of one's total grade, but they add up to the remaining 25%. + +_Why is this the case? Why is such a large portion of one's grade dependent on only a few assessments?_ + +It sort of is harsh! But sadly, the reason the assessments of the course is structured this way, is due to the simple reality of an online distance-learning programme. + +In a regular, physical college -- one's professors have the physical immediacy to check on their student's work. They might have many small quizzes or tests throughout the year, which they may give at their leisure. And at the end of the year, when the time for the final grade comes -- the professor is able to look back at their gradebook, and take all the small assignments from throughout the year, and come up with an overall idea of the student's progress. + +Sure, there may be large exams that are worth significant portions of one's grades -- but overall, there's more opportunities for a professor to get a holistic image of a given student. _Essentially, the ratio between formative and summative assessments are more balanced at physical universities_. + +In contrast, at a distance-learning programme like the University of London, it is not possible to have that level of access and physical immediacy. There's only one opportunity for an exam per module, and that's at the end of the year. Likewise, because the degree is self-paced, professors do not have the means to review all the projects. That's why the vast majority of projects -- even though they are significant in scope -- are peer-reviewed instead. + +Hence, by signing up for a programme like the Univeristy of London, you'll have to understand that the balance between formative and summative assignments is tilted unfavorably. There are only few summative assignments, but they are also worth large portions of one's grade. + +And likewise, because much of the coursework here is formative, it is considered 'optional'. Some people (unwisely) skip them, because they do not think it has to be done, since it's 'not worth a grade'. + +That is a very unwise idea, because **even though the formative projects are optional, they are no less difficult or rigorous than the summative assessments that one encounter.** In fact, much of one's learning is conducted through them, instead of the assessments. + +In this lies my advice to the prospective student. Make sure that you understand the trade-offs involved in terms of having a programme that's biased towards fewer, but more significant summative assignments. And don't forget to do all the formative coursework, because even though they are 'optional' -- skipping them will really harm your learning. diff --git a/subreddit/grades-guide.md b/subreddit/grades-guide.md new file mode 100644 index 00000000..98a86f31 --- /dev/null +++ b/subreddit/grades-guide.md @@ -0,0 +1,117 @@ +# Beginner's Guide to Grades, Projects, Exams, and Award Qualifications at University of London's Online Bachelor's of Computer Science + +Hello /r/UniversityOfLondonCS! + +A lot of new prospective students have joined our Discord (if you haven't seen it yet, [check it out](https://discord.gg/GhRFG5X)!) -- and I've noticed a lot of questions regarding the grades and assessment structure of this degree. + +All of the information here is available in the [University of London General Regulations](https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf), as well as the [degree-specific Programme Regulations](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf) -- but the documents are long and can be a bit obscure. Hence, I've decided to write a casual beginner's guide to how grades in this degree work. + +**This guide will take the form of an inverse-pyramid: I'll start by talking about the general organization of the degree as a whole, and then the grading and assessments of a typical module, and then finally the structure of a typical exam.** + +## General Structure of the Degree + +The University of London's Bachelor's of Science in Computer Science (w/ Academic Instruction from Goldsmiths College) is a UK undergraduate degree, [composed of 22 modules](https://london.ac.uk/computer-science-structure) (i.e. classes) plus an additional Final Project. The modules are divided according to their [RQF Level](https://www.gov.uk/what-different-qualification-levels-mean/list-of-qualification-levels). There are: + +- 8 Level 4 modules +- 8 Level 5 modules +- 6 Level 6 modules +- ... plus the Final Project. + +Each subsequent RQF Level indicates an increase in academic rigour, and 'difficulty'. _Hence, the modules are not all worth the same, but are weighted towards the more advanced levels._ The specific ratio is 1:3:5, applied to Level 4, Level 5, Level 6. When divided according to the number of modules at each level, we arrive at the following distribution: + +- Each Level 4 module is worth 1.4% +- Each Level 5 module is worth 4.2% +- Each Level 6 module is worth 7% +- The Final Project is worth 14% + +... of your Degree's final grade. This means that if you screw up early, you shouldn't despair. Getting only 52/100 on a Level 4 Web Dev module (like I did... RIP) will not matter too much towards your final grade, as long as you do better for the latter modules. + +Every module is worth 15 credits, and the Final Project is worth 30 credits. _You are required to pass 360 credit's worth of modules in order to be awarded the highest qualification of the programme: a Bachelor's of Science in Computer Science._ + +### Intermediate Qualifications and Exit Qualifications + +Note that I worded the previous sentence in a very specific fashion. This is because the degree programme has multiple eligible qualifications, of which the Bachelor's of Science in Computer Science is only the _highest_ one: + +- **[Certificate of Higher Education in Computer Science (Cert.H.E.)](https://en.wikipedia.org/wiki/Certificate_of_Higher_Education)**, for successful completion of a minimum of 120 credits. +- **[Diploma of Higher Education in Computer Science (Dip.H.E.)](https://en.wikipedia.org/wiki/Diploma_of_Higher_Education)**, for successful completion of a minimum of 240 credits. +- **[Bachelor's of Science in Computer Science (B.Sc)](https://en.wikipedia.org/wiki/Bachelor_of_Science#Britain_and_Ireland)**, for successful completion of a minimum of 360 credits. + +These additional qualifications are called Intermediate Qualifications or Exit Qualifications, depending on whether or not you choose to apply for them as you go along the programme, or apply for them as you decide to leave the programme. For example, if you are aiming for a B.Sc, you're still welcome to apply for an Cert.H.E. as soon as you have 120 credits and keep studying onwards. The process is not automatic, and you will have to pay an administrative fee -- but a student can hypothetically graduate with all 3 qualifications, if they choose to. + +## Structure of Assessments within a module + +Now that I've given a sufficient overview of the degree programme as a whole, go into further detail about grades and assessments in the typical class. Information for this section primarily comes from the [Programme Specification](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf). + +Typically, there are two general types of modules. I'll call them _"exam-based modules"_, or _"project-based modules"_ -- even though those aren't their real names. + +### Assessment in Exam-based Modules + +Exam-based modules are typically those that are math or theory heavy. There is still a project component to them, but the project components are only formative, and don't count towards the module's final grade. Instead, your module grade will be weighted in the following manner: + +- 50% from online coursework, in the form of quizzes or a "take-home" test. +- 50% from the end-of-term final exam, to be taken at a physical exam centre. + +This means that studying for the end-of-term exam is _very important_, as it is worth half of one's grade. + +### Assessment in Project-based Modules + +Project-based modules are typically those that are skill-oriented, like a Programming class, or a Web Development class. These _do not_ have an in-person exam, so you won't have to travel to a physical exam centre at the end of the term. Instead, the module grade will be weighted either as a 50:50 split, or a 30:70 split. + +In our Introduction to Programming class, we had half a term's worth of online quizzes and activities, which was worth 50 percent of our final grade. Then for the second half of our term, we didn't have any graded quizzes at all. Instead, we had to complete a video game project -- which was worth the other 50 percent of our grade. + +In our Web Development class, for the first half of our term we had quizzes which were worth only 30% of our final grade. For the second half of our term, we had one _big_ website project, which was worth the remaining 70% of our final grade. + +## The Structure of the 'Take-home' and End-of-Term Exams. + +Finally, I will talk a bit about the way exams work, in the so-called Exam-based modules. Modules are typically 22 'weeks' long, with a mid-term at the end of week 10, where everything from weeks 1 to 10 are due (this applies to all modules, and not just exam-based ones). In exam-based modules, there will typically be an take-home test due at the week 10 midterm, which is worth 50% of the online coursework component of the module. Recall that the online coursework is worth 50% of the module's final grade, and the take-home exam is worth half of that: this means the take-home exam is worth 25% of your module's total grade! + +### Take-home exams (midterm) + +**Update:** _This section has been updated and expanded, following feedback from the students-only Slack channel._ + +The take-home exams are due at the end of week 10 of the module, effectively making it somewhat like a midterm. Usually the take-home exams are made available plenty of time in advance though, so they can be completed at your leisure without a strict time limit. + +Most take-home exams are either in the form of a PDF, or as an interactive page on Coursera. When it is available as a PDF, generally people would download the file, and complete all the questions on a piece of paper (or Word document), and upload the scanned results or exported PDF back on to Coursera. + +When it is in the form of an interactive Coursera page, typically there will be multiple text-boxes and upload buttons. Generally some questions will require only text-based responses, which have text-boxes provided for them, and other questions will require an upload of a scanned document or PDF. + +_The midterm for the (now obsolete) Numerical Mathematics module was an interactive Coursera page. Someone saved a text-only PDF copy of the webpage, [which I have attached here to serve as an example](https://imgur.com/a/puSEuNT) of how a midterm might look like._ + +### Final exam (end-of-term) + +**Update:** _I have uploaded [our sample paper for the (now obsolete) Numerical Mathematics module](https://imgur.com/a/fmcjGSP), as an example on how the exam is structured. Click the link to view it as an imgur album!_ + +The final exam is worth 50% of your module's grade, and this must be completed at a physical exam centre, in a controlled environment. A lot of prospective students are worried about finding an exam centre near them -- but fear not, there are _many_ [University of London approved exam centres](https://my.london.ac.uk/examination-centres) around the world. There are exam centres in countries like Afghanistan, Botswana, Taiwan, or even tiny islands like St Helena. The University of London has a massive spreadsheet with all the exam centres and their contact information: + +- [List of Exam Centres in Canada and the United States](https://my.london.ac.uk/documents/10197/2926462/examcentres-northamerica.pdf/da80d4a8-00db-053c-283a-0757f88b5e85) +- [List of Exam Centres Worldwide](https://my.london.ac.uk/documents/10197/2926462/examcentres-worldwide2/659d044f-25c3-2a01-fd7e-0667e3d9e71a) + +A module's exam takes the form of one exam paper, typically with 2 hours of examination time allocated. The exam is worth a total of 100 points, with individual questions being typically worth 4 to 5 points each. The exam paper contains 2 parts, that are: + +- **Part A**: Multiple choice +- **Part B**: Detailed open-response + +Part A is usually the "easy" part of the exam paper, but each question is also worth only a few points. + +Part B is the hard part of the exam, and generally you are given a choice of 3 questions to answer. You are required to answer _only_ 2 of the 3 questions, and the question is usually one that has many subsections and steps, where you have to show your work throughout. Each question is thematically different -- for example, in the Numerical Mathematics module, you might be given a choice of a question on graphical function transformations, a question on modular arithmetic, and a question on set theory. Usually, people would read through all three questions, and choose the two that they are the least bad at. + +### Practice exams (and how they're usually late) + +Usually, a practice test that is identical to the end-of-term final exam will be released before the actual exam. **HOWEVER**, the UoL administration has not always been the best at releasing these practice exams in a timely fashion -- and this is one of the _largest sources of frustration_ for enrolled students. + +Because this degree programme is so new, there isn't a source of past exams and past practice exams that students can count upon when they are studying. Although practice exams are supposed to be made available for students, they are generally released very late in the term. + +Practice papers have been released anywhere from 1 month before the actual exam (stress! stress!) to **LITERALLY THE NIGHT BEFORE THE EXAM**. Hopefully, the situation will have improved by the time other students enroll, as past exams are made available as practice material. However, for the first cohort of students (that includes me!), the timely release of these practice exams have been a significant critique of the programme. + +--- + +Anyways! This completes my guide to grades, assessments, projects, and qualifications at the University of London's Bachelor's of Science in Computer Science programme. I hope I gave you all a reasonable overview of how the structure of the course is laid out. + +As of always, if you have any further questions, you are welcome to ask me -- or visit the [student-run Discord server](https://discord.gg/GhRFG5X). All of the information from this guide is sourced from the various formal policy and regulation documents that are available from the University of London website. For further reading, you may visit them (as linked below): + +## Sources and Further Reading + +- [General Regulations](https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf) +- [Programme Regulations](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf) +- [Programme Specification](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf) +- [Computer Science - Structure](https://london.ac.uk/computer-science-structure) diff --git a/subreddit/interview-david-c.md b/subreddit/interview-david-c.md new file mode 100644 index 00000000..87e4f379 --- /dev/null +++ b/subreddit/interview-david-c.md @@ -0,0 +1,45 @@ +# Student Interview with David C. of Australia. Some Thoughts and Experiences from a Newly-Enrolled April-Cohort Student + +Hello there, /r/UniversityOfLondonCS! + +Today I bring to you an interview, with _David C._ of Australia! Hailing from sunny Sydney, David is a 40 year old technology professional with a degree in Digital Electronics and Telecommunications. He’s an April-cohort student in the process of finishing up his first semester, taking a course-load of _Computational Mathematics, Algorithms and Datastructures 1, Fundamentals of Computer Science, and Introduction to Programming 1._ David has kindly volunteered his time for a virtual interview. I sent him a list of questions, and here are his replies. + +## What led you to enrol in the University of London's distance-learning BSc? + +> The University of London has a great reputation internationally and their Bachelor’s of Science in Computer Science programme curriculum is fantastic. Because of my life, work, and travel commitments, I had to choose a University that would allow me to follow the academic life 24/7 from anywhere in the world. The fact that the University of London uses Coursera to deliver their content was definitely a plus because I know that platform very well and used it intensively to attend some other courses and certification programmes. It is just amazing that today knowledge and even Uni programmes are so accessible online. +> Consider that my first degree is in Digital Electronics and Telecommunications, and I have been working in IT for more than 20 years. When I went to college, there were not many CS-specific college programmes around. Studying CS at UoL is like a dream come true for me. + +## What is your feedback about the classes so far? Was it too easy? Too hard? + +> Their quality and industry relevance are very good, up to date, and their difficulty level is about right. We also should put things into perspective. Even though online learning has been around for a couple of decades now, many universities are still converging from a classic academic educational approach, to a more connected, digital and multi-channel one. +> We have to recognise UoL’s role as a pioneer in their convergence to online learning. That type of digital transformation is never easy and quick to achieve and there will be always room for improvement if you want to remain relevant in the market. + +## What do you think about the midterms? Did they help you master the material? + +> When I started working on them, I realised how important it was for me to go through that process of content review and knowledge check. It did help me refresh and master the content. I wish we can do something similar before the end of the semester or final exams. This semester I took four modules, hence the midterms were quite challenging, but their difficulty level was fair I think. + +## What do you think about the student community on Slack? + +> I am glad about the level of collaboration that exists among my peers. There is always someone to answer a student question on the channels, and this is a huge plus. I personally try my best to help others, when I can. I am sure that it will come back at some point… after all what goes around, comes around! UoL mentioned that its staff will not moderate the UoL Slack channels, and this has its pros and cons. What we have with Slack is a good start and I would like UoL to experiment other collaboration platforms and channels as well and work harder to build a strong student network. + +## Share a positive experience you've had with the student community + +> I am genuinely interested in people, different cultures and languages, and being part of our UoL world-class community is quite amazing. For instance, putting aside the pure academic use of the online channels, I would say that the international and diverse nature of the of our student community is fantastic. I can chat hours with my peers spread around the world to discuss everything, including our Uni assignments. + +## What is one of your favourite things about this programme? + +> The fact that we have all the content available 24/7 online is a huge plus. This is one of the reasons I choose UoL/Coursera in the first place. I think is worth to mention other key aspects of the programme, such as a like-minded world-class student community – as just mentioned – challenging content, quizzes and assignments. + +## How do you organise your life studying and working? + +> I think this is everybody’s dilemma. Don’t you think? I try to divide my day in three time-windows. One devoted to my family, one to my work and the remaining third to studying. Of course, in proximity of important Uni milestones my academic commitments take priority on other life matters. This works for me. It might work for other as well. + +## Do you have any suggestions for your fellow students? + +> I will try… Play nicely with others and share your toys – remember that what goes around comes around. Avoid silly and childish gossip and be always part of the solution not of the problem. All the best to everyone! + +Thank you very much for the advice, David! + +I’m always looking forward to bringing new perspectives and new voices to speak about the programme, and this interview is one of the things I’m trying to bring more content to this subreddit. I hope you enjoyed David’s account of his experiences as a student at the University of London – and if you have any further questions, feel free to join us at the unofficial Discord server. + +Take care! diff --git a/subreddit/legal-protections.md b/subreddit/legal-protections.md new file mode 100644 index 00000000..4327f3c3 --- /dev/null +++ b/subreddit/legal-protections.md @@ -0,0 +1,64 @@ +# Legal Protections for the Distance-Learning Student: As a 'Consumer' of Education, Here Are the Rights and Protections That You Are Entitled To Under Contract + +Hello /r/UniversityOfLondonCS! + +With the start of the next academic cohort approaching, there's been a lot more interest in the University of London's Online Bachelor's in Computer Science. I've been meeting a lot of prospective students in [our Discord Server](https://discord.gg/GhRFG5X), and many people are curious on whether or not this programme will work for them. An online programme like this one is fundamentally different from a traditional on-campus experience, and whether or not it is 'better' or 'worse' depends a lot on the individual student's personal situation and aptitude. + +_Hence, it's perfectly okay if you enroll, and realise later on that this programme or style of learning is not suitable for your particular situation._ + +As a distance-learning student you are entitled to certain rights and legal protections, **including a right to a full refund within 14 days of access to classes**. These rights are outlined in the [Student Terms and Conditions document](https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf), which is a legally binding contract under UK Law. + +Now, I cannot advise on the actual minutiae of the contract as I am not a lawyer, and _this post is not legal advice_. However, I wrote this guide specifically to highlight these protections, so that any (prospective or current) students are aware of what they are entitled to. I am specifically going to quote verbatim the relevant sections from the Student Terms and Conditions, and link to their respective section and page numbers: + +--- + +## Refund and Withdrawl + +> **Section 16.1:** As you are entering into this Contract remotely (i.e. there has been no face-to-face contact between us and you at the time you register with us) you may cancel this Contract by the later of +> +> (a) 14 days after the date when you pay your Registration Fee or +> +> (b) 14 days after the date you are first given access to Programme materials on the Virtual Learning Environment ("the Cancellation Period"). + +> **Section 16.3:** If you have made any payment, or any payment has been made on your behalf under this Contract before the Cancellation Date, excluding payment of the Application Fee, then we will provide you with a full refund as soon as reasonably possible but in any event: +> +> (a) within 14 days of the Cancellation Date; or +> +> (b) within 14 days of the University receiving returned physical materials or receiving satisfactory evidence that the materials have been returned, whichever is earlier. + +**Source:** Section 16 (page 12) of the Student Terms and Conditions +https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf + +## In Event of Significant Changes in the Programme after Enrolment + +> **Section 8.1.2:** In circumstances where it is necessary to make a material change to your Programme (likely to have a significant impact on your studies as reasonably determined by us), we will consult with you before final decisions are made and consider your concerns. We will assess these against the needs of the wider student body. If you are unhappy with the material change(s) to your Programme, you may cancel the Contract and withdraw from the Programme without incurring any further liability for Programme Fees and we may refund your Programme Fees paid to date. + +**Source:** Section 8.1.2 (page 8) of the Student Terms and Conditions +https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf + +## In Event of Programme Cancellation + +> **Section 8.2:** If we discontinue your Programme because of matters beyond our control and we are unable to complete delivery of the Programme, we will inform you as soon as is reasonably possible. In such circumstances we will endeavor to offer the Programme for a period of up to 5 years from such notification or until the last student has completed their studies, if this is sooner. +> +> If, following such notice, we are unable to offer the Programme for a period of up to 5 years or until the last student has completed their studies, if this is sooner, then we will use all reasonable efforts to transfer you to a suitable alternative University programme for which you are qualified. If we are unable to provide a suitable alternative programme, or if you are unhappy with the recommended alternative programme, you may cancel the Contract and withdraw from the Programme without incurring any further liability forProgramme Fees and we may refund Programme Fees paid to date. + +**Source:** Section 8.2 (page 8) of the Student Terms and Conditions +https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf + +--- + +In practice, the most important right is that of a refund, highlighted in **Section 16**. Committing to an online programme is bound to contain some uncertainties, and as a result students are allowed to withdrawal from the programme with no penalty, within 14 days of having access to classes. + +Remember that you'll have access to at least the first 10 weeks of class materials upon the first day of classes. This way, within the 14-day grace period, you'll have ample time to complete at least 4 or 5 weeks worth of coursework, and get a good impression of how the programme is like. And should it not work out, it is easy to withdrawal with a full refund of your module fees -- and be made whole without penalty. + +While I'm not personally familiar with the withdrawal process, it uses the same inquiry system (a private support email) that other inquiries (such as asking for an extension) requires. Anecdotally, I've seen a couple students request refunds at the start of every new cohort -- and while none have really followed up on the student Slack workspace... the fact that they are gone demonstrates the relative painlessness of the process. + +The latter two protections (involving programme changes and cancellations) seem to be more specific, and as of the time of writing, they haven't been applicable. However, it is reassuring to see that the University of London has a specific procedure in place for sun-setting programmes. + +--- + +## Sources and Further Reading + +- https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf + +- https://london.ac.uk/sites/default/files/governance/refund-and-compensation-policy-uolw-2019.pdf diff --git a/subreddit/resources-links/links-discord-resources.md b/subreddit/resources-links/links-discord-resources.md new file mode 100644 index 00000000..20f63e29 --- /dev/null +++ b/subreddit/resources-links/links-discord-resources.md @@ -0,0 +1,146 @@ +:flag_gb: **Information on UoL's BSc Computer Science** :flag_gb: +Collection of links :link: and PDFs :page_facing_up: about the University of London's Bachelor's of Science in Computer Science degree programme. + +**BSc Computer Science Programme Homepage** +University of London's main programme homepage for the BSc Computer Science. Contains more information than the Coursera webpage. +:link: https://london.ac.uk/courses/computer-science + +**BSc Computer Science Coursera Webpage** +Coursera's webpage for the University of London's BSc Computer Science programme. Contains links to the application portal. +:link: https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/ + +**BSc Computer Science Prospectus (2020)** +Admissions prospectus on the BSc Computer Science for interested students. A polished, informative summary of the Programme. +:page_facing_up: https://london.ac.uk/sites/default/files/prospectuses/computer-science-prospectus-2020.pdf + +**Structure & Module Descriptions** +A high-level summary of the 22 modules and Final Project which makes up the Programme, seperated by Levels. +:link: https://london.ac.uk/computer-science-structure + +**Programme Regulations (2020-2021)** +The 'Bible' of the BSc Computer Science degree. _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and regulations. +:page_facing_up: https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf + +**Programme Specification (2020-2021)** +A broad outline and overview of the structure and content of the degree, entry level qualifications, and learning outcomes. +:page_facing_up: https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf + +:flag_gb: **About the University of London** :flag_gb: +Links :link: and PDFs :page_facing_up: about the University of London in general, as well as resources for students. + +**University of London Website** +The official website and portal of the University of London. +:link: https://london.ac.uk/ + +**University of London Prospectus (2020)** +Admissions prospectus about the University of London in general. A polished, informative summary for the prospective student. +:page_facing_up: https://london.ac.uk/sites/default/files/prospectuses/GIP-2020.pdf + +**General Regulations** +Handbook of rules and regulations governing the University of London _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and systems of the University of London. +:page_facing_up: https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf + +**Student's Guide** +Guide for current students of the University of London. Includes information like how to get funding, online libraries, and support networks +:page_facing_up: https://my.london.ac.uk/documents/10197/2676152/Student+Guide/07f72f0b-fd7d-cc23-603f-db6c31bfa5e2 + +**Student Terms and Conditions** +Important legal contract which covers the consumer rights and legal protections for enrolled students. Includes information on refunds. +:page_facing_up: https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf + +**List of Exam Centres (Worldwide)** +:page_facing_up: https://my.london.ac.uk/documents/10197/2926462/examcentres-worldwide2/659d044f-25c3-2a01-fd7e-0667e3d9e71a + +**List of Exam Centres (USA and Canda)** +:page_facing_up: https://my.london.ac.uk/documents/10197/2926462/examcentres-northamerica.pdf/da80d4a8-00db-053c-283a-0757f88b5e85 + +**Table of Country Bands (for Tuition)** +Tuition for the University of London is dependant on your 'Country Band'. _As of August 2020, Band A countries pay £420 GBP per module, while Band B countries pay £630 GBP per module._ +:page_facing_up: https://london.ac.uk/sites/default/files/leaflets/country-bands.pdf + +:flag_gb: **Recognition of Prior Learning** :flag_gb: +**About Recognitions of Prior Learning** +General information on Recognition of Prior learning at the University of London +:link: https://london.ac.uk/applications/how-apply/recognition-prior-learning + +**Applying for RPLs & Automatic RPLs** +Specific information on applying for a RPL for the BSc Computer Science programme, and list of Automatic RPLs +:link: https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3 + +**Coursera Google IT Cert** +Yes, this is the correct one. Complete this in order to apply for an RPL to bypass the How Computer's Work module. +:link: https://www.coursera.org/professional-certificates/google-it-support + +**Applying for a Recognition of Prior Learning: Or How to Save £400 to £600 GBP** +A student post which explains what RPLs are, and walks you through the process of getting a RPL via Coursera's Google IT Cert. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hhjr2r/applying_for_a_recognition_of_prior_learning_rpl/ + +:passport_control:**Login Portals for Currently Enrolled Students** :passport_control: +Links to various login portals for currently enrolled students. Valid account credentials at the University of London is required for access. + +**University of London Student Portal** +:closed_lock_with_key: https://my.london.ac.uk/ + +**Virtual Learning Environment (Coursera)** +:closed_lock_with_key: https://www.coursera.org/?authMode=login&authProvider=london + +**University of London Student Email** +:closed_lock_with_key: http://mail.google.com/a/student.london.ac.uk + +**Online Library and Databases** +:closed_lock_with_key: http://onlinelibrary.london.ac.uk/ + +**Student Slack Workspace** +:closed_lock_with_key: https://londoncs.slack.com/ + +:bookmark: **Student-Run Resources and Community** :bookmark: +Links to various student-made resources and community portal + +**Resources Enriching Learners Perennially (Student Hub)** +This is the main student-run community hub. Contains many informative resources and guides. **If you will only read one document from this section, read this one.** +:link: https://world-class.github.io/REPL/ + +**Student & Professor Notes Github Repository** +Collection of notes contributed by students and professors. +:link: https://github.com/world-class/REPL/tree/master/notes + +**Student Module Guides** +Various FAQs and guides to the different modules +:link: https://github.com/world-class/REPL/tree/master/modules/level_4 + +**Slack Channel Guide** +An overview of the vibrant Slack community, and the various channels that are available. +:link: https://world-class.github.io/REPL/slack/ + +:100: **Useful posts from /r/UniversityOfLondonCS** :100: +Links to various student-made resources and community portal +Here is a collection of useful, in-depth guides, tutorials, and walkthroughs published by /u/Yangchenghu from the /r/UniversityOfLondonCS + +**Beginner's Guide to Grades, Projects, Exams, and Award Qualifications at UoL's CompSci BSc** +A good overview of how the academic structure of the degree works, plus examples of past mid-terms and exam papers. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hgbcc8/beginners_guide_to_grades_projects_exams_and/ + +**Thoughts on UoL's BSc in Computer Science - A Comprehensive Review** +In-depth review of /u/Yangchenghu's experiences as a first cohort student, with screenshots of the Virtual Learning Environment and Slack. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hf8cwy/thoughts_on_university_of_londons_bachelors_in/ + +**Let's Talk About The Balance of Formative Coursework versus Summative Assessments** +Explains how grades and optional assignments work, which segues into a more philosophical discussion on self-driven learning. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hgx9zs/lets_talk_about_the_balance_of_formative/ + +**Legal Protections for the Distance-Learning Student: The Rights and Protections you are Entitled To** +Gives a overview of the Student Terms and Conditions document, and outlines the rights to refund and withdrawl. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hldddc/legal_protections_for_the_distancelearning/ + +**Everything You Want to Know about the Institutional Accreditation of the University of London et al** +A VERY detailed and source-heavy document with many links, detailing the accreditation of the course programme. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hzumke/everything_you_want_to_know_about_the/ + +**Applying for a Recognition of Prior Learning: Or How to Save £400 to £600 GBP** +A student post which explains what RPLs are, and walks you through the process of getting a RPL via Coursera's Google IT Cert. +:link: https://www.reddit.com/r/UniversityOfLondonCS/comments/hhjr2r/applying_for_a_recognition_of_prior_learning_rpl/ + +**Be sure to check out /r/UniversityOfLondonCS - the Official Unofficial student subreddit of this programme** +Although we are primarily for students and prospies in the University of London's Computer Science programme, there are also students from other UoL distance-learning programmes as well. All are welcome in this environment! + +:globe_with_meridians: **https://www.reddit.com/r/UniversityOfLondonCS/** :globe_with_meridians: diff --git a/subreddit/resources-links/links-reddit-sidebar-olddesign.md b/subreddit/resources-links/links-reddit-sidebar-olddesign.md new file mode 100644 index 00000000..efbb9c4c --- /dev/null +++ b/subreddit/resources-links/links-reddit-sidebar-olddesign.md @@ -0,0 +1,45 @@ +> [**Click here to join the student-run Discord server!**](https://discord.gg/GhRFG5X) +> +> It's more active than the subreddit, and you can meet current students. Great for asking questions and getting answers. + +## Programme Information 🇬🇧 + +- [**BSc Computer Science Programme Homepage**](https://london.ac.uk/courses/computer-science) + University of London's main programme homepage for the BSc Computer Science. Contains more information than the Coursera webpage. +- [**BSc Computer Science Coursera Webpage**](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/) + Coursera's webpage for the University of London's BSc Computer Science programme. Contains links to the application portal. +- [**Prospective Student Prospectus (2020)**](https://london.ac.uk/sites/default/files/prospectuses/computer-science-prospectus-2020.pdf) + Admissions prospectus on the BSc Computer Science for interested students. A polished, informative summary of the Programme. +- [**Structure & Module Descriptions**](https://london.ac.uk/computer-science-structure) + A high-level summary of the 22 modules and Final Project which makes up the Programme, seperated by Levels. +- [**Programme Regulations (2020-2021)**](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf) + The 'Bible' of the BSc Computer Science degree. _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and regulations. +- [**Programme Specification (2020-2021)**](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf) + A broad outline and overview of the structure and content of the degree, entry level qualifications, and learning outcomes. + +## About the University of London 🇬🇧 + +- [**University of London Website**](https://london.ac.uk/) The official website of the University of London. Did you know that the University of London has been offering Distance-Learning programmes since the 19th century? +- [**University of London Prospectus (2020)**](https://london.ac.uk/sites/default/files/prospectuses/GIP-2020.pdf) Admissions prospectus about the University of London in general. A polished, informative summary for the prospective student. +- [**General Regulations**](https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf) Handbook of rules and regulations governing the University of London _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and systems of the University of London. +- [**Student's Guide**](https://my.london.ac.uk/documents/10197/2676152/Student+Guide/07f72f0b-fd7d-cc23-603f-db6c31bfa5e2) Guide for current students of the University of London. Includes information like how to get funding, online libraries, and support networks +- [**Student Terms and Conditions**](https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf) Important legal contract which covers the consumer rights and legal protections for enrolled students. Includes information on refunds. +- [**Table of Country Bands (for Tuition)**](https://london.ac.uk/sites/default/files/leaflets/country-bands.pdf) Tuition for the University of London is dependant on your 'Country Band'. Band A countries pay £400 GBP per module, while Band B countries pay £600 GBP per module. +- [**List of Exam Centres (Worldwide)**](https://my.london.ac.uk/documents/10197/2926462/examcentres-worldwide2/659d044f-25c3-2a01-fd7e-0667e3d9e71a) +- [**List of Exam Centres (USA and Canda)**](https://my.london.ac.uk/documents/10197/2926462/examcentres-northamerica.pdf/da80d4a8-00db-053c-283a-0757f88b5e85) + +## Student-Run Resources & Community 🙋 + +- [**Resources Enriching Learners Perennially (Student Hub)**](https://world-class.github.io/REPL/) This is the main student-run community hub. Contains many informative resources and guides. _If you will only read one document from this section, read this one._ +- [**Student & Professor Notes Github Repository**](https://github.com/world-class/REPL/tree/master/notes) Collection of notes contributed by students and professors. +- [**Student Module Guides**](https://github.com/world-class/REPL/tree/master/modules/level_4) Various FAQs and guides to the different modules +- [**Slack Channel Guide**](https://world-class.github.io/REPL/slack/) An overview of the vibrant Slack community, and the various channels that are available. + +## Student Login Portals 🔐 + +- Links to various login portals for currently enrolled students. Valid account credentials at the University of London is required for access. +- [**University of London Student Portal**](https://my.london.ac.uk/) +- [**Virtual Learning Environment (Coursera)**](https://www.coursera.org/?authMode=login&authProvider=london) +- [**Student Slack Workspace**](https://londoncs.slack.com/) +- [**University of London Student Email**](http://mail.google.com/a/student.london.ac.uk) +- [**Online Library and Databases**](http://onlinelibrary.london.ac.uk/) diff --git a/subreddit/resources-links/links-reddit-sidebar-redesign.md b/subreddit/resources-links/links-reddit-sidebar-redesign.md new file mode 100644 index 00000000..24336317 --- /dev/null +++ b/subreddit/resources-links/links-reddit-sidebar-redesign.md @@ -0,0 +1,78 @@ +## Information on UoL's BSc Computer Science 🇬🇧 + +Collection of links 🔗 and PDFs 📄 about the University of London's Bachelor's of Science in Computer Science degree programme. + +[**BSc Computer Science Programme Homepage**](https://london.ac.uk/courses/computer-science) +University of London's main programme homepage for the BSc Computer Science. Contains more information than the Coursera webpage. + +[**BSc Computer Science Coursera Webpage**](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/) +Coursera's webpage for the University of London's BSc Computer Science programme. Contains links to the application portal. + +[**BSc Computer Science Prospectus (2020)**](https://london.ac.uk/sites/default/files/prospectuses/computer-science-prospectus-2020.pdf) +Admissions prospectus on the BSc Computer Science for interested students. A polished, informative summary of the Programme. + +[**Structure & Module Descriptions**](https://london.ac.uk/computer-science-structure) +A high-level summary of the 22 modules and Final Project which makes up the Programme, seperated by Levels. + +[**Programme Regulations (2020-2021)**](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf) +The 'Bible' of the BSc Computer Science degree. _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and regulations. +https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf + +[**Programme Specification (2020-2021)**](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf) +A broad outline and overview of the structure and content of the degree, entry level qualifications, and learning outcomes. + +## About the University of London 🇬🇧 + +Links 🔗 and PDFs 📄 about the University of London in general, as well as resources for students. + +[**University of London Website**](https://london.ac.uk/) +The official website of the University of London. Did you know that the University of London has been offering Distance-Learning programmes since the 19th century? + +[**University of London Prospectus (2020)**](https://london.ac.uk/sites/default/files/prospectuses/GIP-2020.pdf) +Admissions prospectus about the University of London in general. A polished, informative summary for the prospective student. + +[**General Regulations**](https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf) +Handbook of rules and regulations governing the University of London _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and systems of the University of London. + +[**Student's Guide**](https://my.london.ac.uk/documents/10197/2676152/Student+Guide/07f72f0b-fd7d-cc23-603f-db6c31bfa5e2) +Guide for current students of the University of London. Includes information like how to get funding, online libraries, and support networks + +[**Student Terms and Conditions**](https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf) +Important legal contract which covers the consumer rights and legal protections for enrolled students. Includes information on refunds. + +[**List of Exam Centres (Worldwide)**](https://my.london.ac.uk/documents/10197/2926462/examcentres-worldwide2/659d044f-25c3-2a01-fd7e-0667e3d9e71a) + +[**List of Exam Centres (USA and Canda)**](https://my.london.ac.uk/documents/10197/2926462/examcentres-northamerica.pdf/da80d4a8-00db-053c-283a-0757f88b5e85) + +[**Table of Country Bands (for Tuition)**](https://london.ac.uk/sites/default/files/leaflets/country-bands.pdf) +Tuition for the University of London is dependant on your 'Country Band'. Band A countries pay £400 GBP per module, while Band B countries pay £600 GBP per module. + +## Student-Run Resources and Community + +Links to various student-made resources and community portal + +[**Resources Enriching Learners Perennially (Student Hub)**](https://world-class.github.io/REPL/) +This is the main student-run community hub. Contains many informative resources and guides. **If you will only read one document from this section, read this one.** + +[**Student & Professor Notes Github Repository**](https://github.com/world-class/REPL/tree/master/notes) +Collection of notes contributed by students and professors. + +[**Student Module Guides**](https://github.com/world-class/REPL/tree/master/modules/level_4) +Various FAQs and guides to the different modules + +[**Slack Channel Guide**](https://world-class.github.io/REPL/slack/) +An overview of the vibrant Slack community, and the various channels that are available. + +## Login Portals for Currently Enrolled Students + +Links to various login portals for currently enrolled students. Valid account credentials at the University of London is required for access. + +[**University of London Student Portal**](https://my.london.ac.uk/) + +[**Virtual Learning Environment (Coursera)**](https://www.coursera.org/?authMode=login&authProvider=london) + +[**Student Slack Workspace**](https://londoncs.slack.com/) + +[**University of London Student Email**](http://mail.google.com/a/student.london.ac.uk) + +[**Online Library and Databases**](http://onlinelibrary.london.ac.uk/) diff --git a/subreddit/resources-links/links-reddit-sticky.md b/subreddit/resources-links/links-reddit-sticky.md new file mode 100644 index 00000000..4e72b28c --- /dev/null +++ b/subreddit/resources-links/links-reddit-sticky.md @@ -0,0 +1,124 @@ +# Links, Resources, and FAQs for the University of London Bachelor's of Science in Computer Science Programme + +**Updated as of 2020-08-04 (August 4th, 2020)** + +Hello /r/UniversityOfLondonCS, + +This is the most comprehensive collection of links, resources, and FAQs about the University of London's Bachelor's of Science in Computer Science. If you have a specific question about any particular aspect of the degree programme, you can find the answer here! + +This post is divided into four general sections: + +1. Information on the Computer Science BSc +2. Information About the University of London in General +3. Additional Misc. Links & Community Resources +4. Frequently Asked Questions + +--- + +## Information on UoL's BSc Computer Science 🇬🇧 + +Collection of links 🔗 and PDFs 📄 about the University of London's Bachelor's of Science in Computer Science degree programme. + +### [**BSc Computer Science Programme Homepage**](https://london.ac.uk/courses/computer-science) + +University of London's main programme homepage for the BSc Computer Science. Contains more information than the Coursera webpage. + +### [**BSc Computer Science Coursera Webpage**](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/) + +Coursera's webpage for the University of London's BSc Computer Science programme. Contains links to the application portal. + +### [**BSc Computer Science Prospectus (2020)**](https://london.ac.uk/sites/default/files/prospectuses/computer-science-prospectus-2020.pdf) + +Admissions prospectus on the BSc Computer Science for interested students. A polished, informative summary of the Programme. + +### [**Structure & Module Descriptions**](https://london.ac.uk/computer-science-structure) + +A high-level summary of the 22 modules and Final Project which makes up the Programme, seperated by Levels. + +### [**Programme Regulations (2020-2021)**](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf) + +The 'Bible' of the BSc Computer Science degree. _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and regulations. + +### [**Programme Specification (2020-2021)**](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf) + +A broad outline and overview of the structure and content of the degree, entry level qualifications, and learning outcomes. + +--- + +## About the University of London 🇬🇧 + +Links 🔗 and PDFs 📄 about the University of London in general, as well as resources for students. + +- [**University of London Website**](https://london.ac.uk/) The official website of the University of London. Did you know that the University of London has been offering Distance-Learning programmes since the 19th century? +- [**University of London Prospectus (2020)**](https://london.ac.uk/sites/default/files/prospectuses/GIP-2020.pdf) Admissions prospectus about the University of London in general. A polished, informative summary for the prospective student. +- [**General Regulations**](https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf) Handbook of rules and regulations governing the University of London _If you will only read one document from this section, read this one._ Contains almost every detail about specific workings and systems of the University of London. +- [**Student's Guide**](https://my.london.ac.uk/documents/10197/2676152/Student+Guide/07f72f0b-fd7d-cc23-603f-db6c31bfa5e2) Guide for current students of the University of London. Includes information like how to get funding, online libraries, and support networks +- [**Student Terms and Conditions**](https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf) Important legal contract which covers the consumer rights and legal protections for enrolled students. Includes information on refunds. +- [**List of Exam Centres (Worldwide)**](https://my.london.ac.uk/documents/10197/2926462/examcentres-worldwide2/659d044f-25c3-2a01-fd7e-0667e3d9e71a) +- [**List of Exam Centres (USA and Canada)**](https://my.london.ac.uk/documents/10197/2926462/examcentres-northamerica.pdf/da80d4a8-00db-053c-283a-0757f88b5e85) +- [**Table of Country Bands (for Tuition)**](https://london.ac.uk/sites/default/files/leaflets/country-bands.pdf) Tuition for the University of London is dependant on your 'Country Band'. _As of August 2020, Band A countries pay £420 GBP per module, while Band B countries pay £630 GBP per module._ + +--- + +## University of London Váradi Scholarships + +- [**Fully paid scholarships available to all new students**](https://london.ac.uk/applications/funding-your-study/scholarships-and-bursaries/varadi-scholarships) + +## Recognition of Prior Learning + +- [**About Recognitions of Prior Learning**](https://london.ac.uk/applications/how-apply/recognition-prior-learning) General information on Recognition of Prior learning at the University of London +- [**Applying for RPLs & Automatic RPLs**](https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3) Specific information on applying for a RPL for the BSc Computer Science programme, and list of Automatic RPLs +- [**Coursera Google IT Cert**](https://www.coursera.org/professional-certificates/google-it-support) Yes, this is the correct one. Complete this in order to apply for an RPL to bypass the How Computer's Work module. +- [**Applying for a Recognition of Prior Learning: Or How to Save £400 to £600 GBP**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hhjr2r/applying_for_a_recognition_of_prior_learning_rpl/): A student post which explains what RPLs are, and walks you through the process of getting a RPL via Coursera's Google IT Cert. + +## Student-Run Resources and Community + +Links to various student-made resources and community portal + +- [**Resources Enriching Learners Perennially (Student Hub)**](https://world-class.github.io/REPL/): This is the main student-run community hub. Contains many informative resources and guides. _If you will only read one document from this section, read this one._ +- [**Student & Professor Notes Github Repository**](https://github.com/world-class/REPL/tree/master/notes): Collection of notes contributed by students and professors. +- [**Student Module Guides**](https://github.com/world-class/REPL/tree/master/modules/level_4): Various FAQs and guides to the different modules. Contains many informative links and module-specific documents +- [**Slack Channel Guide**](https://world-class.github.io/REPL/slack/): An overview of the vibrant Slack community, and the various channels that are available. + +## Useful posts from /r/UniversityOfLondonCS + +Here is a collection of useful, in-depth guides, tutorials, and walkthroughs published by [/u/Yangchenghu](https://www.reddit.com/user/Yangchenghu) from the [/r/UniversityOfLondonCS](https://www.reddit.com/r/UniversityOfLondonCS/) subreddit. + +- [**Beginner's Guide to Grades, Projects, Exams, and Award Qualifications at UoL's CompSci BSc**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hgbcc8/beginners_guide_to_grades_projects_exams_and/): A good overview of how the academic structure of the degree works, plus examples of past mid-terms and exam papers. +- [**Thoughts on UoL's BSc in Computer Science - A Comprehensive Review**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hf8cwy/thoughts_on_university_of_londons_bachelors_in/): In-depth review of /u/Yangchenghu's experiences as a first cohort student, with screenshots of the Virtual Learning Environment and Slack. +- [**Let's Talk About The Balance of Formative Coursework versus Summative Assessments**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hgx9zs/lets_talk_about_the_balance_of_formative/): Explains how grades and optional assignments work, which segues into a more philosophical discussion on self-driven learning. +- [**Legal Protections for the Distance-Learning Student: The Rights and Protections you are Entitled To**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hldddc/legal_protections_for_the_distancelearning/): Gives a overview of the Student Terms and Conditions document, and outlines the rights to refund and withdrawl. +- [**Everything You Want to Know about the Institutional Accreditation of the University of London et al**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hzumke/everything_you_want_to_know_about_the/): A VERY detailed and source-heavy document with many links, detailing the accreditation of the course programme. +- [**Applying for a Recognition of Prior Learning: Or How to Save £400 to £600 GBP**](https://www.reddit.com/r/UniversityOfLondonCS/comments/hhjr2r/applying_for_a_recognition_of_prior_learning_rpl/): A student post which explains what RPLs are, and walks you through the process of getting a RPL via Coursera's Google IT Cert. + +[**Be sure to check out /r/UniversityOfLondonCS - the Official Unofficial student subreddit of this programme**](https://www.reddit.com/r/UniversityOfLondonCS). Although we are primarily for students and prospies in the University of London's Computer Science programme, there are also students from other UoL distance-learning programmes as well. All are welcome in this environment! + +## Login Portals for Currently Enrolled Students + +Links to various login portals for currently enrolled students. Valid account credentials at the University of London is required for access. + +- [**University of London Student Portal**](https://my.london.ac.uk/) +- [**Virtual Learning Environment (Coursera)**](https://www.coursera.org/?authMode=login&authProvider=london) +- [**Student Slack Workspace**](https://londoncs.slack.com/) +- [**University of London Student Email**](http://mail.google.com/a/student.london.ac.uk) +- [**Online Library and Databases**](http://onlinelibrary.london.ac.uk/) + +## Related Posts from the University of London Blog + +Misc. blog posts and other fluff from the University of London Blog that showcases various aspects of the degree. + +- [**Project-Based Learning in BSc Computer Science**](https://london.ac.uk/news-opinion/london-connection/feature/build-a-digital-portfolio-your-future-career) + +- [**BSc Computer Science Gaming Specialisation**](https://london.ac.uk/news-opinion/london-connection/feature/ready-player-one-get-set-exciting-career-gaming) + +- [**Studying Two Degrees at Once**](https://london.ac.uk/news-and-opinion/student-blog/combining-two-degrees-a-story-plato-and-programming) + +--- + +## Frequently Asked Questions (FAQs) + +There is a _comprehensive, fantastically detailed_ FAQ located at the REPL Hub. The link to it is right here: + +- [**Frequently Asked Questions (REPL Hub)**](https://world-class.github.io/REPL/faq/) + +Remember, REPL is the centre of all the student-run resources, make sure to check it out! It has student-written guides for the various modules, as well as notes and links. If you think this reddit post is too long, just wait until you see REPL - it's even better! :D diff --git a/subreddit/rpl-guide.md b/subreddit/rpl-guide.md new file mode 100644 index 00000000..2421c2b9 --- /dev/null +++ b/subreddit/rpl-guide.md @@ -0,0 +1,34 @@ +# Applying for a Recognition of Prior Learning (RPL): Or How to Save £400 to £600 GBP via Google's IT Support Professional Certificate + +## About Recognitions of Prior Learning (RPL) + +The University of London, like most universities -- offer what is called a [Recognition of Prior Learning (RPL)](https://london.ac.uk/applications/how-apply/recognition-prior-learning). Such a process allows one to receive course credits for classes/modules taken at other institutions or universities -- effectively letting you "transfer" your credits. An RPL is accepted on the basis that the two courses are considered academically 'equivalent'. This effectively lets you 'skip' a limited amount of classes ([only Level 4](https://www.reddit.com/r/UniversityOfLondonCS/comments/hgbcc8/beginners_guide_to_grades_projects_exams_and/), and only up to 120 credits), if you can demonstrate prior learning. + +There are two types of RPLs offered by the University of London: automatic RPLs, and discretionary RPLs. Automatic RPLs come from a [very small list of pre-approved classes from a select few universities](https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3). If a student has completed such a class from the list, they may apply for an RPL and have it accepted automatically, without needing to pay any administrative fee. + +There are also discretionary RPLs, which is basically decided on a case-by-case basis. From what I've heard, it's pretty difficult to apply for a discretionary RPL, and unfortunately, I haven't heard about any success stories so far. + +## How to save £400 - £600 by applying for a RPL via the Google IT Professional Certification + +Most RPLs are pretty specific and situational to the individual student. However, there is one RPL pathway that is available to _everyone_, and it can save you anywhere from between £400 to £600 British Pounds, depending on your tuition. + +All students in the University of London's Bachelor's of Science in Computer Science programme are required to complete an Level 4 module, called How Computers Work (HCW). However, the University of London also offers an option to skip the HCW module, _if you apply for a RPL via the Google IT Professional Certificate_. + +[The Google IT Professional Certificate is actually a MOOC from Coursera](https://www.coursera.org/professional-certificates/google-it-support), and it takes the form of a Coursera specialisation containing 5 courses. In terms of difficulty or content, it's either the same or slightly more difficult than the University of London's HCW module. But most importantly, the Google IT Cert costs _much, much less!_ + +Nominally, Coursera has an subscription billing model. When one enrolls in the specialisation, the first month is free, and every subsequent month costs \$49.00 USD. This is much less than the £400 to £600 British Pounds that the HCW module costs! + +This RPL pathway has not gone unnoticed, and _the vast majority of students enrolled in this programme are taking advantage of it_. There's actually an [entire slack channel dedicated to doing the Google IT Cert](https://i.imgur.com/sFK0AHL.png), and overall this is a great way to save money and time. + +The Google IT Cert takes up to 6 months to complete, but most people finish it in less than 3 months. If you have a strong prior technical background, and a lot of time to dedicate -- it's even possible to complete it in less than 1 month, making it entirely free. + +And for prospective students who wish to start their journey in the programme on a high note, it's possible to begin the Google IT Cert _today_, and apply for the RPL as soon as you have been accepted by the University of London :) + +Likewise, for students who are applying via the Performance Admissions track, you would be able to apply for the RPL and have it accepted as soon as the term is over. This way, you will effectively complete 3 modules in your first term, even though Performace Admissions students are restricted to only 2 modules at first. + +--- + +## Resources & Further Reading + +- https://www.coursera.org/professional-certificates/google-it-support +- https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3 diff --git a/subreddit/uol-review.md b/subreddit/uol-review.md new file mode 100644 index 00000000..c4eef3df --- /dev/null +++ b/subreddit/uol-review.md @@ -0,0 +1,132 @@ +# Thoughts on University of London's Bachelor's in Computer Science - A Comprehensive Review from the Perspective of A First Cohort Student + +_Edit:_ Decided to cross-post it here since I don't have enough karma to post in /r/Coursera yet. Hopefully their mods will approve my post :) + +Hello everyone! + +Lately there has been a lot of interest and attention in the [University of London's Bachelor's in Computer Science](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/home/) degree. This is not without reason. After all, it's one of the _first_ online Bachelor degrees in Computer Science! + +As the degree itself is fairly new, there's not a lot of online coverage about it. With the next [application deadline](https://london.ac.uk/courses/computer-science#apply-now) (September 7th) a few months away, I decided to write a review of my own experiences as a student of the degree -- in hopes that the information I share will empower potential students to better decide whether or not this degree is the best for them. I'll try my best to keep a relatively balanced and fair overview of the degree -- while keeping in mind that these are fundamentally my own experiences. + +## How is the online degree structured? + +An online degree is different from the sort of paid classes or specialisations currently available on Coursera, so it helps to give a quick overview of how the degree is structured. + +There are 22 classes called modules in this degree, plus a final project. You can enroll up to 4 modules per term (semester), for a maximum course-load of 8 modules per academic year. + +[This is how your course page looks like, when you login. See the individual modules?](https://i.imgur.com/7dV9ta4.png) + +Each module is organised into 20 - 22 "weeks" worth of material, separated into a midterm at week 10, and a final at week 20 - 22. + +[This is how your module page looks like.](https://i.imgur.com/48HW9oq.png) + +## What is the time commitment? Can I study this degree while having a full-time job/busy-family? + +Actually, you could! The degree is designed as a _flexible_ degree, specifically for professionals with full-time jobs. Many of my classmates have busy families, or full-fledged professional careers -- and they're still able to maintain a 4 module per term workload. + +This works because the modules have flexible deadlines. All of your assignments have "suggested" weekly due dates. However, there are only two hard deadlines: the midterm (Week 10) and endterm (Week 20 - 22). + +This means, that as long as you turn in all of your assignments from Weeks 1 - 9 before the hard deadline of Week 10, you are alright. This lets you structure your time so you can do more or less, depending on your schedule. + +## What are your own experiences in terms of the quality of modules? + +I was a member of the very first cohort of students, so I had a front-line view of the quality of the course. Overall, I'm pretty satisfied with the actual _material_ itself in terms of the lectures and readings, especially for my current Level 5 classes. + +### Quality of Delivery + +As the first cohort of the new degree, we had a pretty bumpy ride in the first term. **There were logistical issues and technical bugs when we first started our term**. For example, sometimes images would be missing from lecture slides -- or a download link doesn't work. It became pretty clear that we were beta-testers of something new, and we would get emails from the administration, informing us of changes or bugfixes as the weeks went on. + +As far as I can tell, even though University of London has been running distance-learning degrees since the 19th century, this was the first time they've partnered with Coursera as a platform, and there were definitely pain points. + +Students ended up organising a crowd-sourced bug tracker for the various issues, and as time went on, most of them got fixed. There's still some issues with things like incorrect diagrams, but as far as I can tell -- **the second cohort had far smoother ride than the first cohort did.** + +### Quality of Module Content + +**I'm overall satisfied with the actual material, especially with the level 5 modules.** You see, the modules are divided between [level 4 (introductory), level 5 (intermediate), and level 6 (specialised)](https://www.gov.uk/what-different-qualification-levels-mean/list-of-qualification-levels) -- and for the first term especially, I felt that the level 4 modules were a mixed bag. + +I took Introduction to Web Development, Intro to Programming, and Numerical Mathematics that year. And the quality and difficulty of the material felt a bit inconsistent. + +#### Example 1: Intro to Programming + +Intro to Programming was really well done. It was a project-based module where we had to create our own video game by the end of the term, and the lecturers were engaged, the assignments challenging but fair, and overall I liked it. + +#### Example 2: Web Development + +But the Web Development class felt much too simple at times, and I didn't feel like I learned a lot from the lectures. I'm probably a bit biased, as I have significant prior knowledge in web development, but a lot of it felt superficial or too easy. Some of my other classmates enjoyed it though, especially those without a background in web development. + +#### Example 3: Numerical Mathematics + +In contrast, Numerical Mathematics as **very, very hard**. Over the span of 20 weeks, I wrote four or five different math papers, on some very difficult topics. [One of our first papers was a implementation of the RSA cryptosystem](https://i.imgur.com/lBYzQoM.png), followed by a discussion and cryptoanalysis (cracking) of said cipher. I have a math background, and _technically_ the papers were optional -- but it took a lot of work, and a lot of stress. We covered _a lot_ of content, and towards the end it felt like an intellectual death-march. + +I think what happened with the level 4 modules was that our professors didn't really know what to expect from an online course, and they tried to hit the balance in terms of material/difficulty, and they missed the mark on both sides. + +There were lots of changes announced after the feedback from the first term, and they actually redesigned the entire Numerical Mathematics class this year. + +Now, since I'm on the third term now - I am beginning the Level 5 modules. And **I'm very satisfied with the level 5 courses.** They seem to be a huge step up in terms of polish, as well as the depth of the content, and I think things have improved greatly from before. + +## What's the 'creative' aspect of this degree? How are the project-based assignments like? + +Oh! This is my favorite part about this degree specifically. **The entire degree has a strong project-based focus, where you make something at the end of most modules** This was one of the reasons I applied for this program, because I felt like a lot of computer science degrees are too theory-focused, with little emphasis on using the skills you learn to actually create something. + +These creative projects are not graded very strongly, in the sense you could technically do the absolute minimum, and still "pass". But a lot of my classmates take this opportunity to really learn and apply skills on their own, and I feel like you end up learning way more in the process of making these projects. + +For example, in our Intro. to Programming Class, we are tasked to make a 2D side scroller. Some people made the bare-minimum effort, but you also had a lot of creativity and talent. Here's a showcase of some of my classmate's efforts: + +- [Pixel Art Red Potato Man Game](https://i.imgur.com/Y3pEnBH.png) +- [Pastel Panda Game](https://imgur.com/8U3jg0x) +- [Japanese Forest Platformer](https://imgur.com/BEIcomN) + +All of that cool pixel art, the animations, are technically not required for the grade. But the fact that my classmates did it anyways, is a beautiful demonstration of how _learning is driven from within_. + +## What's the student community like? Where do you go if you need help? + +People go to college not just for the lessons, but also for friendship, camaraderie, and networking opportunities. I was really worried at first that I won't be able to connect with anyone, and that I'll be studying all alone. But nothing could be farther from the truth. + +**There is a large, diverse, and vibrant student community on Slack -- filled with volunteers and helpful mentors**. + +Every week, there are [virtual study sessions held over video-chat](https://i.imgur.com/I46h5k7.png), and during the weekends there are hangout sessions and gaming nights. A fellow student held an University of London [**indie game jam**](https://i.imgur.com/QCcQJy7.png), with dozens of entries. There's such a **close-knit sense of community** on Slack, that I'm amazed every day by the sort of things my classmates are up to. + +There's never a moment where I felt stuck on my own, because [even the hardest questions or obscurest were tackled collectively and with friendship](https://i.imgur.com/SVRRt4H.png). Many video calls were had, many spreadsheets and websites made. If you ask a question on the Slack, you're pretty much guaranteed to have someone reply within 10 minutes, willing to help you to understand. + +I'm so honored to be with such a diverse and wonderful community, and I think a great deal of value from this degree -- is to have met these people. Out of my classmates **I've met Artists, Web Developers, Mathematicians, Businesspeople, Stockbrokers, Linux Kernel Hackers, and everyone in between.** + +This degree is unlike any other, for all the classmates you have are people who _willfully choose to be there_. You all share this feeling of purpose, which makes it feel more than just a class. + +Out of all the issues we've had, the bugs, the frustrations, the late-night stress and sadness -- we all overcame it together, and my life has been made richer as a result. + +## Wow! Would you recommend this degree to someone? + +I'd say... yes -- but with certain caveats. This programme is unique, and one of it's kind -- and if you decide to join, **do expect there to be bugs and issues.** For better or worse, you'll be a trendsetter in the vanguard of a new paradigm in education. Likewise, it takes a _certain kind of person_ to be successful at this degree. + +You'll need to be willfully independent, and capable of setting your own pace. You'll need to learn for your own love of learning, rather than just for a grade. It can be so easy to just do the _bare minimum_, and not learn anything for it. But if you are the sort of person to go the extra mile, to add features to your projects even though they are optional -- to make things not because they are easy, but because they are hard -- than I think you'll be a good candidate for the class :) + +It doesn't matter what your background in computing is, or whether or not you know how to code. As long as you have the spirit, you'll find a community of fellow souls who will be there every step of the way. :) + +--- + +Interested? Feel free to ask me any questions in this thread. AMA! :) + +**Also, check out the new /r/UniversityOfLondonCS subreddit**, that we created. Feel free to ask any questions there as well! + +--- + +## Resources and Further Reading + +### General Information + +- [University of London Degree Page:](https://london.ac.uk/courses/computer-science) + This has much more information on it than the Coursera Homepage. This is the starting point I'd suggest prospective students to begin their research. +- [Coursera Homepage:](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/) This is the regular degree homepage on Coursera. It has a nice FAQ, but I'd recommend going to University of London's official Degree Page for specific information. +- [Prospectus Brochure (PDF:)](https://london.ac.uk/sites/default/files/prospectuses/computer-science-prospectus-2020.pdf): Essentially an admissions 'brochure' with a nice summary of the details, and nice graphics. Good for a light overview. + +### Detailed Information + +- [Course Structure with List of Classes:](https://london.ac.uk/computer-science-structure) This is the official Course Structure, with information on all the individual semester-long classes, which compose the degree. +- [Programme Specification (PDF):](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf) This is the 'Bible' of the degree -- here are all the detailed rules and administrative guides. If you have detailed, specific questions about grade boundaries, retaking exams, et cetera -- this is where to look. + +### Unofficial Resources + +- /r/UniversityOfLondonCS - The Official Unofficial Subreddit! Most of the community is on the Official Student-only Slack, but feel free to ask us any questions here! +- [REPL - The Unofficial Student-Run Website:](https://world-class.github.io/REPL/) This is the 'Student Bible'. It's made by the students of the course, and has a lot of tips and tricks for insiders, as well as lists of resources, and shared notes. For a inside view of how it's like being a student, check this out! +- [Class Notes Repository:](https://github.com/world-class/REPL/tree/master/notes) A collection of student-contributed lecture notes. It's a good way to have a peak at how the day-to-day classes are like in terms of academics. +- [Featured Student: Combining Two Degrees: a Story of Plato and Programming:](https://london.ac.uk/news-and-opinion/student-blog/combining-two-degrees-a-story-plato-and-programming) The University of London blog showcased a founding-year student. It talks a bit about the sort of students that are enrolled. diff --git a/uol_links/README.md b/uol_links/README.md new file mode 100644 index 00000000..676e78c7 --- /dev/null +++ b/uol_links/README.md @@ -0,0 +1,88 @@ +[Go back to the main page](../README.md) + +# University of London Links + +- [University of London Links](#university-of-london-links) + - [Documents](#documents) + - [Webpages of interest](#webpages-of-interest) + - [Information on UoL's BSc Computer Science](#information-on-uols-bsc-computer-science) + - [About the University of London](#about-the-university-of-london) + - [Recognition of Prior Learning](#recognition-of-prior-learning) + - [Login Portals for Currently Enrolled Students](#login-portals-for-currently-enrolled-students) + - [Exams](#exams) + - [Funding and costs](#funding-and-costs) + - [Specialisms](#specialisms) + +## Documents + +- [Code of conduct](https://london.ac.uk/about-us/how-university-run/policies/vle-code-conduct) +- [Data protection policy](https://github.com/world-class/binary-assets/blob/master/uol_documents/data_protection_policy.pdf) +- [Events Due Diligence Privacy Notice](https://github.com/world-class/binary-assets/blob/master/uol_documents/events_due_diligence_privacy_notice.pdf) +- [GDPR Rights guide - students](https://github.com/world-class/binary-assets/blob/master/uol_documents/gdpr_rights_guide_students.pdf) +- [General Regulations 2019-2020](https://github.com/world-class/binary-assets/blob/master/uol_documents/progregs-general-2019-2020.pdf) +- [Guidelines for Examinations 2019–2020](https://github.com/world-class/binary-assets/blob/master/uol_documents/guidelines-for-examinations-2019-2020.pdf) +- [Online Library - Quick Start Guide](https://github.com/world-class/binary-assets/blob/master/uol_documents/online_library_academic_search_quick_start.pdf) +- [Programme Regulations 2020–2021](https://github.com/world-class/binary-assets/blob/master/uol_documents/progregs-computer-science-2020-2021.pdf) +- [Programme specification, Computer Science 2020-2021](https://github.com/world-class/binary-assets/blob/master/uol_documents/progspec-computer-science-2020-2021.pdf) +- [Prospectus, Computer Science 2020](https://github.com/world-class/binary-assets/blob/master/uol_documents/computer-science-prospectus-2020.pdf) +- [Student privacy notice](https://github.com/world-class/binary-assets/blob/master/uol_documents/student_privacy_notice_uol_april_2018_final.pdf) +- [Student Terms and Conditions 2019-2020](https://github.com/world-class/binary-assets/blob/master/uol_documents/student_terms_and_conditions.pdf) +- [Welcome webinar Q&A, September 24, 2019](https://github.com/world-class/binary-assets/blob/master/uol_documents/welcome_webinar_questions_and_answers_september_24_2019.pdf) + +## Webpages of interest + +### Information on UoL's BSc Computer Science + +- [BSc Computer Science Coursera Webpage](https://www.coursera.org/degrees/bachelor-of-science-computer-science-london/) – _Coursera's webpage for the University of London's BSc Computer Science programme. Contains links to the application portal._ +- [BSc Computer Science Programme Homepage](https://london.ac.uk/courses/computer-science) – _University of London's main programme homepage for the BSc Computer Science. Contains more information than the Coursera webpage._ +- [BSc Computer Science Prospectus (2020)](https://london.ac.uk/sites/default/files/prospectuses/computer-science-prospectus-2020.pdf) – _Admissions prospectus for interested students. A polished, informative summary of the Programme._ +- [Programme Regulations (2020-2021)](https://london.ac.uk/sites/default/files/regulations/progregs-computer-science-2020-21.pdf) – _The 'Bible' of the BSc Computer Science degree. If you will only read one document, read this one. Contains almost every detail about specific workings and regulations._ +- [Programme Specification (2020-2021)](https://london.ac.uk/sites/default/files/programme-specifications/progspec-computer-science-2020-21.pdf) – _A broad outline and overview of the structure and content of the degree, entry level qualifications, and learning outcomes._ +- [Structure & Module Descriptions](https://london.ac.uk/computer-science-structure) – _A high-level summary of the 22 modules and Final Project which makes up the Programme, seperated by Levels._ + +### About the University of London + +Links :link: and PDFs :page_facing_up: about the University of London in general, as well as resources for students. + +- [General Regulations](https://london.ac.uk/sites/default/files/regulations/progregs-general-2020-2021.pdf) – _Handbook of rules and regulations governing the University of London If you will only read one document from this section, read this one. Contains almost every detail about specific workings and systems of the University of London._ +- [Student Terms and Conditions](https://london.ac.uk/sites/default/files/governance/student-terms-and-conditions.pdf) – _Important legal contract which covers the consumer rights and legal protections for enrolled students. Includes information on refunds._ +- [Student's Guide](https://my.london.ac.uk/documents/10197/2676152/Student+Guide/07f72f0b-fd7d-cc23-603f-db6c31bfa5e2) – _Guide for current students of the University of London. Includes information like how to get funding, online libraries, and support networks_ +- [University of London Prospectus (2020)](https://london.ac.uk/sites/default/files/prospectuses/GIP-2020.pdf) – _Admissions prospectus about the University of London in general. A polished, informative summary for the prospective student._ +- [University of London Website](https://london.ac.uk/) – _The official website and portal of the University of London._ +- [List of Exam Centres (Worldwide)](https://my.london.ac.uk/documents/10197/2926462/examcentres-worldwide2/659d044f-25c3-2a01-fd7e-0667e3d9e71a) +- [List of Exam Centres (USA and Canda)](https://my.london.ac.uk/documents/10197/2926462/examcentres-northamerica.pdf/da80d4a8-00db-053c-283a-0757f88b5e85) +- [Table of Country Bands (for Tuition)](https://london.ac.uk/sites/default/files/leaflets/country-bands.pdf) – _Tuition for the University of London is dependant on your 'Country Band'. Band A countries pay £400 GBP per module, while Band B countries pay £600 GBP per module._ + +### Recognition of Prior Learning + +- [About Recognitions of Prior Learning](https://london.ac.uk/applications/how-apply/recognition-prior-learning) – _General information on Recognition of Prior learning at the University of London_ +- [Applying for RPLs & Automatic RPLs](https://london.ac.uk/applications/how-apply/recognition-prior-learning/recognition-and-accreditation-prior-learning-3) – _Specific information on applying for a RPL for the BSc Computer Science programme, and list of Automatic RPLs_ + +### Login Portals for Currently Enrolled Students + +Links to various login portals for currently enrolled students. Valid account credentials at the University of London is required for access. + +- [University of London Student Portal](https://my.london.ac.uk/) +- [Virtual Learning Environment (Coursera)](https://www.coursera.org/?authMode=login&authProvider=london) +- [University of London Student Email](http://mail.google.com/a/student.london.ac.uk) +- [Online Library and Databases](http://onlinelibrary.london.ac.uk/) +- [Student Slack Workspace](https://londoncs.slack.com/) + +### Exams + +- [Examinations](https://london.ac.uk/current-students/examinations) +- [How assessment works](https://london.ac.uk/applications/how-it-works/how-assessment-works) + +### Funding and costs + +- [Funding your study](https://london.ac.uk/applications/funding-your-study) + +### Specialisms + +- [Data Science](https://london.ac.uk/courses/computer-science-data-science) +- [Games Development](https://london.ac.uk/courses/computer-science-games) +- [Machine Learning and Artificial Intelligence](https://london.ac.uk/courses/computer-science-machine-learning-and-ai) +- [Physical Computing and the Internet of things](https://london.ac.uk/courses/bsc-computer-science-physical-computing) +- [User Experience](https://london.ac.uk/courses/computer-science-user-experience) +- [Virtual Reality](https://london.ac.uk/courses/computer-science-virtual-reality) +- [Web and Mobile Development](https://london.ac.uk/courses/computer-science-web-and-mobile-development) diff --git a/websites/README.md b/websites/README.md new file mode 100644 index 00000000..1d0a28ca --- /dev/null +++ b/websites/README.md @@ -0,0 +1,590 @@ +[Go back to the main page](../README.md) + +# Websites + +- [Websites](#websites) +- [Awesome lists about all kinds of interesting topics](#awesome-lists-about-all-kinds-of-interesting-topics) +- [Artificial intelligence](#artificial-intelligence) + - [Machine learning](#machine-learning) +- [Career](#career) + - [Advice](#advice) + - [Resume building](#resume-building) +- [Computer science](#computer-science) + - [Algorithms](#algorithms) + - [Visualizations](#visualizations) + - [Articles](#articles) + - [Computational complexity](#computational-complexity) + - [Courses and videos](#courses-and-videos) + - [Free (e)books](#free-ebooks) +- [Data science](#data-science) + - [Jupyter](#jupyter) + - [Pandas](#pandas) + - [Working with data (Pandas, NumPy, Matplotlib, IPython, Scikit-Learn...)](#working-with-data-pandas-numpy-matplotlib-ipython-scikit-learn) +- [Free e-books and video courses](#free-e-books-and-video-courses) +- [Hacking](#hacking) +- [LaTeX](#latex) +- [Linux & Unix](#linux--unix) +- [Mathematics](#mathematics) + - [Beginner topics](#beginner-topics) + - [Calculus](#calculus) + - [Derivatives](#derivatives) + - [Discrete mathematics](#discrete-mathematics) + - [Algorithms](#algorithms-1) + - [Hopcroft-Karp](#hopcroft-karp) + - [Binomial theorem](#binomial-theorem) + - [Graph theory](#graph-theory) + - [Rules of inference - logic proofs](#rules-of-inference---logic-proofs) + - [Encryption](#encryption) + - [Limits](#limits) + - [Linear Algebra](#linear-algebra) + - [Machine learning](#machine-learning-1) + - [Modular arithmetic](#modular-arithmetic) + - [Number bases](#number-bases) + - [Online tools](#online-tools) + - [Statistics](#statistics) + - [Trigonometry](#trigonometry) +- [Music (ideal for programming)](#music-ideal-for-programming) +- [Online services](#online-services) + - [Clean your inbox](#clean-your-inbox) + - [Diff checker (compare different files)](#diff-checker-compare-different-files) + - [Disposable/temporary emails](#disposabletemporary-emails) + - [File sharing & storage](#file-sharing--storage) + - [Gantt charts](#gantt-charts) + - [Image hosting](#image-hosting) + - [Manage your privacy](#manage-your-privacy) + - [Receive SMS](#receive-sms) +- [Open source](#open-source) +- [Programming](#programming) + - [App monitoring](#app-monitoring) + - [Basics](#basics) + - [Books](#books) + - [Coding challenges](#coding-challenges) + - [Documentation](#documentation) + - [Interview preparation](#interview-preparation) + - [Books](#books-1) + - [Facebook](#facebook) + - [Google](#google) + - [Microsoft](#microsoft) + - [Games](#games) + - [CSS](#css) + - [JavaScript](#javascript) + - [Projects and ideas](#projects-and-ideas) + - [Python](#python) + - [Security](#security) + - [Service workers](#service-workers) + - [Git / GitHub](#git--github) + - [iOS](#ios) + - [Swift](#swift) + - [Java](#java) + - [JavaScript](#javascript-1) + - [Julia](#julia) + - [Kotlin](#kotlin) + - [Markdown](#markdown) + - [Python](#python-1) + - [Hosting](#hosting) + - [Questions and answers](#questions-and-answers) + - [Regular expressions (regex)](#regular-expressions-regex) + - [SQL](#sql) + - [TypeScript](#typescript) +- [Startups](#startups) +- [Technology](#technology) +- [Terminal / Command-line interface](#terminal--command-line-interface) +- [Typing faster](#typing-faster) +- [Variety](#variety) +- [Web](#web) + - [Buying a domain name](#buying-a-domain-name) + - [Cloud Computing](#cloud-computing) + - [Information on websites](#information-on-websites) + - [Website annotation](#website-annotation) + - [Website testing](#website-testing) +- [Web development](#web-development) + - [Learning](#learning) + - [Tools](#tools) + +# [Awesome lists about all kinds of interesting topics](https://github.com/sindresorhus/awesome#readme) + +- Ideal starting point. :sunglasses: + +# Artificial intelligence + +## Machine learning + +- [ML Cheatsheet](https://ml-cheatsheet.readthedocs.io/en/latest/calculus.html) - _"Brief visual explanations of machine learning concepts with diagrams, code examples and links to resources for learning more."_ +- [Machine Learning Crash Course with TensorFlow APIs](https://developers.google.com/machine-learning/crash-course) - Google. - _"Google's fast-paced, practical introduction to machine learning."_ +- [Machine Learning: 2014-2015](https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning) - University of Oxford + +# Career + +## Advice + +- [TopResume](https://www.topresume.com/career-advice). _"Job-search tips and expert advice to help you get ahead in your career."_ + +## Resume building + +- [Kickresume](https://www.kickresume.com) - _" We help students take first steps towards a successful career. Kickresume Premium is now free for all students. Verify your student status with ISIC, ITIC or EURO>26."_ + +# Computer science + +- [Computer Science 162, 001 - Fall 2013](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iDrt_oPWfQ4-fjHm2KSSOPq) - UC Berkeley +- [Computer Science 188, 001 - Spring 2015](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iA4YSaTMfF_K_wvrKAY2H8u) - UC Berkeley +- [Computer Science 194, 024 - Spring 2013](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iB_5Q8G8kW5idSwNmXypmQE) - UC Berkeley +- [Computer Science 61B, 001 - Fall 2014](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iDVox3OKFhF4LxMHqpi2GS2) - UC Berkeley +- [Four Semesters of Computer Science in Six Hours (part 2)](https://btholt.github.io/four-semesters-of-cs-part-two/) - Brian Holt. +- [Four Semesters of Computer Science in Six Hours](https://btholt.github.io/four-semesters-of-cs/) - Brian Holt. +- [Open Source Society University](https://github.com/ossu/computer-science) - _"The OSSU curriculum is a complete education in computer science using online materials."_ +- [Teach Yourself Computer Science](https://teachyourselfcs.com) - _"Study all nine subjects below, in roughly the presented order, using either the suggested textbook or video lecture series, but ideally both. Aim for 100-200 hours of study of each topic, then revisit favorites throughout your career."_ +- [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) - _"Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools."_ +- [Understanding Computers and the Internet](http://computerscience1.tv/2011/spring) - Harvard Extension School. About hardware, Internet, multimedia, security, website development, programming. + +## Algorithms + +- [Algorithms in the "Real World" (2018)](http://www.cs.cmu.edu/~guyb/realworld.html) - Compression, error correcting codes, cryptography, parallel algorithms, locality and I/O efficient algorithms, indexing and searching, nearest neighbors, dimensionality reduction. +- [Comparison of Algorithms](https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms) - See time complexity at a glance for various popular algorithms. +- [Dictionary of Algorithms and Data Structures](https://xlinux.nist.gov/dads) - _"This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions."_ +- [Introduction to algorithms](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/) ([problem sets](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/assignments/)) - MIT OpenCourseWare. +- [Khan Academy - Algorithms](https://www.khanacademy.org/computing/computer-science/algorithms/) - _"We've partnered with Dartmouth college professors Tom Cormen and Devin Balkcom to teach introductory computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, quizzes, and coding challenges."_ +- [Skiena's Algorithms Lectures](https://www3.cs.stonybrook.edu/~algorith/video-lectures/) + +### Visualizations + +- [HackerEarth](https://www.hackerearth.com/practice/algorithms/sorting/bubble-sort/visualize/) - Visualize sorting algorithms, step by step. +- [VisuAlgo](https://visualgo.net/en) - Visualising data structures and algorithms through animation. + +## Articles + +- [Famous Laws Of Software Development](https://www.timsommer.be/famous-laws-of-software-development/) +- [What every computer science major should know](http://matt.might.net/articles/what-cs-majors-should-know/) + +## Computational complexity + +- [Big-O Cheat Sheet](https://www.bigocheatsheet.com/) - bigocheatsheet.com + +## Courses and videos + +- [List of Computer Science courses with video lectures](https://github.com/Developer-Y/cs-video-courses) + +## Free (e)books + +- [IT eBooks](http://it-ebooks.info/) +- [Structure and Interpretation of Computer Programs (SICP)](https://mitpress.mit.edu/sites/default/files/sicp/index.html), by Harold Abelson, Gerald Jay Sussman and Julie Sussman. _"Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License by the MIT Press."_ + +# Data science + +## Jupyter + +- [Jupyter Notebook for Beginners: A Tutorial](https://www.dataquest.io/blog/jupyter-notebook-tutorial/) +- [Six easy ways to run your Jupyter Notebook in the cloud](https://www.dataschool.io/cloud-services-for-jupyter-notebook/) +- [Tutorial: Advanced Jupyter Notebooks](https://www.dataquest.io/blog/advanced-jupyter-notebooks-tutorial/) + +## Pandas + +- [Modern Pandas](https://tomaugspurger.github.io/modern-1-intro) - _"This series is about how to make effective use of pandas, a data analysis library for the Python programming language. It's targeted at an intermediate level: people who have some experience with pandas, but are looking to improve."_ +- [Official website](https://pandas.pydata.org) - _"pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language."_ + +## Working with data (Pandas, NumPy, Matplotlib, IPython, Scikit-Learn...) + +- [Kaggle: Micro-Courses](https://www.kaggle.com/learn/overview) - _"Practical data skills you can apply immediately: that's what you'll learn in these free micro-courses. They're the fastest (and most fun) way to become a data scientist or improve your current skills."_ +- [Python Data Science Handbook: full text in Jupyter Notebooks](https://github.com/jakevdp/PythonDataScienceHandbook) - _"This repository contains the entire Python Data Science Handbook, in the form of (free!) Jupyter notebooks."_ + +# Free e-books and video courses + +- [Packt Publishing – free programming ebooks and videos](https://www.packtpub.com/packt/offers/free-learning) - Daily offer of up-to-date, quality material. + +# Hacking + +- :star: [Awesome Hacking](https://github.com/Hack-with-Github/Awesome-Hacking) - _"A collection of awesome lists for hackers, pentesters & security researchers."_ +- [Hacksplaining](https://www.hacksplaining.com/) - _"Hacksplaining: Learn to hack."_ +- [Hacker Tools](https://hacker-tools.github.io) - _"Learn to make the most of the tools that hackers have been using for decades."_ + +# LaTeX + +- [Overleaf](https://www.overleaf.com) - _"The easy to use, online, collaborative LaTeX editor."_ +- [Templates](http://www.latextemplates.com) - _"The best source of free quality LaTeX templates."_ +- [Wikibook](https://en.wikibooks.org/wiki/LaTeX) - _"This is a guide to the LaTeX typesetting system. It is intended as a useful resource for everybody, from new users who wish to learn, to old hands who need a quick reference."_ +- [Mathpix Snip](https://mathpix.com) - _"Do you spend a lot of time typing equations in LaTeX? Try Mathpix Snip for iOS, Android, macOS, Windows or Linux and start converting images to LaTeX instantly!"_ + +# Linux & Unix + +- [CIS 191: Linux and Unix - University of Pennsylvania](https://www.cis.upenn.edu/~cis191/index.html) - _"This half-credit course provides a thorough introduction to Unix and Linux. Topics will range from critical basic skills such as examining and editing files, compiling programs and writing shell scripts, to higher level topics such as the architecture of Unix and its programming model."_ +- [Distrowatch](https://distrowatch.com) - _"DistroWatch is a website which provides news, distribution pages hit rankings, and other general information about various Linux distributions as well as other free software/open source Unix-like operating systems."_ ([from Wikipedia](https://en.wikipedia.org/wiki/DistroWatch)) +- [Linux.com - What is Linux?](https://www.linux.com/what-is-linux/) - _"Here is all the information you need to get up to speed on the Linux platform."_ + +# Mathematics + +- [Mathematics 16A, 002 - Fall 2013](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCCCqDD9uTufr5I3Xtr3szk) - UC Berkeley + +## Beginner topics + +- [Khan Academy](https://www.khanacademy.org) - Brush up on arithmetic, algebra, geometry, trigonometry, statistics & probability, calculus, differential equations, linear algebra, functions. + +## Calculus + +- [Calculus III](http://tutorial.math.lamar.edu/Classes/CalcIII/CalcIII.aspx) - _Here are my online notes for my Calculus III course that I teach here at Lamar University. Despite the fact that these are my “class notes”, they should be accessible to anyone wanting to learn Calculus III or needing a refresher in some of the topics from the class._ +- [Calculus for beginners, from MIT](http://www-math.mit.edu/~djk/calculus_beginners) - _"Calculus for Beginners and Artists"_ +- [Calculus problem set](https://www.math.ucdavis.edu/~kouba/ProblemsList.html) + +### Derivatives + +- [Derivative Calculator](https://www.derivative-calculator.net) - _"Calculate derivatives online — with steps and graphing!"_ +- [Introduction to differentiation on ExamSolutions](https://www.examsolutions.net/a-level-maths/ocr/c1-tutorials/#Different) - Gradient, second derivative, tangents, normals, stationary points, increasing and decreasing functions. +- [Introduction to differentiation II on ExamSolutions](https://www.examsolutions.net/a-level-maths/ocr/c3-tutorials/#diff) - Exponential functions, chain rule, product rule, quotient rule, reciprocal function, exam questions, connected rates of change. + +## Discrete mathematics + +- [Readings from MIT OpenCourseWare](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/) on proofs, graph theory, recurrences, probability. + +### Algorithms + +#### Hopcroft-Karp + +- [Bipartite Matching](https://www-m9.ma.tum.de/graph-algorithms/matchings-hopcroft-karp/index_en.html) - Interactive: _"Here we demonstrate the Hopcroft-Karp algorithm that solves the problem of finding maximal matchings on bipartite graphs."_ + +### Binomial theorem + +- [Intro to the Binomial Theorem](https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:polynomials/x9e81a4f98389efdf:binomial/v/binomial-theorem) - Khan Academy + +### Graph theory + +- [D3 Graph Theory](https://d3gt.com) - _"Learn graph theory interactively."_ +- [Matching (Graph Theory)](https://brilliant.org/wiki/matching) - _"Definition, terminology, bipartite matching, examples."_ + +### Rules of inference - logic proofs + +- [Rules of Inference and Logic Proofs](http://sites.millersville.edu/bikenaga/math-proof/rules-of-inference/rules-of-inference.html) - Covers modus ponens, modus tollens, disjunctive syllogism, De Morgan's law, biconditional, conjunctions, disjunctions, equivalences, double negation. + +## Encryption + +- [Part 1: How RSA Works With Examples](http://doctrina.org/How-RSA-Works-With-Examples.html) - Barry Steyn +- [Part 2: Why RSA Works: Three Fundamental Questions Answered](http://doctrina.org/Why-RSA-Works-Three-Fundamental-Questions-Answered.html) - Barry Steyn + +## Limits + +- [Limits and continuity](https://www.khanacademy.org/math/differential-calculus/dc-limits) - Khan Academy + +## Linear Algebra + +- [Applied Linear Algebra 1](https://open.math.uwaterloo.ca/4?gid=314) - University of Waterloo (Canada) +- [Interactive Linear Algebra](https://textbooks.math.gatech.edu/ila) - _"This is an introductory textbook on linear algebra, written by Joe Rabinoff and Dan Margalit for Math 1553 at Georgia Tech."_ +- [Matrix multiplication](http://matrixmultiplication.xyz) - Online tool to perform matrix calculations. +- Problem sets + - [PDF][exercises and problems in linear algebra, portland state university](https://web.pdx.edu/~erdman/LINALG/Linalg_pdf.pdf), Version July 13, 2014 + +## Machine learning + +- [Mathematics for Machine Learning](https://mml-book.github.io) - _"We wrote a book on Mathematics for Machine Learning that motivates people to learn mathematical concepts. The book is not intended to cover advanced machine learning techniques because there are already plenty of books doing this. Instead, we aim to provide the necessary mathematical skills to read those other books."_ + +## Modular arithmetic + +- [Modular arithmetic](https://modular-arithmetic.appspot.com/#modularArithmetic) - Clear, simple explanations: _"Numbers in a given modulo "wrap around". They reach a certain value, and then continue from the beginning up to that value. Then, begin again. [...]"_ + +## Number bases + +- [Multiplication in base five](https://www.basic-mathematics.com/multiplication-in-base-five.html) + +## Online tools + +- [Desmos](https://www.desmos.com) - _"Graph functions, plot data, evaluate equations, explore transformations, and much more – for free!"_ +- [Symbolab](https://www.symbolab.com) - _"Symbolab: equation search and math solver - solves algebra, trigonometry and calculus problems step by step."_ **(:heavy_dollar_sign: requires subscription for all features)** +- [Wolfram Alpha](https://www.wolframalpha.com) - _"Wolfram Alpha is a computational knowledge engine or answer engine."_ **(:heavy_dollar_sign: requires subscription for all features)** + +## Statistics + +- [Statistics 20, 003 - Fall 2010](https://archive.org/details/ucberkeley-webcast-PLFCCED623A3AB020F) - UC Berkeley + +## Trigonometry + +- [How To Learn Trigonometry Intuitively](https://betterexplained.com/articles/intuitive-trigonometry) - Better Explained +- [The trigonometry of non-right triangles](http://www.xaktly.com/XMathMain.html) - + Angle measurement, trigonometry basics, non-right triangle trig, inverse trig functions, analytic trigonometry, trigonometric equations video, polar coordinates, complex plane, rock climbing, conic sections. + +# Music (ideal for programming) + +- [Brainaural](https://brainaural.com) - _"What Are Brainwaves? Does Entrainement Work? Find out for yourself! Now with free audio file download."_ +- [Music For Programming](http://musicforprogramming.net) - Play programming music right from your web browser in an IDE-like interface. +- [Rainy Mood](https://rainymood.com) (noise generator) - _"Helps you to focus, relax, and sleep. [...] The internet's most popular rain experience."_ + +# Online services + +## Clean your inbox + +- [Unroll.me](https://unroll.me) - _"Instantly see a list of all your subscription emails. Unsubscribe easily from whatever you don't want."_ + +## Diff checker (compare different files) + +- [Diffchecker](https://www.diffchecker.com) - _"Diffchecker is a diff tool to compare text differences between two text files."_ Works with images/PDF too and even through the terminal with Node.js. + +## Disposable/temporary emails + +_"Disposable email addressing, also known as DEA or dark mail, refers to an approach where a unique email address is used for every contact or entity. The benefit is that if anyone compromises the address or utilises it in connection with email abuse, the address owner can easily cancel (or "dispose" of) it without affecting any of their other contacts."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Disposable_email_address)) + +- [10 Minute Mail](https://10minutemail.net) - _"10minutemail.net is a free, disposable e-mail service. Your temporary e-mail address will expire after 10 minutes, after which you cannot access it. You can extend the time by 10 minutes."_ +- [Spamgourmet](https://www.spamgourmet.com) - Customize disposable emails on the fly. +- [Temp Mail Address](https://www.tempmailaddress.com) - Get an email assigned live that will expire according to your needs. +- [Temp Mail](https://temp-mail.org) - Automatically get assigned a temporary account where you can see in real time your emails coming in. +- [ThrowAwayMail](https://www.throwawaymail.com) - Obtain a temporary email that's valid for 48 hours. + +## File sharing & storage + +- [Box](https://www.box.com) - **10GB Free (250MB file size limit)**. _"Box, Inc., based in Redwood City, California, is a cloud content management and file sharing service for businesses. Official clients and apps are available for Windows, macOS, and several mobile platforms."_ ([from Wikipedia]()) +- [Dropbox](https://www.dropbox.com) - **2GB Free**. _"Dropbox is a file hosting service operated by the American company Dropbox, Inc., headquartered in San Francisco, California, that offers cloud storage, file synchronization, personal cloud, and client software."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Dropbox_%28service%29)) +- [Firefox Send](https://send.firefox.com) - Send up to **2.5GB** files when signing up or **1GB privately**, without signing in. Decide for how long to store your files online, who can download them and how many times. +- [Google Drive](https://www.google.com/drive) - **15GB Free**. _"Google Drive is a file storage and synchronization service developed by Google. [...] Google Drive allows users to store files on their servers, synchronize files across devices, and share files."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Google_Drive)) +- [Hightail](https://www.hightail.com) - **2GB Free (100MB file size limit), 7 days file expiration**. _"Hightail, formerly YouSendIt, is a cloud service that lets users send, receive, digitally sign and synchronize files."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Hightail)) +- [pCloud](https://www.pcloud.com) - **10GB Free**. _"pCloud is the secure cloud storage, where you can store, share and work on all your files. You can access them on any device, anywhere you go!"_ +- [Sync](https://www.sync.com) - **5 GB of secure file storage with basic sharing features**. 2048-bit RSA, SSL/TLS encryption, end-to-end encryption, 30 days version history, restore & rewind, password protected sharing, remote device lockout. +- [WeTransfer](https://wetransfer.com) - Free: Send up to **2GB** with **7 days** file expiration. + +## Gantt charts + +- [Teamgantt](https://teamgantt.com) - _"TeamGantt is the refreshing solution that brings project scheduling software online. You can now plan and manage your projects with this super-easy-to-use gantt software. Inviting your co-workers, teammates, and friends to view and edit your gantt chart is simple and fun."_ + +## Image hosting + +- [500px](https://web.500px.com) - Primarily used to showcase photography. +- [Flickr](https://www.flickr.com) - _"Flickr is an image hosting service and video hosting service. It was created by Ludicorp in 2004."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Flickr)) +- [Free Image Hosting.net](http://www.freeimagehosting.net) - No sign up required. +- [Google Photos](https://photos.google.com) (storage included with Google Drive, **15GB for free**) - _"Google Photos is a photo sharing and storage service developed by Google."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Google_Photos)) +- [ImageShack](https://imageshack.us/)- _"Unlimited space to host images, easy to use image uploader, albums, photo hosting, sharing, dynamic image resizing on web and mobile."_ +- [Imgbox](https://imgbox.com) - _"Hotlinking, super blazing fast, 10MB maximum file size, simple interface, unlimited storage space, unlimited storage time."_ +- [Imgur](https://imgur.com) - _"Imgur is an online image sharing community and image host founded by Alan Schaaf in 2009."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Imgur)) +- [Postimage](https://postimages.org) - _"Provides free image upload and hosting integration for forums. Free picture hosting and photo sharing for websites and blogs."_ +- [TinyPic](http://tinypic.com) - No sign up required. _"TinyPic is a photo and video sharing service, owned and operated by Photobucket.com, that allows users to upload, link and share, images and videos on the Internet. The idea is similar to URL shortening in which each uploaded image is given a relatively short internet address."_ ([from Wikipedia](https://en.wikipedia.org/wiki/TinyPic)) + +## Manage your privacy + +- [Firefox Monitor](https://monitor.firefox.com) - _"See if you’ve been part of an online data breach. Find out what hackers already know about you. [...] If your information surfaces in a new data breach, we’ll send you an alert. [...] Get ongoing breach monitoring for multiple email addresses."_ + +## Receive SMS + +- [Receive SMS](https://receive-smss.com) - _"receive-smss.com is a free service for receiving SMS messages and voice mails online. There is no need to register. Just select your phone number from the list below. You can use it to receive messages from Facebook, Telegram, WeChat, VK, PayPal, AliPay and more."_ + +# Open source + +- [Open Source Guides](https://opensource.guide) - _"Open source software is made by people just like you. Learn how to launch and grow your project."_ + +# Programming + +## App monitoring + +- :heavy_dollar_sign: [Datadog](https://www.datadoghq.com) - _"Modern monitoring & analytics. See inside any stack, any app, at any scale, anywhere."_ +- :heavy_dollar_sign: [Dynatrace](https://www.dynatrace.com/solutions/application-monitoring) - _"Dynatrace application monitoring provides all performance metrics in real time and detects and diagnoses problems automatically."_ +- [Uptime Robot](https://uptimerobot.com) - _"Downtime Happens. Get Notified! 50 Monitors, Checked Every 5 Minutes, Totally Free!"_ + +## Basics + +- [SoloLearn](https://www.sololearn.com) - _"Learn on the web and on the go. Available on all major devices and platforms. Always pick up where you left off. More simple and enjoyable than ever!"_ + +## Books + +[Programming Notes for Professionals books](https://books.goalkicker.com/) - Wide range of relevant topics (algorithms, C++, CSS, Git, HTML5, JavaScript, LaTeX, Linux, Python, SQL, etc.). _"Books are updated weekly."_ + +## Coding challenges + +- [Challenge Rocket](https://challengerocket.com) - _"Solve a challenge. Test your skills. Get hired."_ +- [Code Abbey](https://www.codeabbey.com) - Somewhat more beginner-oriented. _"We believe that three things lead to success: Practice, Practice and Practice!"_ +- [CodeSignal](https://codesignal.com) - _"CodeSignal (formerly CodeFights) is a skills-based assessment platform operated by American company BrainFights, Inc., whose mission is to discover, develop and promote technical talent. [...] CodeSignal applies game mechanics that offer developers of all skill levels online computer programming challenges for both instructional and recruiting purposes."_ ([from Wikipedia](https://en.wikipedia.org/wiki/CodeSignal)) +- [CodeWars](https://www.codewars.com) - _"Achieve mastery through challenge. Improve your skills by training with others on real code challenges."_ +- [Coderbyte](https://coderbyte.com) - _"Get access to the best collection of coding challenges that you can solve directly online in 10 programming languages. The challenges come with official solutions and tens of thousands of user solutions. You can also brush up on your skills by reading our tutorials in topics like advanced JavaScript features, data structures, and algorithm interview questions asked at companies like Google and Microsoft."_ +- [CodinGame](https://www.codingame.com) - _"The new way to improve your programming skills while having fun and getting noticed."_ +- [Exercism](https://exercism.io) - _"Level up your programming skills with 3,066 exercises across 51 languages, and insightful discussion with our dedicated team of welcoming mentors. Exercism is 100% free forever."_ +- [HackerEarth](https://www.hackerearth.com) - _"Explore 4 different programming tracks, solve over 2,000 coding problems, and crack your coding interview."_ +- [HackerRank](https://www.hackerrank.com) - _"Join over 7 million developers. Practice coding, prepare for interviews, and get hired."_ +- [LeetCode](https://leetcode.com) - _"LeetCode is the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews."_ +- [Project Euler](https://projecteuler.net) - _"Project Euler (named after Leonhard Euler) is a website dedicated to a series of computational problems intended to be solved with computer programs."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Project_Euler)) +- [Sphere Online Judge](https://www.spoj.com) - _"Become a true programming master. Learn how to code and build efficient algorithms."_ +- [Topcoder](https://www.topcoder.com) - _"Topcoder (formerly TopCoder) is a crowdsourcing company with an open global community of designers, developers, data scientists, and competitive programmers. Topcoder pays community members for their work on the projects and sells community services to corporate, mid-size, and small-business clients."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Topcoder)) + +## Documentation + +- [GitBook](https://www.gitbook.com) - _"Document Everything! For you, your users and your team. [...] A place to think and track ideas for you & your team. [...] A home for your team, best-practices and thoughts. [...] Beautiful docs for your APIs, Products, FAQs, User Guides, ..."_ +- [Sphinx](http://www.sphinx-doc.org) - _"Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license. It was originally created for the Python documentation, and it has excellent facilities for the documentation of software projects in a range of languages."_ + +## Interview preparation + +- [Interview Cake](https://www.interviewcake.com) - Check out their paid course/coaching too! - _"Free practice programming interview questions. Interview Cake helps you prep for interviews to land offers at companies like Google and Facebook."_ + +### Books + +- [Cracking the Coding Interview](http://www.crackingthecodinginterview.com), by Gayle Laakmann McDowell. + +### Facebook + +- [Interviewing at Facebook — On-Site JavaScript Technical Interview Questions](https://medium.com/javascript-in-plain-english/facebook-on-site-technical-interview-1264cacad263) - Medium, Adi S. + +### Google + +- [Interviewing at Google — JavaScript Assessment Questions](https://medium.com/javascript-in-plain-english/interviewing-at-google-javascript-assessment-questions-f9bf0c0df157) - Medium, Adi S. + +### Microsoft + +- [Interviewing at Microsoft— JavaScript Assessment Questions](https://medium.com/javascript-in-plain-english/microsoft-online-assessment-questions-js-f68ecdb6e927) - Medium, Adi S. + +## Games + +### CSS + +- [CSS Diner](https://flukeout.github.io) - _"It's a fun game to learn and practice CSS selectors."_ +- [Flexbox Froggy](http://flexboxfroggy.com) - _"A game for learning CSS flexbox."_ +- [Flexbox Zombies](https://flexboxzombies.com/p/flexbox-zombies) _"This is a Mastery Game. Each section unravels part of the plot, gives you mastery over a new flexbox concept, and presents zombie survival challenges that force you to solidify your new skills like your life depends on it."_ +- [Grid Critters](https://gridcritters.com) - _"Completely learn CSS Grid once and for all."_ +- [Grid Garden](https://codepip.com/games/grid-garden) - _"How well can you tend to your carrot garden using CSS grid? In this game, you must water your carrot crops and poison the weeds by mastering CSS grid, a powerful new module that makes 2-dimensional grid layouts a piece of cake. With it you can define columns, rows, and grid template areas."_ + +### JavaScript + +- [CheckiO](https://checkio.org) - _"Coding games for beginners and advanced programmers where you can improve your coding skills by solving engaging challenges and fun task using JavaScript."_ +- [Screeps](https://screeps.com) - _"It’s an open-source sandbox MMO RTS game for programmers, wherein the core mechanic is programming your units’ AI. You control your colony by writing JavaScript which operate 24/7 in the single persistent real-time world filled by other players on par with you."_ + +### Projects and ideas + +- [Build your own X](https://github.com/danistefanovic/build-your-own-x) - _"Build your own (insert technology here)"_ + +### Python + +- [CheckiO](https://checkio.org) - _"Coding games for beginners and advanced programmers where you can improve your coding skills by solving engaging challenges and fun task using Python."_ +- [TwilioQuest](https://www.twilio.com/quest) - _"Learn to code and lead your intrepid crew on a mission to save The Cloud in TwilioQuest, a PC role-playing game inspired by classics of the 16-bit era. Free forever, and available now for Windows, Mac, and Linux."_ + +### Security + +- [Wargames](https://overthewire.org/wargames) - _"The wargames offered by the OverTheWire community can help you to learn and practice security concepts in the form of fun-filled games."_ + +### Service workers + +- [Service Workies](https://serviceworkies.com) - _"Learn Service Workers inside and out with the new PWA Mastery Game."_ + +## Git / GitHub + +- [Git Cheatsheet](http://ndpsoftware.com/git-cheatsheet.html) - _"Interactive Git Cheatsheet, categorizing commands based on what they affect."_ +- [Git Immersion](http://gitimmersion.com) - _"A guided tour that walks through the fundamentals of Git, inspired by the premise that to know a thing is to do it."_ +- [GitHowTo](https://githowto.com) - _"Git How To is a guided tour that walks through the fundamentals of Git, inspired by the premise that to know a thing is to do it."_ +- [Learn Git Branching](https://learngitbranching.js.org) - _"An interactive Git visualization tool to educate and challenge!"_ +- [Pro Git Book](https://git-scm.com/book/en/v2) - _"The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com."_ +- [Step-by-step guide to contributing on GitHub](https://www.dataschool.io/how-to-contribute-on-github/) - _"Have you thought about contributing to an open source project, but you're too confused (or intimidated) by the process to even try? I've been there too!"_ +- [Try GitHub](http://try.github.io) - _Resources to learn Git: Handbook, cheat sheets, git commands in the browser, etc._ + +## iOS + +### Swift + +- [Developing iOS 10 Apps with Swift](https://itunes.apple.com/us/course/developing-ios-10-apps-with-swift/id1198467120?ign-mpt=uo%3D8) - Stanford + +## Java + +- [JetBrains Academy](https://www.jetbrains.com/academy) - _"You’ll progress through the track building around 5 different projects. Eventually you’ll be able to create a project that will showcase your skills at the junior Java Developer level."_. + +## JavaScript + +- [You Don't Know JS (book series)](https://github.com/getify/You-Dont-Know-JS) - _"This is a series of books diving deep into the core mechanisms of the JavaScript language."_ +- [JavaScript Arrays](https://www.executeprogram.com) - _"Memorize the JavaScript array methods quickly, including weird corner cases; no more looking them up. Slice, filter, map, reduce, and the rest."_ + +## Julia + +- [Quantitative Economics with Julia](https://lectures.quantecon.org/jl) - Learning Julia, dynamic programming, many mathematical concepts. + +## Kotlin + +- [JetBrains Academy](https://www.jetbrains.com/academy) - _"You’ll progress through the track building 5 different projects with increasing difficulty. You'll get to know the syntax of Kotlin and the features that make it a laconic language."_. + +## Markdown + +- [Markdown: Syntax](https://daringfireball.net/projects/markdown/syntax) - _"This document is itself written using Markdown; you can see the source for it by adding ‘.text’ to the URL"_. +- [Mastering Markdown](https://masteringmarkdown.com/) - _"A Mini Series that will change how you write"_. + +## Python + +- [JetBrains Academy](https://www.jetbrains.com/academy) - _"You’ll progress through the track building 5 different projects with increasing difficulty. You'll get to know the basic syntax of Python, some standard libraries and the Django framework that is used to build web applications."_. +- [Quantitative Economics with Python](https://lectures.quantecon.org/py) - Great reference for scientific libraries, working with data, advanced Python concepts, dynamic programming. + +### Hosting + +- [Python Anywhere](https://www.pythonanywhere.com/) - _"Host, run, and code Python in the cloud!"_ + +## Questions and answers + +- [Stack Overflow](https://stackoverflow.com) - _"Stack Overflow is a question and answer site for professional and enthusiast programmers."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Stack_Overflow) + +## Regular expressions (regex) + +- [RegexOne](https://regexone.com) - _"Learn Regular Expressions with simple, interactive exercises."_ +- [regex101](https://regex101.com) - _"Online regex tester, debugger with highlighting for PHP, PCRE, Python, Golang and JavaScript."_ +- [Regexes - Execute Program](https://www.executeprogram.com) - _"Learn the common regex features. Boundaries, repetition, wildcards, character sets, character classes, and others."_ + +## SQL + +- [SQL Zoo](https://sqlzoo.net) - _"Learn SQL using: SQL Server, Oracle, MySQL, DB2, and PostgreSQL."_ + +## TypeScript + +- [TypeScript - Execute Program](https://www.executeprogram.com) - _"Static types and the TypeScript language from the ground up, whether you've used static types or not. Basic JavaScript knowledge required."_ + +# Startups + +- [Notes Essays-Peter Thiel's CS183: Startup-Stanford, Spring 2012](http://blakemasters.com/peter-thiels-cs183-startup) - There is a book available from those notes: [Zero to One: Notes on Startups, or How to Build the Future](https://amzn.to/2I6AlDJ). + +# Technology + +- [Version Museum](https://www.versionmuseum.com) - _"Version Museum showcases the visual history of popular websites, operating systems, applications, and games that have shaped our lives. Much like walking through a real-life museum, this site focuses on the design changes of historic versions of technology, rather than just the written history behind it."_ + +# Terminal / Command-line interface + +- [Asciinema](https://asciinema.org) - _"Record and share your terminal sessions, the right way."_ + +# Typing faster + +- [10FastFingers](https://10fastfingers.com) - _"Test & Improve your Typing Speed with our free Typing Games."_ +- [Keybr](https://keybr.com) - _"Typing Lessons. Take typing speed test, practice your touch typing skills, learn to type faster and with fewer errors with this free online typing tutor."_ +- [Typing.io](https://typing.io) - _"Typing.io is a typing tutor/trainer for programmers. Typing.io's lessons are based on open source code, allow you to practice typing the key sequences that appear in real code."_ + +# Variety + +- [Free for developers](https://free-for.dev) - _"This is a list of software (SaaS, PaaS, IaaS, etc.) and other offerings that have free tiers for developers."_ + +# Web + +## Buying a domain name + +- [BlueHost](https://www.bluehost.com/) +- [BuyDomains.com](https://www.buydomains.com/) +- [Domain.com](https://www.domain.com/) +- [DreamHost](https://www.dreamhost.com/) +- [GoDaddy](https://godaddy.com/domains) +- [HostGator](https://www.hostgator.com/) +- [Name.com](https://www.name.com/) +- [NameCheap](https://www.namecheap.com/) + +## Cloud Computing + +- [AWS](https://aws.amazon.com) - _"Amazon Web Services is a subsidiary of Amazon that provides on-demand cloud computing platforms to individuals, companies and governments, on a metered pay-as-you-go basis."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Amazon_Web_Services)) +- [Digital Ocean](https://www.digitalocean.com) - _"DigitalOcean provides developers cloud services that help to deploy and scale applications that run simultaneously on multiple computers."_ ([from Wikipedia](https://en.wikipedia.org/wiki/DigitalOcean)) +- [Google Cloud Platform](https://cloud.google.com) - _"Google Cloud Platform, offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search and YouTube."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Google_Cloud_Platform)) +- [Linode](https://www.linode.com) - _"Instantly deploy an SSD cloud server running with your choice of Linux distro, resources, and node location."_ +- [Rackspace Cloud](https://www.rackspace.com/cloud) - _"The Rackspace Cloud is a set of cloud computing products and services billed on a utility computing basis from the US-based company Rackspace. Offerings include web application hosting or platform as a service ("Cloud Sites"), Cloud Storage ("Cloud Files"), virtual private server ("Cloud Servers"), load balancers, databases, backup, and monitoring."_ ([from Wikipedia](https://en.wikipedia.org/wiki/Rackspace_Cloud)) + +## Information on websites + +- [SecurityTrails - DNS Trail](https://securitytrails.com/dns-trails) - Review the history of a domain name. + +## Website annotation + +- [Bounce](https://www.bounceapp.com) - _"A little app from ZURB that lets people add feedback to any interface and toss that back and forth with other people."_ + +## Website testing + +- [CodePen](https://codepen.io) - _"CodePen is an online community for testing and showcasing user-created HTML, CSS and JavaScript code snippets. It functions as an online code editor and open-source learning environment, where developers can create code snippets, creatively named "pens", and test them._" ([from Wikipedia](https://en.wikipedia.org/wiki/CodePen)) +- [JSFiddle](https://jsfiddle.net) - _"JSFiddle is an online community for testing and showcasing user-created and collaborational HTML, CSS and JavaScript code snippets, known as 'fiddles'. It allows for simulated AJAX calls."_ ([from Wikipedia](https://en.wikipedia.org/wiki/JSFiddle)) + +# Web development + +## Learning + +- [awesome-learning-resources](https://github.com/lauragift21/awesome-learning-resources) - GitHub awesome list. [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) +- [Frontend Masters](https://frontendmasters.com/) +- [Intro to Web Dev v2](https://btholt.github.io/intro-to-web-dev-v2/). +- [MDN Web Docs](https://developer.mozilla.org/en-US/) + +## Tools + +- [Color Hunt](https://colorhunt.co) - _"Color Hunt is a free and open platform for color inspiration with thousands of trendy hand-picked color palettes."_ +- [Coolors](https://coolors.co) - _"The super fast color schemes generator! Create, save and share perfect palettes in seconds!"_ +- [HTML Color Codes](https://htmlcolorcodes.com) - _"Get HTML color codes, Hex color codes, RGB and HSL values with our color picker, color chart and HTML color names."_ +- [Lighthouse](https://developers.google.com/web/tools/lighthouse/) - _"Lighthouse is an open-source, automated tool for improving the quality of web pages."_ +- [Real Favicon Generator](https://realfavicongenerator.net) - _"Favicon Generator. For real."_ diff --git a/youtube/README.md b/youtube/README.md new file mode 100644 index 00000000..0e08f662 --- /dev/null +++ b/youtube/README.md @@ -0,0 +1,399 @@ +[Go back to the main page](../README.md) + +# YouTube + +- [YouTube](#youtube) +- [Artificial intelligence](#artificial-intelligence) + - [Deep learning](#deep-learning) + - [General learning](#general-learning) + - [Machine learning](#machine-learning) + - [Research](#research) + - [Robotics](#robotics) +- [Computer science](#computer-science) + - [Algorithms](#algorithms) + - [`mergeSort` algorithm](#mergesort-algorithm) + - [`quickSort` algorithm](#quicksort-algorithm) + - [Compilers](#compilers) + - [Computational complexity & P vs NP](#computational-complexity--p-vs-np) + - [Data structures](#data-structures) + - [Introduction](#introduction) + - [Mixed topics](#mixed-topics) +- [Cryptocurrencies](#cryptocurrencies) + - [Bitcoin](#bitcoin) +- [Engineering](#engineering) +- [Git / GitHub](#git--github) +- [Graphic design](#graphic-design) + - [3D creation](#3d-creation) + - [Raster graphics (JPEG, PNG, GIF, TIFF, BMP, PSD, PSB, etc.)](#raster-graphics-jpeg-png-gif-tiff-bmp-psd-psb-etc) + - [Vector graphics, 2D (SVG, CGM, AI, CDR, ODG, XPS, DXF, etc.)](#vector-graphics-2d-svg-cgm-ai-cdr-odg-xps-dxf-etc) +- [Mathematics](#mathematics) + - [Beginner-oriented](#beginner-oriented) + - [Calculus](#calculus) + - [Derivatives](#derivatives) + - [Complex analysis](#complex-analysis) + - [Differential equations](#differential-equations) + - [Discrete mathematics](#discrete-mathematics) +- [Encryption](#encryption) +- [General topics](#general-topics) + - [Linear algebra](#linear-algebra) + - [Modular arithmetic](#modular-arithmetic) + - [Numerical analysis](#numerical-analysis) + - [Probability & statistics](#probability--statistics) + - [Real analysis](#real-analysis) + - [Regression Analysis](#regression-analysis) + - [Topology](#topology) + - [Trigonometry](#trigonometry) +- [Programming](#programming) + - [Android](#android) + - [C](#c) + - [C#](#c-1) + - [C++](#c-2) + - [JavaScript](#javascript) + - [PHP](#php) + - [Python](#python) + - [SQL](#sql) + - [PostgreSQL](#postgresql) + - [Web development](#web-development) + - [CSS](#css) +- [Software engineering](#software-engineering) +- [Study skills](#study-skills) +- [Virtual reality](#virtual-reality) + +**Note:** + +- When software is used, [open source software](https://en.wikipedia.org/wiki/Open-source_software) is denoted with a :star:. + +# Artificial intelligence + +- [IIT Madras - Artificial Intelligence](https://www.youtube.com/playlist?list=PLbMVogVj5nJQu5qwm-HmJgjmeGhsErvXD) (playlist) - NPTEL +- [Lex Fridman](https://www.youtube.com/lexfridman) - Podcast, deep learning, self-driving cars, research. +- [MIT 6.034 Artificial intelligence](https://www.youtube.com/watch?v=TjZBTDzGeGg&list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi) (playlist) - MIT OpenCourseWare + +## Deep learning + +- [Deep Learning Oxford course](https://www.youtube.com/playlist?list=PLcmaziH9sW6PHBhsM_qgf52Ay6EVY8cWT) (playlist) - + Dan Colman + +## General learning + +- [Siraj Raval](https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A/) (channel) - _"I'm on a warpath to inspire and educate developers to build Artificial Intelligence. Games, music, chatbots, art, I'll teach you how to make it all yourself."_ + +## Machine learning + +- [Machine Learning Course - CS 156](https://www.youtube.com/playlist?list=PLD63A284B7615313A) (playlist) - caltech +- [Neural Networks for Machine Learning - Geoffrey Hinton 2016](https://www.youtube.com/playlist?list=PLoRl3Ht4JOcdU872GhiYWf6jwrk_SNhz9) (playlist) - Colin McDonnell + +## Research + +- [Two Minute Papers](https://www.youtube.com/user/keeroyz/) (channel) - _"Awesome research for everyone."_ + +## Robotics + +- [Introduction to Robotics](https://www.youtube.com/view_play_list?p=65CC0384A1798ADF&search_query=Artificial+Intelligence++Introduction+to+Robotics) (playlist) - Stanford + +# Computer science + +- [CrashCourse Computer Science](https://www.youtube.com/watch?v=tpIctyqH29Q&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo) (playlist) - CrashCourse +- [Computerphile](https://www.youtube.com/user/Computerphile/) (channel) - _"Videos all about computers and computer stuff. Sister channel of Numberphile."_ +- [Easy Theory](https://www.youtube.com/c/EasyTheory/playlists) - _"This is a channel about making Computer Science theory as easy as possible."_ Relevant for [Fundamentals of Computer Science](../modules/level_4/fundamentals_of_computer_science/README.md) as well as [Algorithms and Data Structures I](../modules/level_4/algorithms_and_data_structures_i/README.md). +- [UC Berkeley CS10 Beauty and Joy of Computing Fa10 (1080p HD)](https://www.youtube.com/playlist?list=PLECBD29A17AAF6EF9) (playlist) - Dan Garcia + +## Algorithms + +- [Alejandra Beghelli's channel](https://www.youtube.com/channel/UCJWZNQIKS9V5R3Wn42PMIIw/) - **Instructor for [Algorithms and Data Structures II](../REPL/modules/level_5/algorithms_and_data_structures_ii/)**. +- [Algorithm Design and Analysis](https://www.youtube.com/playlist?list=PL6EF0274BD849A7D5) (playlist) - UC Davis +- [Algorithmic Lower Bounds: Fun with Hardness Proofs](https://www.youtube.com/playlist?list=PLUl4u3cNGP63d33STUUBfZUpzFCVR5-PV) (playlist) - MIT OpenCourseWare - _"[...] summarizing the prerequisite complexity theory and featuring two examples of hardness proofs in games."_ +- [Algorithms Course - Graph Theory Tutorial from a Google Engineer](https://www.youtube.com/watch?v=09_LlHjoEiY) - freeCodeCamp.org +- [Algorithms for Big Data](https://www.youtube.com/playlist?list=PL2SOU6wwxB0v1kQTpqpuu5kEJo2i-iUyf) (playlist) - Harvard University +- [Introduction to algorithms](https://www.youtube.com/watch?v=0IAPZzGSbME&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O) (playlist) - Abdul Bari +- [Introduction to algorithms](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) (playlist) - MIT OpenCourseWare + +### `mergeSort` algorithm + +- [2.7.2. Merge Sort Algorithm](https://www.youtube.com/watch?v=mB5HXBb_HY8) - Abdul Bari +- [Algorithm lecture 8 -- Merge sort algorithm, analysis and problems](https://www.youtube.com/watch?v=sfmaf4QpVTw) - Gate Lectures by Ravindrababu Ravula + +### `quickSort` algorithm + +- [Algorithms lecture 9 -- Quick sort algorithm](https://www.youtube.com/watch?v=3DV8GO9g7B4) - Gate Lectures by Ravindrababu Ravula +- [2.8.1 QuickSort Algorithm](https://www.youtube.com/watch?v=7h1s2SojIRw) - Abdul Bari + +## Compilers + +- [IIT Kanpur – Compiler Design](https://www.youtube.com/playlist?list=PLbMVogVj5nJTmKzaSlCpGgi7qxgcRRs8h) (playlist) - NPTEL + +## Computational complexity & P vs NP + +- [Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8) - MIT OpenCourseWare +- [P vs. NP and the Computational Complexity Zoo](https://www.youtube.com/watch?v=YX40hbAHx3s) - hackerdashery + +## Data structures + +- [Advanced data structures](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) (playlist) - MIT OpenCourseWare + +## Introduction + +- [Introduction to Computer Science and Programming, Spring 2011](https://www.youtube.com/watch?list=PLB2BE3D6CA77BB8F7&v=bX3jvD7XFPs) (playlist) - MIT OpenCourseWare + +## Mixed topics + +- [CS50 Beyond 2019](https://www.youtube.com/playlist?list=PLhQjrBD2T381Q6R1jRxgXknYO7VuTYPBI) (playlist) - CS50. About HTML, CSS, Git, GitHub, Python, Flask, Object-Oriented Programming, AI, JavaScript, ORMs, APIs, React, security, scalability. +- [CS50 2018](https://www.youtube.com/watch?v=5azaK2cBKGw&list=PLhQjrBD2T382eX9-tF75Wa4lmlC7sxNDH) (playlist) - CS50 (Harvard's Introductory Computer Science Course). About C, arrays, memory, data structures, HTTP, HTML, CSS, Python, Web programming, SQL. + +# Cryptocurrencies + +## Bitcoin + +- [Bitcoin and Cryptocurrency Technologies Online Course](https://www.youtube.com/playlist?list=PLqn29N3j3wMgdsN42AABVkc8KbjFtd_GI) (playlist) - Matteo Scappini + +# Engineering + +- [CrashCourse Engineering](https://www.youtube.com/watch?v=ToC8rFFp88Y&list=PL8dPuuaLjXtO4A_tL6DLZRotxEb114cMR) (playlist) - CrashCourse + +# Git / GitHub + +- [CS50 Beyond 2019](https://www.youtube.com/watch?v=eulnSXkhE7I) - CS50 +- [MIT Missing semester (Version Control) - Git data model](https://missing.csail.mit.edu/2020/version-control) - MIT +- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) - Traversy Media +- [Git Tutorial for Beginners: Command-Line Fundamentals](https://www.youtube.com/watch?v=HVsySz-h9r4&list=PL-osiE80TeTuRUfjRe54Eea17-YfnOOAx) (playlist) - Corey Schafer +- [Git and GitHub for Beginners - Crash Course](https://www.youtube.com/watch?v=RGOj5yH7evk) - freeCodeCamp.org +- [GitHub Basics Tutorial - How to Use GitHub](https://www.youtube.com/watch?v=x0EYpi38Yp4) - freeCodeCamp.org + +# Graphic design + +## 3D creation + +- :star: [Blender Guru Tutorials](https://www.youtube.com/user/AndrewPPrice/playlists) (playlists) - Blender Guru + +## Raster graphics (JPEG, PNG, GIF, TIFF, BMP, PSD, PSB, etc.) + +- :heavy_dollar_sign: [Photoshop Tutorials](https://www.youtube.com/user/NewWorldOps) (channel) - Photoshop Tutorials +- :star: [Tutorials with GIMP](https://www.youtube.com/channel/UCEQXp_fcqwPcqrzNtWJ1w9w) (channel) - Logos By Nick + +## Vector graphics, 2D (SVG, CGM, AI, CDR, ODG, XPS, DXF, etc.) + +- :heavy_dollar_sign: [Logo design in Adobe Illustrator](https://www.youtube.com/channel/UCF6WjcZeVqy3MLBpp86eOyw/) (channel) - Mohamed Achraf +- :star: [Tutorials with Inkscape](https://www.youtube.com/channel/UCEQXp_fcqwPcqrzNtWJ1w9w) (channel) - Logos By Nick + +# Mathematics + +- [Computer Science - Riemann Hypothesis and its Applications](https://www.youtube.com/playlist?list=PLbMVogVj5nJRaBWHpgPX04ndIF2rloGUC) (playlist) - NPTEL +- [Mathematics for Computer Science (2010)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B) (playlist) - MIT OpenCourseWare +- [Mathematics for Computer Science (2015)](https://www.youtube.com/watch?v=wIq4CssPoO0&list=PLUl4u3cNGP60UlabZBeeqOuoLuj_KNphQ) (playlist) - MIT OpenCourseWare + +## Beginner-oriented + +- [Eddie Woo](https://www.youtube.com/user/misterwootube/) (channel) - Covers topics ranging from quadratic equations, graphing, functions, factorization, probability, trigonometry, series on finances, calculus, geometry, series & sequences, etc. + +## Calculus + +- Beginner + - [Essence of calculus](https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr) (playlist) - 3Blue1Brown +- One step beyond + - [Highlights of Calculus](https://www.youtube.com/watch?v=X9t-u87df3o&list=PLBE9407EA64E2C318) (playlist) - MIT OpenCourseWare +- More advanced + - [Calculus Blue - All about Calculus](https://www.youtube.com/channel/UC5N5pRddyicAX1QJyJjIIdg/playlists) (**big** playlists) - Prof Ghrist Math + - [Calculus Single Variable](https://www.youtube.com/watch?v=nqDVJFlahpU&list=PLKc2XOQp0dMwj9zAXD5LlWpriIXIrGaNb) (playlist) - Penn Online Learning + - [MIT Calculus Revisited: Calculus of Complex Variables](https://www.youtube.com/watch?v=BOx8LRyr8mU&list=PLD971E94905A70448) (playlist) - MIT OpenCourseWare + - [MIT Calculus Revisited: Multivariable Calculus](https://www.youtube.com/watch?v=wsOoClvZmic&list=PL1C22D4DED943EF7B) (playlist) - MIT OpenCourseWare + - [MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/watch?v=MFRWDuduuSw&list=PL3B08AE665AB9002A) (playlist) - MIT OpenCourseWare + - [Open Ed: Leingang, Calculus I](https://www.youtube.com/watch?v=PBUtJM-zAls&list=PL2D50EE0B1DC5453E) (playlist) - New York University + - [Vector Calculus @ UNSW Sydney. Dr Chris Tisdell](https://www.youtube.com/watch?v=22oMQY_zQ34&list=PL283CA2107AD503A3) (playlist) - UNSWelearning + +### Derivatives + +- [Chain rule: example with trigonometric function](https://www.youtube.com/watch?v=aeQA5d3gZTI) - MIT OpenCourseWare +- [Chains f(g(x)) and the Chain Rule | MIT Highlights of Calculus](https://www.youtube.com/watch?v=yQrKXo89nHA) - MIT OpenCourseWare +- [The Chain Rule for differentiation of composite functions](https://www.youtube.com/watch?v=KKaRHdZ-Qus) - ExamSolutions + +## Complex analysis + +- [Complex Analysis - Part 1](https://www.youtube.com/playlist?list=PLbMVogVj5nJTLfYTwvct_SlLaxv1b50Vk) (playlist) - NPTEL +- [Complex Analysis - Part 2](https://www.youtube.com/playlist?list=PLbMVogVj5nJTSPDysVOzVPd0N1AHYqUhH) (playlist) - NPTEL + +## Differential equations + +- [Differential equations (2006)](https://www.youtube.com/watch?v=XDhJ8lVGbl8&list=PLEC88901EBADDD980) (playlist) - MIT OpenCourseWare +- [Differential equations (2011)](https://www.youtube.com/watch?v=76WdBlGpxVw&list=PL64BDFBDA2AF24F7E) (playlist) - MIT OpenCourseWare +- [Differential equations (2016)](https://www.youtube.com/watch?v=ZvL88xqYSak&list=PLUl4u3cNGP63oTpyxCMLKt_JmB0WtSZfG) (playlist) - MIT OpenCourseWare + +## Discrete mathematics + +- **Algorithms** + - [Algorithms: Graph Search, DFS and BFS](https://www.youtube.com/watch?v=zaBhtODEL0w) - HackerRank + - [Breadth-First Search (BFS) algorithm](https://www.youtube.com/watch?v=s-CYnVz-uh4) - MIT OpenCourseWare + - [Depth-First Search (DFS), Topological Sort](https://www.youtube.com/watch?v=AfSk24UTFS8) - MIT OpenCourseWare + - [Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search](https://www.youtube.com/watch?v=pcKY4hjDrxk) - Abdul Bari + - [Maximum Matching Algorithm](https://www.youtube.com/watch?v=gbasc4F-7hk) - HEGARTYMATHS + * **Dijkstra's algorithm** + - [Dijkstra's Shortest Path Algorithm | Graph Theory](https://www.youtube.com/watch?v=pSqmAO-m7Lk) - WilliamFiset + - [Graph Data Structure 4. Dijkstra’s Shortest Path Algorithm](https://www.youtube.com/watch?v=pVfj6mxhdMw) - Computer Science + - [Dijkstra's algorithm in 3 minutes — Review and example](https://www.youtube.com/watch?v=_lHSawdgXpI) - Michael Sambol + * **Hopcroft–Karp algorithm** + - [Hopcroft karp Algorithm explanation](https://www.youtube.com/watch?v=OhtWajIAU-M) - Holly Baker + - [Hopcroft-Karp Algorithm](https://www.youtube.com/watch?v=0GNYjXUPTFM) - Samuel Russell + - [Hopcroft–Karp algorithm](https://www.youtube.com/watch?v=lM5eIpF0xjA) - Joromy Bou Khalil + * **Kruskal’s algorithm** + - [Kruskal's algorithm in 2 minutes — Review and example](https://www.youtube.com/watch?v=71UQH7Pr9kU) - Michael Sambol + - [Kruskal’s Algorithm for Minimum Spanning Tree](https://www.youtube.com/watch?v=3rrNH_AizMA) - GeeksforGeeks + * **Prim's algorithm** + - [Prim's algorithm in 2 minutes — Review and example](https://www.youtube.com/watch?v=cplfcGZmX7I) - Michael Sambol + +* [Computer Sc - Discrete Mathematical Structures](https://www.youtube.com/view_play_list?p=0862D1A947252D20) (playlist) - Kamala Krithivasan +* [Discrete Math 1: Sets, propositional logic, factorials, permutations, combinations, proofs, mathematical induction, injective/surjective/bijective functions, inverse functions, algorithms](https://www.youtube.com/watch?v=tyDKR4FG3Yw&list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz) (playlist) - TheTrevTutor +* [Discrete Math 2: Permutations, combinations, probability, graph theory, trees, Dijkstra's Algorithm](https://www.youtube.com/watch?v=DBugSTeX1zw&list=PLDDGPdw7e6Aj0amDsYInT_8p6xTSTGEi2) (playlist) - TheTrevTutor +* [Discrete Math I](https://www.youtube.com/watch?v=OApHaIMKMJE&list=PLl-gb0E4MII0L5lz8uQ8j5aSFQQHoAzXx) (playlist) - Kimberly Brehm +* [Discrete mathematics](https://www.youtube.com/watch?v=2juspgYR7as&list=PLsFENPUZBqioyqffh3YZ2pKUg4uZFQJUY) (playlist) - GATEBOOK Video Lectures +* Recurrence relations: see lectures 14-15 of [Mathematics for Computer Science (2010)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B) (playlist) - MIT OpenCourseWare +* [Sets, sequences, functions, summations, matrices, algorithms](https://www.youtube.com/watch?v=ZMhoRLGNR5Y&list=PLl-gb0E4MII0HmmhGXBIFGppSSqqy_mV-) (playlist) - Kimberly Brehm +* [Strong Induction Examples](https://www.youtube.com/watch?v=6O1s3_GsSHo) - Michael Barrus +* [The Karnaugh Map - Rules of Simplification](https://www.youtube.com/watch?v=PA0kBrpHLM4) - Jonnie Palmer +* [Transitive closure](https://www.youtube.com/watch?v=OO8Jfs9uZnc) - GVSUmath + +# Encryption + +- [Lecture 12: The RSA Cryptosystem and Efficient Exponentiation](https://www.youtube.com/watch?v=QSlWzKNbKrU) - Christof Paar +- [RSA algorithm](https://www.youtube.com/watch?v=Py06YA4dfKE) - from CS50's videos. + +# General topics + +- [Numberphile](https://www.youtube.com/user/numberphile/) (channel) - _"Videos about numbers - it's that simple."_ + +## Linear algebra + +- Beginner + - [Essence of linear algebra](https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) (playlist) - 3Blue1Brown +- More advanced + - [A first course in Linear Algebra - N J Wildberger](https://www.youtube.com/course?list=EC44B6B54CBF6A72DF) (playlist) - UNSWelearning + - [IIT Madras - Linear Algebra](https://www.youtube.com/playlist?list=PLbMVogVj5nJQ2vsW_hmyvVfO4GYWaaPp7) (playlist) - NPTEL + - [MIT 18.06 Linear Algebra (2005)](https://www.youtube.com/watch?v=ZK3O402wf1c&list=PLE7DDD91010BC51F8) (playlist) - MIT OpenCourseWare + - [MIT 18.06SC Linear Algebra (2011)](https://www.youtube.com/watch?v=hNDFwVVKVk0&list=PL221E2BBF13BECF6C) (playlist) - MIT OpenCourseWare + +## Modular arithmetic + +- [Lecture 2: Modular Arithmetic and Historical Ciphers](https://www.youtube.com/watch?v=W1SY6qKZrUk) - Christof Paar +- [Modular Arithmetic and Algorithms](https://www.youtube.com/watch?v=akfFEj7oTn0&list=PLjyyswMG9g9A0bI2SLnIiWANzSKrEuVYK) (playlist) - Samuel Chukwuemeka + +## Numerical analysis + +- [IIT Bombay – Elementary Numerical Analysis](https://www.youtube.com/playlist?list=PLbMVogVj5nJTtsC5V9n452YKc4mJAhrmm) (playlist) - NPTEL + +## Probability & statistics + +- [CrashCourse Statistics](https://www.youtube.com/watch?v=zouPoc49xbk&list=PL8dPuuaLjXtNM_Y-bUAhblSAdWRnmBUcr) (playlist) - CrashCourse +- [Introduction to probability](https://www.youtube.com/watch?v=1uW3qMFA9Ho&list=PLUl4u3cNGP60hI9ATjSFgLZpbNJ7myAg6) (playlist) - MIT OpenCourseWare +- [MIT 6.041SC Probabilistic Systems Analysis and Applied Probability (2010)](https://www.youtube.com/watch?v=j9WZyLZCBzs&list=PLUl4u3cNGP60A3XMwZ5sep719_nh95qOe) (playlist) - MIT OpenCourseWare +- [Probabilistic Systems Analysis and Applied Probability (2011)](https://www.youtube.com/watch?v=j9WZyLZCBzs&list=PLUl4u3cNGP61MdtwGTqZA0MreSaDybji8) (playlist) - MIT OpenCourseWare +- [Probability for Math Science: UCLA Math 3C](https://www.youtube.com/playlist?list=PL5BE09709EECF36AA) (playlist) - UCLACourses +- [Statistical Methods for Scientists and Engineers](https://www.youtube.com/playlist?list=PLbMVogVj5nJTwfajxAvmxttpDktlmMDp_) (playlist) - NPTEL +- [Statistics 110: Probability](https://www.youtube.com/watch?v=KbB0FjPg0mw&t=0s&list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo) (playlist) - Harvard University + +## Real analysis + +- [Real Analysis: Lectures by Professor Francis Su](https://www.youtube.com/playlist?list=PL0E754696F72137EC) (playlist) - Francis Su +- [Real Analysis](https://www.youtube.com/playlist?list=PLbMVogVj5nJSxFihV-ec4A3z_FOGPRCo-) (playlist) - NPTEL + +## Regression Analysis + +- [IIT Madras – Regression analysis](https://www.youtube.com/playlist?list=PLbMVogVj5nJSpj5sl-8tdKARg1lw2wEa-) (playlist) - NPTEL + +## Topology + +- [Algebraic Topology: a beginner's course - N J Wildberger](https://www.youtube.com/course?list=EC41FDABC6AA085E78) (playlist) - UNSWelearning +- [IIT Madras – Topology](https://www.youtube.com/playlist?list=PLbMVogVj5nJRR7zYZifYopb52zjoScx1d) (playlist) - NPTEL + +## Trigonometry + +- [Rational Trigonometry--- N J Wildberger](https://www.youtube.com/watch?v=GGj399xIssQ&list=PLD6BAC8FA4287A3DD) (playlist) - njwildberger + +# Programming + +## Android + +- [CSSE490: Android Development (Winter 10-11)](https://www.youtube.com/playlist?list=PLBK7yyieyrAYdpaF5Vh1th9EoM49VLFEs) (playlist) - Rose-Hulman Online + +## C + +- Beginner + - [C Programming Tutorial for Beginners](https://www.youtube.com/watch?v=KJgsSFOSQv0) [3h46m] - freeCodeCamp.org + +## C# + +- [Create a C# Application from Start to Finish - Complete Course](https://www.youtube.com/watch?v=wfWxdh-_k_4) [24h00m] - Literally a course you can take in 24 hours... If you don't sleep. - freeCodeCamp.org + +## C++ + +- Beginner + - [C++ Object Oriented Programming Video Tutorial](https://www.youtube.com/watch?v=xnh7ip5gpzc&list=PLfVsf4Bjg79DLA5K3GLbIwf3baNVFO2Lq) - Playlist by LearningLad + - [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y) [4h01m] - freeCodeCamp.org + - [C++](https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb) - Playlist by The Cherno + +## JavaScript + +- Beginner + + - [JavaScript Crash Course For Beginners](https://www.youtube.com/watch?v=hdI2bqOjy3c) [1h40m] - Traversy Media + - [JavaScript ES6 Tutorial - JavaScript from Basic to Advanced - Build Real World Applications Part 1](https://www.youtube.com/watch?v=wbJWUWJWlaY) [7h09m] - Code Geek + - [JavaScript ES6 Tutorial - JavaScript from Basic to Advanced - Build Real World Applications Part 2](https://www.youtube.com/watch?v=t8P6FELv71A) [8h51m] - Code Geek + - [JavaScript Tutorial for Beginners: Learn JavaScript Basics in 1 Hour](https://www.youtube.com/watch?v=W6NZfCO5SIk) [48m16s] - Programming with Mosh + - [Learn JavaScript - Full Course for Beginners](https://www.youtube.com/watch?v=PkZNo7MFNFg) [3h26m] - freeCodeCamp.org + - [p5.js – The Coding Train](https://www.youtube.com/user/shiffman/playlists) (playlists) - Channel from Daniel Shiffman, a board member of `p5.js`. + +- More advanced + - [ECMAScript 6 / ES6 New Features](https://www.youtube.com/watch?v=ZJZfIw3P8No&list=PL6gx4Cwl9DGBhgcpA8eTYYWg7im72LgLt) (playlist) - thenewboston + - [Node.js Crash Course](https://www.youtube.com/watch?v=fBNz5xF-Kx4) [1h30m] - Traversy Media + +## PHP + +- [PHP Programming Language - Full Course](https://www.youtube.com/watch?v=OK_JCtrrv-c) [4h37m] - freeCodeCamp.org + +## Python + +- Beginner + + - [Introduction to Computer Science and Programming in Python](https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA) (playlist) - MIT OpenCourseWare + - [Introduction to Python 3 Programming Tutorial](https://www.youtube.com/watch?v=eXBD2bB9-RA&list=PLQVvvaa0QuDeAams7fkdcwOGBpGdHpXln) (playlist) - sentdex + - [Python Programming Tutorials Computer Science](https://www.youtube.com/watch?v=bY6m6_IIN94&list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-) (playlist) - Socratica + - [Python Tutorial for Absolute Beginners](https://www.youtube.com/watch?v=Z1Yd7upQsXY&list=PLBZBJbE_rGRWeh5mIBhD-hhDwSEDxogDg) (playlist) - CS Dojo + - [Python Tutorials](https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU) (playlist) - Corey Schafer + - [Learn Python - Full Course for Beginners](https://www.youtube.com/watch?v=rfscVS0vtbw) [4h27m] - freeCodeCamp.org + - [Python Tutorial for Beginners - Full Python Programming Course](https://www.youtube.com/watch?v=_uQrJ0TkZlc) [6h14m] - Programming with Mosh + +- More advanced + - Machine learning & deep learning + - [sentdex](https://www.youtube.com/user/sentdex/) (channel) + - Web development with Python + - [Corey Schafer](https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g) (channel) + +## SQL + +- Beginner + - [SQL - Full course for beginners](https://www.youtube.com/watch?v=HXV3zeQKqGY) [4h20m] - freeCodeCamp.org + - [SQL Computer Science](https://www.youtube.com/watch?v=nWyyDHhTxYU&list=PLi01XoE8jYojRqM4qGBF1U90Ee1Ecb5tt) (playlist) - Socratica + +### PostgreSQL + +- Beginner + - [Learn PostgreSQL - Full Course for Beginners](https://www.youtube.com/watch?v=qw--VYLpxG4) [4h19m] - freeCodeCamp.org + +## Web development + +- [Web Development Tutorial For Beginners](https://www.youtube.com/watch?v=gQojMIhELvM&list=PLoYCgNOIyGABDU532eesybur5HPBVfC1G) (playlist) - LearnCode.academy +- [Learn HTML/CSS](https://www.youtube.com/watch?v=iHZWS61Vyxk&list=PLMvLDJ7usmZDSg1z0X--3qz38IHjdieXR) (playlist) - Neil Rowe +- [Traversy Media](https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA) + +### CSS + +- [Bootstrap Grid - CSS Grids Series](https://www.youtube.com/watch?v=Dwzw3hzYcNU&list=PLqGj3iMvMa4IPwMW-sSXn1Q_pVu5tUMCw) (playlist) - DevTips + +# Software engineering + +- [Engineer Man](https://www.youtube.com/channel/UCrUL8K81R4VBzm-KOYwrcxQ) (channel) - _"I make fun and informative software engineering videos for a globally diverse audience on topics like JavaScript, Python, C, and Linux._" + +# Study skills + +- [CrashCourse Study Skills](https://www.youtube.com/playlist?list=PL8dPuuaLjXtNcAJRf3bE1IJU6nMfHj86W) (playlist) - CrashCourse + +# Virtual reality + +- [CS - Virtual Reality](https://www.youtube.com/playlist?list=PLbMVogVj5nJSyt80VRXYC-YrAvQuUb6dh) (playlist) - NPTEL