First of all, thank you for visiting this site! This website is a collection of notes for the modules in the first year computer science degree at the University of Warwick.
It is entirely student-run, and not affiliated with or endorsed by the University. We have communicated with members of the department who have said that this project is acceptable, but if at any point we are told this goes against DCS anti-plagiarism guidelines, or any other policy, we will immediately take it down. Additionally, we cannot provide guarantees that all the notes are correct as all content is written by students, however, we will try our hardest to maintain quality.
If you've been linked to this site, you've probably also seen us asking for anyone who can to pull request. We know that many people are hesitant to put their notes up on this site, whether it be because they think other people seeing their revision material may indirectly disadvantage them, or that they don't think anything they make is good enough to be hosted on a public site - we were too! However, there are a couple of points we'd like to raise to encourage you to contribute and help this site to be the best it can be:
- Our course isn't marked on a curve, so others using your notes to get better doesn't detriment you
- Making notes is a great way to revise, as it makes sure you properly understand the content, and if you know you’re putting them somewhere it gives you accountability to actually get them done
- Any content that is contributed is great to have - it doesn't have to be perfect! The beauty of these types of projects is that they inherently allow collaboration, so we can work together to improve any problems you think might be present
- Having experience collaborating on an open source project through tools like Git is a really useful skill and is a lot more exciting than what we did with it in CS133, and being able give this as an example of where you've done it in practice could be a cool thing to put on your CV
- You'll get a neat icon of you in the contributors section of the README and index pages!
This work is licensed under Creative Commons "Attribution-NonCommercial-ShareAlike 4.0 International", and the full license document can be found here. Essentially, attribute any content to the people who made it, don't use it to make money, and, even if you change the content, share it under the same license.
If you want to take a local download of the repository, please consider taking a fork as opposed to a clone, as that means it is easier for you to both stay up to date, and to contribute later if you want to. Furthermore, it helps us to some extent see how many people are interested in what we are doing.
We welcome pull requests from anyone who is happy to share their notes, and would be incredibly grateful for any input of content for the individual pages! We will try to provide any reasonable attribution you would like for content you contribute, and any contributions mean we get a more full coverage of the content finished faster, so everyone on the course can benefit from high quality shared notes.
Currently, most of the notes are in markdown (.md
) format, but we also support most other file formats, for example static webpages and PDFs. We are also very happy to add photographs of written notes, but a benefit of electronic formats is that they can be quickly searched (the ctrl+f
key is going to be used pretty heavily in open book exams). If you would prefer to host notes on your own site, we are also very happy to just link to them, but we would prefer to host a mirror of them here, for future-proofing.
If you think you have found a mistake in any of the notes, please tell us!
If you can make the change yourself by editing the appropriate file, consider making a pull request to the repository (for pdf files, annotations by tools such as Xournal should be used) and submit it through GitHub. This will also list you as a contributor to the project 😄.
If there is a bigger issue, or you don't feel comfortable making a pull request, see the "Contact us" section for how to tell us about it (if you know who made the notes, they're probably the best people to ask to get it fixed).
To ensure the smooth running of the this project, and avoid any contributions having to be removed, please follow the below guidelines:
-
Please thoroughly research a topic/correction before making a pull request on the matter, to ensure accuracy
-
If you are directly sourcing content that is not your own, please add the correct citations. For images or text taken verbatim from a source, please include a link to the site it is taken from, and exercise common sense for other cases
-
Please do not re-host any university owned content, including but not limited to past papers and lecture notes
Firstly, ensure that the top of the markdown (.md) file has YAML Front Matter containing the key-value pair math: true
. If it's not there, add it into the front matter.
For math sections (ensure that there's a new line before and after the start and end $$
respectively):
$$
1+1=2
$$
or $$1+1=2$$
for in-line math
If there is no YAML Front Matter you can add it at the top of the file like this:
---
math: true
---
- On the repository's page on GitHub, click the "Fork repository" button
- Clone your fork of the repository to your computer by running the command
git clone https://github.com/<YOUR_GITHUB_USERNAME>/dcs-notes.github.io
- Create a new branch on your local repository by running the command
git checkout -b <NEW_BRANCH_NAME>
. Naming the branch as a very brief description of what the change entails is helpful for us when accepting pull requests. - Set a new remote server for the upstream repository by running the command
git remote add upstream https://github.com/csrg-group/dcs-notes.github.io
- Make your changes/contributions, then add and commit your changes to the repository (with
git add -A
andgit commit -m "<COMMIT_MESSAGE>"
respectively) - Push your changes to the remote server by running the command
git push -u origin <NEW_BRANCH_NAME>
- On the repository's page on GitHub, after the changes have been pushed, a green "Compare & pull request" button will appear. Click on it, then click on the green "Create pull request" button which will appear afterwards. After this is done, we will be able to merge it in to the repository, or we might ask you to make some changes before we do so
Further resources for making a pull request can be found here.
If you are still confused, try Google-Fu on how to make a pull request, or see the "Contact us" section to ask us about it.
This table is generated by the all-contributors bot. The emojis mean the following in this project:
- "🐛" means making a pull request to fix mistakes in someone else's notes
- "🖋" means contributing notes to the project (this supersedes 🐛)
- "🎨" means doing design work for the website
- "🔥" means being responsible for internal administrative tasks (note: 🔥 is a custom key named "admin")
Currently, the maintainers/admins for this project are: Akram Ahmad, Edmund Goodman, Justin Tan, Yijun Hu (founding members), and Josh Fitzmaurice and Leo Riviera.
If you have any additional questions, or want to become more involved in contributing to this project, please feel free to DM us on WhatsApp or Discord (search for our names within the main first year CS group chat, or the grey or cult servers).
Many thanks once again for visiting.