├── Finite-Element-Analysis.md ├── README.md ├── androidappdev.md ├── backend.md ├── blockchain.md ├── competitive.md ├── computational_geometry.md ├── cryptography.md ├── flutter_app_dev.md ├── frontend.md ├── func_prog.md ├── gamedev.md ├── graph_learning.md ├── hacking.md ├── machine_learning.md ├── maths.md ├── open_source.md ├── p2p_networks.md ├── python.md ├── quantum.md ├── reinforcement_learning.md ├── sudo_bash.md ├── systems.md ├── theoretical.md └── websecurity.md /Finite-Element-Analysis.md: -------------------------------------------------------------------------------- 1 | ### What is Finite Element Analysis? 2 | 3 | It is a computational model used to solve several problems in engineering. It is a numerical method that allows for discretisation of a partial differential equation and is hence one example of what is known as a "computer experiment" or a "simulation experiemnt". 4 | 5 | It must be noted that while Finite Element Analysis is primarily taught in Mathematics and Mechanical Engineering courses, it's applications are broad, interdisciplinary and at the end of the day helps in forming computational simulations. 6 | 7 | https://en.wikipedia.org/wiki/Finite_element_method 8 | 9 | ### Prerequisites: 10 | 11 | A good foundation in Linear Algebra : [MIT OCW 18.06](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/) 12 | 13 | Basics for numerically computing solutions of Partial Differential Equations : Lecs 37-40 of [NPTEL Computational Techniques](https://www.youtube.com/playlist?list=PL42204FB1209D0EC3) 14 | 15 | A good background in C++ : [Derek Banas series on YouTube](https://www.youtube.com/playlist?list=PLGLfVvz_LVvQ9S8YSV0iDsuEU8v11yP9M) 16 | 17 | ### Resources: 18 | 19 | Coursera course on [Finite Element Methods for Problems in Physics](https://www.coursera.org/learn/finite-element-method) 20 | 21 | Reference : [NPTEL FEA Course](https://www.youtube.com/playlist?list=PLSGws_74K018SmggufD-pbzG3thPIpF94) 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Each file contains pinned resources from the corresponding channel on the Workspace. 2 | The resources are in the form of lists only temporarily, until we finalise a good enough way to use and display a directed acyclic graph for the same. It is meaningful because: 3 | * It's a waste to do two tutorials on the same topic only because the second one has a project. 4 | * One can't do an advanced course without prereqs, but the advanced course will teach a lot. 5 | * This is the way one usually follows while learning, just in a zigzag way. It'll be much more natural with a graph. 6 | * Send PRs if you create / find resources other than the ones mentioned. 7 | * This should especially help beginners who are unsure how to start with any topic. 8 | 9 | Once the DAG is completely set up, the next aim is creating a template for everyone to comfortably keep flags on the resources they have finished (probably a red-green DAG). This will be really helpful in the long term, for this allows everyone to show what they know, both to others and themselves. A link to that page would be quite more efficient than a "Intermediate: C++/Python" on your resumè 10 | 11 | Apart from the abovementioned benefits over many pre-existing "[Awesome Lists](https://github.com/sindresorhus/awesome)" on Github, there's a sidelined benefit that helps a lot in the long run. That is, it is constrained, and biased. Created by seniors from the same university from the same country, this provides a very good path for a junior who'd find themselves in quite a similar situation. 12 | 13 | ------ 14 | 15 | Contribution Guidelines: 16 | - Use [hyperlinks](https://github.com/bitsacm/Slack-Stock-DAG/) wherever possible 17 | - Link course webpages instead of lecture playlists 18 | 19 | Feel free to check out the [BITSACM blog](https://blog.bitsacm.in) for good blog posts! 20 | 21 | l-e-a-r-n 22 | -------------------------------------------------------------------------------- /androidappdev.md: -------------------------------------------------------------------------------- 1 | # Android App Development 2 | 3 | - https://developers.google.com/training/android/#for-new-programmers 4 | - https://developer.android.com/index.html 5 | - https://www.youtube.com/watch?v=QAbQgLGKd3Y&list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl 6 | 7 | ## Android Winter Project: 8 | - Prospect: Java, Android, XML, Firebase, Firestore 9 | ## Learning Resources: 10 | ### Java : 11 | - Part 1 of The Complete Reference ( concentrate on Class, Overriding functions , Inheritance (V.Imp), Multi Threading(imp), 12 | ### Android : 13 | - [Android Development Masterclass](https://www.udemy.com/course/android-oreo-kotlin-app-masterclass/) 14 | - [New Boston Tutorials Youtube Channel](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl) 15 | - Courses on Coursera or Udacity 16 | - https://developers.google.com/training/android/#for-new-programmers 17 | - Advanced : https://in.udacity.com/course/advanced-android-app-development--ud855 18 | ### Layouts and UI : 19 | - https://developer.android.com/training/best-ui.html 20 | - https://developer.android.com/guide/topics/ui/declaring-layout.html 21 | ### UI Library Collection: 22 | - https://github.com/wasabeef/awesome-android-ui 23 | ### Firebase and Firestore (V.Imp) : 24 | - Firebase Authentication and User signup : https://firebase.google.com/docs/auth/android/start/ 25 | - Firestore (database) : https://firebase.google.com/docs/firestore/quickstart 26 | ### Tasks- 27 | - Make a simple chat application in Android using a Firestore backend. The application should have a splash screen, signup/login screen( signup/ login users using FIrebase Authentication and Google OAuth with Firebase as well). The Main Activity should have a nav drawer with 3 options : Chats, Add Contacts, and logout). The chats fragment should list all the chats that you have with your contacts). Add contact page will have a simple field to enter email id or phone number of a contact you want to find and the app will add the user as a contact of this user if the searched mail exists. This will then get added to the chats list. 28 | - Use a Firestore database for storing data and querying. Use good UI elements from the wasabeef repository (https://github.com/wasabeef/awesome-android-ui) and design simple UI elements yourself, like the buttons in the login signup screen). Use material colors for your design( https://material.io/guidelines/style/color.html#color-color-palette ). 29 | - [Winter AppDev SIG Tasks](https://github.com/PrarabdhGarg/WinterAppDevSig) 30 | ### Others 31 | - [MVI](https://medium.com/mindorks/mvi-a-reactive-architecture-pattern-45c6f5096ab7) 32 | -------------------------------------------------------------------------------- /backend.md: -------------------------------------------------------------------------------- 1 | # Backend Development 2 | 3 | ## Getting started 4 | 5 | 1. Start with Django. Complete the tutorial on Django Girls (the blog app). 6 | 2. Get good at modelling data with databases. I recommend doing this with a project. Check this [repo](https://github.com/dush-t/dvm-assignments) out for comprehensive projects in Django - (make sure you read up about best practices for implementing data models while you're doing the assignment and not before it.) 7 | 3. Make something interesting with what you learnt. 8 | 4. Learn how to implement JSON APIs in Django and how to use them with front end (your front end knowledge might help here). 9 | 5. Make something using a JSON API. 10 | 6. At this point you'll know enough Django to make pretty much whatever you want. Its up to you if you wanna stick with it. I'd recommend abandoning it for a while and trying out a different framework (I'd recommend trying node + express - it'll give you exposure to NoSQL databases and out-of-the-browser javascript.). 11 | 7. If you did point 6, you'll know what to learn next based on your own experience. 12 | 13 | ## Learning Resources: 14 | - [BITSACM - Backend Blogs](https://blog.bitsacm.in/tag/backend/) 15 | - [Graphene to setup GraphQL queries with Django](https://blog.bitsacm.in/using-graphql-with-diango/) 16 | - [Introduction to APIs Tutorial](https://zapier.com/learn/apis/chapter-1-introduction-to-apis/) 17 | - [Pretty Printed - Django Video Tutorials](https://www.youtube.com/playlist?list=PLXmMXHVSvS-DQfOsQdXkzEZyD0Vei7PKf) 18 | - [Learning Article](https://github.com/bitsacm/learning-articles/blob/master/django.md) 19 | - [SessionStack - Javascript Tutorials](https://blog.sessionstack.com/tagged/tutorial) 20 | - Tango with Django Book 21 | - [simpleisbetterthancomplex](https://simpleisbetterthancomplex.com/): Blog for more elegant use of django. 22 | - [Django Microservices](https://www.elastic.co/videos/django-microservices-made-easy-by-paul-hallett) 23 | - [Understanding RPC, REST and GraphQL](https://apisyouwonthate.com/blog/understanding-rpc-rest-and-graphql/): Blog on the API paradigms 24 | - [Authorization with GraphQL](https://jkettmann.com/authorization-with-graphql-and-custom-directives/) 25 | 26 | ## Extras: 27 | - [Django Redirects](https://realpython.com/django-redirects/) Blog on django redirects 28 | - [Checkmate 2019 - 2](http://checkmate2019.herokuapp.com): Link to play the game. [Github Repo](https://github.com/ashryaagr/Checkmate-2019-2) 29 | - [Autohost](http://github.com/dush-t/autohost): Shell scripts for quick production and deployment of web apps 30 | - [Boilerplate for Django](https://github.com/anshalshukla/Cookiecutter_Django) 31 | 32 | ## Tools 33 | - [Postman](https://www.postman.com/): Test APIs 34 | - [Sqlite Browser](https://sqlitebrowser.org/): Browser for the database 35 | - [Ngrok](https://ngrok.com/) or [localtunnel](https://localtunnel.github.io/www/): To get a url to your local server 36 | - [iproxy](https://www.npmjs.com/package/iproxy): Image Proxy for Node.js 37 | 38 | ## Tasks: 39 | - [Winter 2019-20 SIG Tasks](https://github.com/ashryaagr/Winter-SIG) 40 | - [Ecommerce App](https://github.com/dush-t/dvm-assignments/blob/master/back-end/django/ecommerce-app/README.md) 41 | -------------------------------------------------------------------------------- /blockchain.md: -------------------------------------------------------------------------------- 1 | * For a good general idea of the concept, [3Blue1Brown](https://www.youtube.com/watch?v=bBC-nXj3Ng4&vl=en) does a good job.
2 | * A deep understanding of cryptography is not essential. Cryptography resources can be found [here](https://github.com/bitsacm/Slack-Stock-DAG/blob/master/cryptography.md). For a sufficient high-level overview of concepts, the first half of Chapter 2 of the book “Beginning Blockchain” by Bikramaditya Singhal, Gautam Dhameja, Priyansu Sekhar Panda is good. The book can be found on libgen. 3 | * [Blockchain A-Z](https://www.udemy.com/course/build-your-blockchain-az/) 4 | * [List of articles](https://www.superdatascience.com/pages/blockchain) referred to by above course. 5 | * [Bitcoin whitepaper](https://bitcoin.org/bitcoin.pdf). For Bitcoin scripting, aforementioned “Beginning Blockchain” (Chapter 3) provides a nice step by step explanation of the procedure.
6 | * [Ethereum whitepaper]( https://ethereum.org/en/whitepaper/). The Ethereum [website]( https://ethereum.org/en/) is also a good starting point for learning about smart contracts, etc. There’s even a overthewire type wargame wherein each level is a smart contract that needs to be hacked. ([here]( https://ethernaut.openzeppelin.com/))
7 | * Blockgeeks has good guides/articles like [1]( https://blockgeeks.com/guides/what-is-blockchain-technology/), [2]( https://blockgeeks.com/guides/blockchain-consensus/), [3](https://blockgeeks.com/guides/blockchain-scalability/) and many more.
8 | * For an overview of Hyperledger Fabric, Lecture videos 19-22 of [these]( https://www.youtube.com/playlist?list=PLFW6lRTa1g80R3Q_5-jsNVhDFAeGaABo9) playlist of lectures by IIT Kanpur and the [official docs]( https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html) of Hyperledger Fabric are a great place to start.
9 | * For detailed look at cryptos: 10 | https://github.com/bitcoinbook/bitcoinbook 11 | https://github.com/ethereumbook/ethereumbook 12 | * For a fun introduction to solidity: 13 | https://cryptozombies.io/ 14 | * For a developer focused roadmap to learn Ethereum: https://github.com/protofire/blockchain-learning-path 15 | -------------------------------------------------------------------------------- /competitive.md: -------------------------------------------------------------------------------- 1 | # Competitive Programming and DSA 2 | 3 | ## Resources for Competitive Programming (2019-20) 4 | 5 | Before you proceed with the resources, make sure you have an intermediate knowledge 6 | of any programming language of your choice. 7 | If you are starting with a language, I would recommend learning C++. 8 | [CodeChef DSA Certification Foundation](https://www.codechef.com/certification/data-structures-and-algorithms/prepare#foundation) 9 | is a good resource to prepare for competitive programming. 10 | It has theory as well as problems you can do topic-wise. 11 | 12 | Those who are interested in preparing from MOOCs can refer to these: 13 | 1. [Algorithms, Part I; Coursera](https://www.coursera.org/learn/algorithms-part1) 14 | 2. [Algorithms, Part II; Coursera](https://www.coursera.org/learn/algorithms-part2) 15 | 16 | For people interested in the theoretical aspects of competitive programming/DSA: 17 | 1. [MIT OCW 6.006 Introduction to Algorithms, Fall 2011 - YouTube Playlist](https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 18 | 2. [MIT 6.046J Design and Analysis of Algorithms, Spring 2015 - Youtube PLaylist](https://www.youtube.com/playlist?list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) 19 | 20 | - [Project Euler](https://projecteuler.net/) is a good site to practice problems that are more math oriented. 21 | 22 | If reading books is your style: 23 | 1. [The Algorithm Design Manual (TADM) by Skiena](http://mimoza.marmara.edu.tr/~msakalli/cse706_12/SkienaTheAlgorithmDesignManual.pdf) is a super beautiful book for absolute beginners. 24 | 2. *Competitive Programming 3: The New Lower Bound of Programming Contests* 25 | by Felix Halim and Steven Halim 26 | 3. [Competitive Programmer's Handbook](https://cses.fi/book/book.pdf): 27 | A free and extensive book by Antti Laaksonen 28 | 29 | For practicing problems, you can visit any popular website like 30 | [Codechef](https://www.codechef.com), [Codeforces](http://codeforces.com), 31 | [SPOJ](https://www.spoj.com). 32 | 33 | **A very important note**: To excel in competitive programming you need to practice 34 | lots of problems and participate in competitions regularly. 35 | Do not get demotivated by the rank you get in these competitions. 36 | Your rank will improve with time. Competitive programming can be intimidating when you start off 37 | but it will get easier with deliberate practice 38 | ([What is deliberate practice?](https://fs.blog/2012/07/what-is-deliberate-practice/)). 39 | When you have a 2 week vacation, you should participate in at least 2-3 competitions. 40 | 41 | ## How to start? (For absolute beginners): 42 | - Pick your IDE! For Linux users, you can use your favorite text editor along with the terminal. 43 | Windows users can use [Code::Blocks](http://www.codeblocks.org), 44 | [VScode](https://code.visualstudio.com), etc. 45 | There are few online IDEs as well if you don't want to spend time setting up your environment. 46 | [ideone.com](https://ideone.com) and [Codechef's IDE](https://www.codechef.com/ide) 47 | are the more popular ones. 48 | - Pick your programming language! No language is better, it is only your prowess with it that will determine your performance. Even if you are unsure, continue with C for now. You will eventually figure out C++ very smoothly. 49 | - [Learning Articles](https://github.com/bitsacm/learning-articles/blob/master/CP1.md) 50 | - [Here](https://www.codechef.com/problems/school) you will find loads of simple problems 51 | for getting started. With very few pre-requisites in terms of data structures, 52 | you will find it easy to solve a few problems and learn how to submit code. 53 | Pick 20 problems randomly and start solving. 54 | If you think it is getting repetitive, you can move on to the next step. 55 | 56 | ## (For moderately experienced coders): 57 | - [Codechef's certification programme](https://www.codechef.com/certification/prepare) 58 | is a beautiful resource! Explore the syllabus and tackle each topic one at a time. 59 | PS: the foundation and advanced section should be sufficient for most of the problems 60 | expected in tests for internships. 61 | - Take part in contests! You can try [Codeforces](https://www.codeforces.com) for starts. This is the best incentive to continue learning CP. Take part and find out for yourself! Codechef and Codeforces feature some really competitive contests with quality questions. 62 | - GeeksForGeeks Blogs! While few of you are here for the incoming internship tests, 63 | GFG has written decent blogs targeted for people going for such tests. 64 | They have pointed out the popularly asked Algos and DSs. 65 | Pick a topic from the codechef article above, learn about it on GFG. 66 | Simple, right? Explore for yourselves! 67 | 68 | ## (For advanced topics): 69 | - Know your syllabus! [This](https://gist.github.com/sharmaeklavya2/8aa2830f3a46a3f46ff249b4e1f07767) is a very extensive list of topics to be covered for solving the harder problems in contests. 70 | - [CommonLounge](https://www.commonlounge.com/discussion/5d2822257dfa49328d85fd27cf114441/main) 71 | - [TopCoder - Dynamic Programming](https://www.topcoder.com/community/competitive-programming/tutorials/dynamic-programming-from-novice-to-advanced/) 72 | - [CodeChef](https://www.codechef.com/certification/data-structures-and-algorithms/prepare) 73 | 74 | ## Right approach to problem solving: 75 | Following these steps will take you a long way in the learning process. 76 | - After you submit your code, ALWAYS check at least two other correct codes by other users (if not more!). 77 | You will learn new techniques and different coding styles from users all over. THIS IS A MUST. 78 | - **UPSOLVE THE CONTEST**! Telling from personal experience, this is one of the most efficient ways 79 | for a steeper learning curve. Solve all problems even after the contest is over. 80 | If you cannot, try to get a hint by reading first few line of editorial. 81 | If you cannot solve even after that, just read the editorial and code the solution yourself before 82 | reading the implementation. Sometimes the idea in the editorial seems very trivial to understand, 83 | so we have tendency to just skip the implementation. Don't do that. Code it yourself and get that AC. 84 | - Never run from topics you are uncomfortable with. (Well, this kind of goes without saying.) 85 | 86 | ## Learning Resources 87 | - [CP-Algorithms](https://cp-algorithms.com/): A blog with efficiently written C++ code for most data structures and algorithms. 88 | - [A2OJ Ladders](https://a2oj.com/ladders): List of Good Problems for every rating level on CodeForces. 89 | - [Algorithms Live](https://www.youtube.com/channel/UCBLr7ISa_YDy5qeATupf26w): Detailed video explanation for different algorithms. 90 | - [Algorithms Thread](https://www.youtube.com/playlist?list=PLZU0kmvryb_HZpDW2yfn-H-RxAu_ts6xq): Another good YouTube video series from one of the red coder on CF 91 | - [USASCO Guide](https://usaco-guide.vercel.app/): A detailed syllabus prepared by [Benq](https://codeforces.com/profile/Benq). It is still in Beta phase but pretty good 92 | - [CSES Problem Set](https://cses.fi/problemset/): List of 200 standard problems of varied difficulty 93 | - [Junior Training Sheet](https://docs.google.com/spreadsheets/d/1iJZWP2nS_OB3kCTjq8L6TrJJ4o-5lhxDOyTaocSYc-k/edit#gid=84654839): Alternative for A2OJ ladders 94 | - [kactl](https://github.com/kth-competitive-programming/kactl): KTH Algorithm Competition Template Library 95 | -------------------------------------------------------------------------------- /computational_geometry.md: -------------------------------------------------------------------------------- 1 | # Computational Geometry 2 | 3 | - [Textbook: M. de Berg, M. van Kreveld, M. Overmars, O. Schwarzkoph, "Computational Geometry: Algorithms and Applications, 3rd edition,"](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjmu5Dv6pXrAhX6wzgGHc68CcoQFjABegQIAhAB&url=https%3A%2F%2Fpeople.inf.elte.hu%2Ffekete%2Falgoritmusok_msc%2Fterinfo_geom%2Fkonyvek%2FComputational%2520Geometry%2520-%2520Algorithms%2520and%2520Applications%2C%25203rd%2520Ed.pdf&usg=AOvVaw1NV1vt0detKwPX1qsu_KEW): Suggested Book 4 | - [Geom Algorithms](geomalgorithms.com/): Explainations and C++ code of various algorithms 5 | - [METU-OCW course](https://www.youtube.com/watch?v=_vfCXMSLMAU&list=PLNPbxFpuCy0-6GIUmiHCvj0H0hNxstOie) - [course website](http://user.ceng.metu.edu.tr/~tcan/ceng773_s1415/overview.shtml) 6 | - [Coursera - Computation Geometry](https://www.coursera.org/learn/computational-geometry): Only Problemset is good 7 | - [Nptel-IITD course](https://www.youtube.com/watch?v=3Uxw7F75_-8&list=PLE1010BEDB031C039) 8 | - [CMSC754 - UMD Computational Geometry course notes](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiyxaTox5XrAhUmyDgGHbuzAPQQFjADegQIAhAB&url=http%3A%2F%2Fgraphics.stanford.edu%2Fcourses%2Fcs268-16-fall%2FNotes%2Fcmsc754-lects.pdf&usg=AOvVaw2iZQm25UHaL-SFngvXLBkJ) : Course Notes with Problems 9 | - [IIITD CS852](http://www.cse.iitd.ernet.in/~ssen/cs852/admin852.html): List of Topics and books 10 | - [AMS 345/ CSE 355 Computational Geometry, Fall, 2013](http://www.ams.sunysb.edu/~jsbm/courses/345/ams345.html): Contains relevant resources and some vizualizations 11 | - [Computation Geometry in C](http://crtl-i.com/PDF/comp_c.pdf): Good Book for Implementations in C 12 | - [Geometry for Competitive Programming](https://vlecomte.github.io/cp-geo.pdf): C++ implementations for basic computational geometry 13 | - [Philipp Kindermann's Lecture Series](https://www.youtube.com/channel/UCuAzKw_VngkAsQh7ummYq0A/playlists?view=50&sort=dd&shelf_id=2) 14 | - [Hanan Samet - Foundations of Multidimensional and Metric Data Structures](https://1lib.in/book/2223906/eac4e2) 15 | - T.H. Cormen - Introduction to Algorithms: Contains a chapter for introductory Computational Geometry 16 | 17 | ## Learning Computational Geometry 18 | One approach to learning Computational Geometry is as follows, 19 | 1. Week 1 - Week 5: Coursera - Computational Geometry 20 | - This part is more practice-oriented. 21 | - For theory, read from textbook and/or random resources off the internet. Philipp's lectures are also a great source. 22 | - Focus on the problemset for the course. Remember to pay special attention to the edge cases. 23 | - Recommended Prerequisite: Good understanding and practice of DSA. Some of the problems have tons of edge cases! 24 | 2. Week 6 - Week 10: Philipp Kindermann's Lecture Series 25 | - This part is more theory oriented and covers Voronoi Diagrams, Delaunay Triangulations too. 26 | - Again some parts can be followed up from the text book (Berg) as well. 27 | - Recommended Prerequisite: Basic graph theory (maximal planar graph, duals), basic DSA (time complexity) 28 | 29 | Review notes for this is [available here](https://cheese-cracker.github.io/note/2020/10/01/compgeom.html) 30 | 31 | For those interested only in the theory, follow Philipp's Lectures from week 1-10 complete, in conjunction with the textbook. 32 | 33 | For further knowledge, you could also glance through the book by Hanan Samet or [Journal of Computational Geometry](https://www.journals.elsevier.com/computational-geometry/) Papers. 34 | 35 | 36 | ## Graph Theory and Other Resources 37 | 38 | - [d3 Graph Theory](https://d3gt.com): Visualization Lessons on Graph Theory 39 | - [Algorithm Visualizer](https://visualgo.net/en) 40 | -------------------------------------------------------------------------------- /cryptography.md: -------------------------------------------------------------------------------- 1 | # Cryptography 2 | 3 | - [YouTube - Introduction to Cryptography by Christof Paar](https://goo.gl/KFsy54) 4 | - https://www.coursera.org/learn/crypto 5 | - [Book - Introduction to Modern Cryptography, by Katz and Lindell](https://repo.zenk-security.com/Cryptographie%20.%20Algorithmes%20.%20Steganographie/Introduction%20to%20Modern%20Cryptography.pdf): 6 | This book emphasizes mathematical rigor (precise definitions and proofs) 7 | and is helpful if you're looking to build a strong theoretical foundation. 8 | - https://crypto.stanford.edu/~dabo/cryptobook/BonehShoup_0_4.pdf (for book lovers) 9 | - https://cryptopals.com/ 10 | - http://doctrina.org/How-RSA-Works-With-Examples.html 11 | -------------------------------------------------------------------------------- /flutter_app_dev.md: -------------------------------------------------------------------------------- 1 | # Flutter App Development 2 | - [Official Documentaion](https://flutter.dev/docs) 3 | - [Switching form Android](https://flutter.dev/docs/get-started/flutter-for/android-devs) 4 | - [Dart](https://dart.dev/guides/language/language-tour) 5 | - [Playlist by Google](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJ7dsVN4iRuA7BT8XHzGtCr) 6 | 7 | ## Basic Concepts 8 | - **Widgets** : https://flutter.dev/docs/development/ui/widgets-intro 9 | - **Asynchronous Programing** : https://dart.dev/codelabs/async-await 10 | 11 | ## Advanced 12 | - ### Local Data Storage 13 | - [Shared Preferences](https://medium.com/flutterdevs/using-sharedpreferences-in-flutter-251755f07127) 14 | - [SQL Database](https://pub.dev/packages/sqflite) 15 | - [Secure Storage](https://pub.dev/packages/flutter_secure_storage) 16 | - ### Working with network calls 17 | - [Firebase](https://flutter.dev/docs/development/data-and-backend/firebase) 18 | - [Default Support](https://flutter.dev/docs/cookbook/networking/fetch-data) 19 | - [Dio Library](https://pub.dev/packages/dio) 20 | - [GraphQl](https://pub.dev/packages/graphql_flutter) 21 | 22 | - ### Architectural Patterns 23 | - https://flutter.dev/docs/development/data-and-backend/state-mgmt/options 24 | 25 | ## Online Video Lectures 26 | - ### [A Complete Guide to the Flutter SDK & Flutter Framework for building native iOS and Android apps by Academind](https://www.udemy.com/course/learn-flutter-dart-to-build-ios-android-apps/) 27 | - This is a paid course but it covers many topics and you get to build your own demo apps 28 | 29 | - ### [Introduction to Flutter Development Using Dart by Dr. Angela Yu](https://www.appbrewery.co/p/flutter-development-bootcamp-with-dart) 30 | - This is also a paid course and very good for beginners but it covers fewer topics as compared to the course mentioned above 31 | (topics like networking, database are not covered in this but still you can start of with this) 32 | 33 | 34 | ## Other Resources 35 | - A very good list of learning resources for flutter: https://github.com/Solido/awesome-flutter 36 | - [BITSACM - App Development](https://blog.bitsacm.in/tag/app-development/) 37 | - [Flutter Vs React Native](https://blog.bitsacm.in/flutter-vs-react-native/) 38 | -------------------------------------------------------------------------------- /frontend.md: -------------------------------------------------------------------------------- 1 | # Frontend Resources 2 | - Basic HTML & CSS : https://www.codecademy.com/catalog/language/html-css 3 | - Basic JS : https://www.codecademy.com/learn/introduction-to-javascript 4 | - More JS : http://eloquentjavascript.net/ 5 | - DOM manipulation (HTML + JS :disappointed: https://www.codecademy.com/courses/intro-to-the-dom/0/1) 6 | - Positioning Content: https://learn.shayhowe.com/html-css/positioning-content/, https://css-tricks.com/snippets/css/a-guide-to-flexbox/ , don't use tables to position your content (https://www.thoughtco.com/dont-use-tables-for-layout-3468941) 7 | - Responsive Web Design: https://learn.shayhowe.com/advanced-html-css/responsive-web-design/ 8 | - Colors and gradients : https://learn.shayhowe.com/html-css/setting-backgrounds-and-gradients/ 9 | - Forms : https://learn.shayhowe.com/html-css/building-forms/, https://www.javaworld.com/article/2077176/scripting-jvm-languages/using-javascript-and-forms.html 10 | - Web Local Storage : https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API 11 | - Javascript Requests : https://www.codecademy.com/courses/javascript-beginner-en-EID4t/0/1 12 | - More awesome resources: https://www.youtube.com/user/ihatetomatoesblog, https://www.awwwards.com/, http://thecodeplayer.com/ 13 | 14 | ### Projects 15 | - [Checkmate 2019](https://github.com/ashryaagr/Checkmate-2019-2) 16 | ### Tasks 17 | - [Frontend Tasks 2019-20](https://github.com/samina-mulani/Frontend-Tasks) 18 | -------------------------------------------------------------------------------- /func_prog.md: -------------------------------------------------------------------------------- 1 | # Functional Programming Resources 2 | - [Functional Programming in Scala](https://www.coursera.org/specializations/scala) - Course 3 | - [Funkiest Way to Learn Haskell](http://learnyouahaskell.com/) - Haskell Tutorials 4 | - [Python Functional Programming Docs](https://docs.python.org/3/howto/functional.html) 5 | - [Why isn't Functional Programming the norm?](https://www.youtube.com/watch?v=QyJZzq0v7Z4) - Video 6 | - [Functors, Applicatives, And Monads In Pictures](http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html) 7 | - Lambda Calculus 8 | - https://www.inf.fu-berlin.de/lehre/WS03/alpi/lambda.pdf 9 | - https://learnxinyminutes.com/docs/lambda-calculus/ 10 | - [PyCon 2019 David Beazley](https://youtu.be/pkCLMl0e_0k) 11 | - [Array Programming Paradigm](https://bobkonf.de/2019/hsu.html) 12 | - [Static Website Compiler in Haskell](https://github.com/jaspervdj/Hakyll/) 13 | ### Others 14 | - [Effecient Parsing of large text files in Haskell](https://hbtvl.wordpress.com/2015/11/19/efficient-parsing-of-large-text-files-part-1/) 15 | -------------------------------------------------------------------------------- /gamedev.md: -------------------------------------------------------------------------------- 1 | # Game Development 2 | 3 | ## Basic Resources 4 | - [Making Games with Python and PyGame (beginner)](https://inventwithpython.com/pygame/) 5 | - [Official Unity Tutorials](https://learn.unity.com/) - Awesome for starting out with Unity 6 | - [Blender Tutorials](https://www.blender.org/support/tutorials/) 7 | - [BITSACM - Game Development Blogs](https://blog.bitsacm.in/tag/game-development/) 8 | - [Making your first simple game in Python](https://blog.bitsacm.in/making-your-first-simple-game-in-python/) 9 | 10 | 11 | ### Some Projects on GameD 12 | - [DIEP_LAN - Ongoing](https://github.com/ChiragCD/diep_LAN) 13 | - [Bot Programming - Ongoing](https://github.com/twitu/bot_programming) 14 | - [Checkmate 2018 - Finished Project in Unity with Blender Models](https://github.com/7vik/checkmate2018) 15 | -------------------------------------------------------------------------------- /graph_learning.md: -------------------------------------------------------------------------------- 1 | ## Graph Learning 2 | 3 | GL or GRL (Graph Representation Learning) as it is more popularly known is a broad area with a lot of algorithms throught which we can learn basically anything from graph data. 4 | 5 | It includes classical algorithms like PageRank and Cliques to extract information from graphs, or more recently, machine learning based methods. 6 | 7 | This doc has ML based methods primarily for now, will add others later. 8 | 9 | Prereqs: 10 | - ML basics (look at the respective topic.md file in Slack-Stock-DAG) 11 | - DL (more than basics would be required usually) 12 | - PyTorch (there's disadvantages with Tensorflow here) 13 | - Graphs (the math and implementations) 14 | - Databases on a case-to-case basis 15 | 16 | Currently the best structured course on GRL is [CS224W](http://web.stanford.edu/class/cs224w/), and while it's pretty good, most of the learning is throught talks, blogs, papers and code. It's easy to find the important ones through a google search, so I'm focusing only on the topics. 17 | 18 | - Look at [this paper](https://arxiv.org/abs/2005.03675#:~:text=Graph%20representation%20learning%20methods%20have,unsupervised%20representations%20of%20relational%20structure) for an overview of all GRL methods. 19 | 20 | - Node2Vec is a classic algorithms that has been used in a number of places. It uses Random Walks to beautifully encode graphs into fixed-nodes. 21 | 22 | - GNNs or GCNs (Graph Convolutional Networks) are a CNN-like architecture that works when the computational graph isn't fixed-sized and when we have graph like data instead of tensors. 23 | 24 | - The most important libraries in Graph Learning are [Deep Graph Library](dgl.ai) and [PyTorch Geometric](https://github.com/rusty1s/pytorch_geometric) and they are very much in active developments right now. 25 | 26 | - [Video lectures from CS224W](http://snap.stanford.edu/class/cs224w-videos-2019/) are a very good place for all theoretical understanding. After that all recent architectures are available on the PyTorch Geometric Docs. 27 | 28 | - Read up papers, blogs, talks in conferences and code in these libraries! 29 | -------------------------------------------------------------------------------- /hacking.md: -------------------------------------------------------------------------------- 1 | # Hacking 2 | 3 | ## Resources 4 | 5 | - cybrary.it 6 | - New Boston tutorials on networking 7 | - Then try to learn about wargames so you can learn through wargames. One such wargame is Bandit-OverTheWire. 8 | - Security Tube is an amazing place to learn something substantial. 9 | - There are many categories withing hacking also example web, crypto, pwn, forensics, steganography,etc. Learn about them and explore the. 10 | - Go through OWASP top 10 vulnerabilities. And learn about what they are. For example SQL injection. Learn how you can do it. I will share a google drive link for SQL in particular. 11 | - Learn about various common attacks like Man in the middle, DoS/DDoS, XSS, SQli(all types like boolean blind, time blind, error based). 12 | - Learn to use sqlmap for SQL in specific. 13 | - Then one can start participating in CTFs. CTFtime is the website where you will find ongoing capture the flags. It is the place where you can actually practice what you learnt 14 | 15 | ## Tips and Tricks 16 | 17 | If you are serious about this either dual boot your laptop with Kali or dual boot with Ubuntu and use vagrant for Kali. It's also important alongside that you keep learning how to use the various tools provided by Kali Linux. 18 | https://drive.google.com/drive/folders/1g_9Vqoqo5EHT2aionc2nKxMj4bOPbNhu?usp=sharing 19 | This is a small module on basic SQLi 20 | -------------------------------------------------------------------------------- /machine_learning.md: -------------------------------------------------------------------------------- 1 | # Machine Learning in 6 weeks 2 | Following is a weekly plan of learning machine learning for beginners. Resoruces and tasks have been mentioned under each week. 3 | 4 | ## Week 0 5 | For starting with python : see starting 9 lectures of https://www.youtube.com/playlist?list=PL-osiE80TeTskrapNbzXhwoFUiLCjGgY7 6 | And start with pset 6 of https://cs50.harvard.edu/x/2020/psets/6/ 7 | 8 | ## Week 1 9 | Numpy task and Resources: task 01 available at https://github.com/MananSoni42/ML-SIG-2019 10 | 11 | ## Week 2 12 | Linear Regression for single variable from scratch using numpy 13 | Resources : 14 | The tutorials at : https://pythonprogramming.net/machine-learning-tutorial-python-introduction/ 15 | All parts From “Practical Machine Learning tutorial with python - Introduction” to 16 | “ Regression - How to program R squared” 17 | Dataset : https://github.com/ashryaagr/acm_task_dataset . Download this and start working. Use regression and train using the data in train.csv and then compute accuracy using data in test.csv 18 | 19 | ## Week 3 20 | Use sklearn SVM on NASA asteroid dataset and train it to predict the property “hazardous” (last column of data ) of asteroids. You have to only use the data available in nasa.csv file. 21 | Resources : 22 | The tutorials at : https://pythonprogramming.net/machine-learning-python-sklearn-intro/ 23 | Some knowledge of Pandas will be required ..so go through these tutorials : 24 | https://pythonprogramming.net/introduction-python3-pandas-data-analysis/ 25 | 26 | Challenges that you will face : 27 | Some columns are strings. You need to convert them to some integer. ( Try to think of some way to do that ) 28 | Dates are given in various formats. Find some way to convert them to integers to feed them to model. 29 | Some fields ( columns ) are useless ( standard term for this is feature selection ). It might be possible that a field (column ) which contains strings is also useless. 30 | Dataset : https://www.kaggle.com/shrutimehta/nasa-asteroids-classification 31 | 32 | ## Week 4 33 | https://github.com/ashryaagr/ML_Recruitment 34 | You have to fill the Todos of neural_net.py. Resources are provided in Readme. You can skip the task 1. 35 | After completing the Todos, use this Neural Network on MNIST dataset to predict the digit in images 36 | 37 | ## Week 5 38 | Now You have to make a Generative Adverserial Network using the Neural network you just made 39 | 40 | This time you yourself will have to search for resources... But some suggestions are Research papers, lecture on GAN in the series CS231N, tutorial by lan goodfellow ( who is the creator/father of Generative adverserial networks)..you guys can also use the tutoial he presented in NIPS.. Or there are a number of videos on youtube.. Or on tensorflow website in tutorials, they make GAN using tensorflow (but you guys have to make it using the Neural network you wrote) 41 | 42 | Btw you might have to rewrite cost function and prepare 2 separate cost functions.. One for generator and one for discriminator 43 | 44 | ## Deep Learning and cool stuff 45 | - DeepMind Computer Vision : https://www.youtube.com/playlist?list=PLqYmG7hTraZCDxZ44o4p3N5Anz3lLRVZF 46 | This one is very comprehensive and covers most of major recent developments. Btw this playlist was updated very recently updated. 47 | 48 | - NYU Course: https://www.youtube.com/playlist?list=PLLHTzKZzVU9eaEyErdV26ikyolxOsz6mq 49 | This guy will parallely teach you coding in pytorch unlike most others which don't focus on coding or teach in tensorflow (But pytorch is better) 50 | 51 | - Reinforcement Learning: https://spinningup.openai.com/ 52 | 53 | - Natural Language Processing using Deep Learning : http://web.stanford.edu/class/cs224n/ 54 | 55 | # Machine Learning Resource List 56 | 57 | - [BITSACM - A Simple Machine Learning Classifier](https://blog.bitsacm.in/a-simple-machine-learning-classifier/): Tutorial for building a simple machine learning classifier on [BITSACM Blog](https://blog.bitsacm.in). 58 | - [ML ALgorithms Overview](https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/) for a basic understanding of the various ml algorithms 59 | - [Awesome List](https://github.com/ChristosChristofidis/awesome-deep-learning) 60 | - [Adversarial Examples and Adversarial Training](https://www.youtube.com/watch?v=CIfsB_EYsVI&feature=youtu.be) - Lecture Video 61 | - [Network Morphism](https://www.microsoft.com/en-us/research/publication/network-morphism/) - research paper 62 | - [Audio Data Analysis Resource](https://www.analyticsvidhya.com/blog/2017/08/audio-voice-processing-deep-learning/) 63 | - [Probably Caliberation](https://scikit-learn.org/stable/modules/calibration.html) - interesting read 64 | - [Hinton's Capsule Network Series](https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b) 65 | - [General Topics to know](http://www.cs.yale.edu/homes/radev/posts/thingstoknow.txt) 66 | - [Deep Learning Theory](https://stats385.github.io/readings) 67 | - [Visualizing DeepNets](http://yosinski.com/deepvis) 68 | - [DeepNet Recommendations](https://arxiv.org/pdf/1206.5533v2.pdf) - research paper 69 | - [Deep RL Lecture Series](https://sites.google.com/view/deep-rl-bootcamp/lectures) 70 | - [Genetic Algorithm](https://blog.sicara.com/getting-started-genetic-algorithms-python-tutorial-81ffa1dd72f9) - article for beginners 71 | - [Youtube Recommending system Paper](https://dl.acm.org/doi/10.1145/3298689.3346997) 72 | - [FastAI's Tutorials](https://course.fast.ai/) 73 | - [Deep Double Descent](https://openai.com/blog/deep-double-descent/) 74 | - [NLP Datasets](https://datasets.quantumstat.com/) 75 | 76 | ## ML Winter SIGs 77 | - [Beginner Projects](https://github.com/MananSoni42/ML-SIG-2019/) 78 | -------------------------------------------------------------------------------- /maths.md: -------------------------------------------------------------------------------- 1 | # Maths Resource List 2 | 3 | ## Learning resources 4 | 5 | - \[book list\] [Free Math Books](https://medium.com/free-stuff/free-math-books-a83aff081d89) 6 | 7 | ### Undergraduate-level 8 | 9 | - \[course\] [Linear Algebra](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/) lectures by Gilbert Strang. 10 | - \[course\] [MIT Math for CS](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/index.htm) 11 | - \[problems, articles\] [Brilliant](https://www.brilliant.org): Loads of amazing problems and wiki articles on almost anything. 12 | - \[problems\] [Project Euler](https://projecteuler.net/) has good quality math-programming problems. 13 | - \[book\] [Napkin Project](https://web.evanchen.cc/napkin.html) A great (free) book to learn more Math (with almost every topic) 14 | 15 | ### Advanced 16 | 17 | - \[video\] Why use measure theory for probability?: 18 | Measure-theoretic language is widespread in many advanced texts on probability. 19 | If you're unable to appreciate its utility, watch this 3-part video: 20 | [part 1](https://www.youtube.com/watch?v=RjPXfUT7Odo), 21 | [part 2](https://www.youtube.com/watch?v=Q9KOeP-nrYQ), 22 | [part 3](https://www.youtube.com/watch?v=rAYA2Mu51bw). 23 | Then read a bit about [Lebesgue integration](https://www.youtube.com/watch?v=LDNDTOVnKJk), 24 | which helps give a rigorous and general 25 | [definition of 'expected value'](https://en.wikipedia.org/wiki/Expected_value#General_case). 26 | - \[course\] [Dan Spielman's Spectral Graph Theory](http://www.cs.yale.edu/homes/spielman/) 27 | - \[book\] Topology by James R. Munkres - A well-written book for topology even for beginners. 28 | 29 | ## Blogs, visualizations, references 30 | 31 | - \[reference\] [TheoremDep](https://sharmaeklavya2.github.io/theoremdep/) - Track Dependencies between Theorems 32 | - \[visualization\] [3blue1brown](https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw) - Gant Sanderson's video series for math visualization 33 | - \[tool/library\] [NetworkX Docs](https://networkx.github.io/documentation/stable/tutorial.html) for Graph Theory in Python 34 | - \[visualization, tutorial\] [D3 Graph Theory](https://d3gt.com/index.html) - Interactive Graph Theory Tutorials for Beginners 35 | - \[blog\] [Medium / Cantor's Paradise](https://medium.com/cantors-paradise) 36 | - \[blog\] [Math Intersect Programming](https://jeremykun.com/main-content/) - Amazing blog by Jeremy Kun on mathematical applications in computer science. 37 | - \[visualization\] [The Evolution of Trust](https://ncase.me/trust/): This is an example of how math affects the society. Illustratively beautiful! 38 | - \[blog\] [11011110](https://11011110.github.io) - Interesting Math Puzzles and a good blog with computer science and math. 39 | - \[blog\] [Problem-Solving Strategies](https://terrytao.wordpress.com/2010/10/21/245a-problem-solving-strategies/) - Terrance Tao's problem solving strategies for Elementary Analysis. 40 | -------------------------------------------------------------------------------- /open_source.md: -------------------------------------------------------------------------------- 1 | # Open-Source 2 | 3 | ## Resources: 4 | - What is Git and GitHub? https://www.youtube.com/watch?v=SWYqp7iY_Tc 5 | - Make your first open-source contribution in 5 minutes: https://firstcontributions.github.io/ 6 | - Interesting open-source projects to contribute: https://up-for-grabs.net/ 7 | - All you need to know about Google Summer of Code: https://github.com/FossMec/Awesome-GSoC-List 8 | - Guide to crack GSoC: https://medium.com/@apb7/how-to-crack-google-summer-of-code-gsoc-211a69fd056a 9 | -------------------------------------------------------------------------------- /p2p_networks.md: -------------------------------------------------------------------------------- 1 | # Peer2Peer Networks - Syllabus/Resources 2 | 3 | - [ETH Zurich Networks](https://comm-net.ethz.ch/): Good Introductory Course 4 | - [Beej's Guide](https://beej.us/guide/bgnet/): Great intro to network programming in C 5 | - [Quick Twisted Introduction](http://krondo.com/an-introduction-to-asynchronous-programming-and-twisted/): Twisted Introductory Tutorials 6 | - [MITOCW Computer Networks](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-829-computer-networks-fall-2002/lecture-notes/) 7 | - [Go Networking Tutorials for Blockchain](https://medium.com/@mycoralhealth/code-a-simple-p2p-blockchain-in-go-46662601f417): Simple Tutorial in Go 8 | - [Bittorrent Specification](https://wiki.theory.org/index.php/BitTorrentSpecification) (The Bittorrent specification is much more well documented than DC++) 9 | ### Projects 10 | - [DC CLI](https://github.com/udoprog/python-adc) 11 | ### Other Resources 12 | - Unix Network Programming - R. Stevens Book 13 | - [Beej's Guide](https://beej.us/guide/bgnet/) (Great intro to network programming, its in C though) 14 | - [Very Basic NodeJS Tutorials](https://mafintosh.github.io/p2p-workshop/build/01.html) 15 | - [Tornado Web Docs](https://www.tornadoweb.org/en/stable/guide/intro.html) 16 | 17 | -------------------------------------------------------------------------------- /python.md: -------------------------------------------------------------------------------- 1 | # Python Resource List 2 | - [Python 3 Docs](https://docs.python.org/3/) 3 | - [OOP in Python](https://www.youtube.com/playlist?list=PL-osiE80TeTsqhIuOqKhwlXsIBIdSeYtc) - tutorials for Object Oriented Programming in Python 4 | - [D Bader's Advice](https://dbader.org/blog/python-projects-inspiration) for beginners 5 | - [Python Decorators](https://blog.apcelent.com/python-decorator-tutorial-with-example.html) 6 | - [Python Module of the Week](https://pymotw.com/3/) - Great place to learn about different python modules 7 | - [Python Programming Style](https://docs.python-guide.org/writing/style/) 8 | - [Time Complexity](https://wiki.python.org/moin/TimeComplexity) 9 | - [Expert Topics In Python](https://www.youtube.com/watch?v=7lmCu8wz8ro) 10 | - [Simulation Pointers in Python](https://realpython.com/pointers-in-python/#simulating-pointers-in-python) 11 | - [Memory Management in Python](https://realpython.com/python-memory-management/) 12 | - [Intro to Func Programming](https://codewords.recurse.com/issues/one/an-introduction-to-functional-programming) 13 | - [Fun with Python's Newer Tools](https://archive.org/details/pyvideo_367___fun-with-python-s-newer-tools) - PyCon2011 Video 14 | - [LearnPython.org](https://www.learnpython.org/) - For beginning learning python 15 | - [Python tutorials by Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU) - Complete Tutorial on python from scratch to applications. 16 | -------------------------------------------------------------------------------- /quantum.md: -------------------------------------------------------------------------------- 1 | # Quantum Computing Resources 2 | - [quantum.country](quantum.country/qcvc) - A great place to start for beginners, establishes a good foundation 3 | - [Qiskit Textbook](https://qiskit.org/textbook/preface.html) - Nice place to learn and implement quantum algorithms 4 | - [Quantum Computing CS Perspective](https://www.amazon.com/Quantum-Computing-Computer-Scientists-Yanofsky/dp/0521879965) 5 | - [Griffiths of QC](http://mmrc.amss.cas.cn/tlb/201702/W020170224608149940643.pdf) 6 | - [QML Course](https://www.edx.org/course/quantum-machine-learning-2) - To be done after "Griffiths of QC" 7 | - Learn a programming framework/language: 8 | Cirq, Q#, Qiskit, Xanadu, etc are the most popular ones and can be learned from their official documentation. 9 | - https://www.quora.com/How-does-the-fact-that-qubits-can-be-both-0-and-1-at-the-same-time-allows-for-faster-computations/answer/Ben-Curthoys?ch=10&share=155ccf28&srid=xder 10 | - [Quantum Computing for Computer Scientists](https://youtu.be/F_Riqjdh2oM) 11 | -------------------------------------------------------------------------------- /reinforcement_learning.md: -------------------------------------------------------------------------------- 1 | ## Reinforcement Learning 2 | 3 | RL is very mathematical. It is advisable to keep the following prereqs ready before starting out with RL. (Look at the respective `topic.md` files in Slack-Stock-DAG): 4 | - Python 5 | - Calculus 6 | - Probability and Statistics 7 | - Linear Algebra 8 | - ML and DL 9 | - PyTorch (or Tensorflow) 10 | - Data Structures and Algorithms 11 | 12 | Here's the Pathway for RL: 13 | 14 | - Watch David Silver's [course](https://www.davidsilver.uk/teaching/) on RL basics. 15 | - Read the first 7 chapters of [Hands on Deep Reinforcement Learning](https://www.amazon.in/Deep-Reinforcement-Learning-Hands-Q-networks-ebook/dp/B076H9VQH6) to get an idea of how DL and RL meet and how DQNs work and also some nice exposure to code. 16 | - [Deep RL Bootcamp](https://sites.google.com/view/deep-rl-bootcamp/lectures) and [CS285](http://rail.eecs.berkeley.edu/deeprlcourse/) are the most important courses for RL (in 2020). Use them for building up a strong theoretical background. 17 | - At any point you want to get deeper into any classic RL algorithm, dig deeper into the respective chapter in [Sutton Barto 2e](https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf) 18 | - When you want to practice DQNs and PGs, you can take help from these implementations: [Rainbow is all you need](https://github.com/Curt-Park/rainbow-is-all-you-need) and [PG is all you need](https://github.com/MrSyee/pg-is-all-you-need). 19 | - Read a lot of papers, try out own experiments, etc. [Spinning Up](https://spinningup.openai.com/en/latest/) should help a lot with this. 20 | -------------------------------------------------------------------------------- /sudo_bash.md: -------------------------------------------------------------------------------- 1 | # Unix and CLI Resource List 2 | 3 | - [Ubuntu/Debian Commands List](https://milq.github.io/useful-terminal-commands-ubuntu-debian/) or [50 Best Commands](https://www.ubuntupit.com/the-50-best-linux-commands-to-run-in-the-terminal/) for knowing good simple commands. 4 | - [Archwiki's List of Software and Commandline tools](https://wiki.archlinux.org/index.php/List_of_applications): List of Command Line Tools 5 | - `compgen -ca` for list of commands in your terminal! 6 | - [Luke Smith's Playlists](https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA/playlists) - Videos for more extreme terminal stuff! 7 | - [BITSACM - Unix SIG Slides](https://docs.google.com/presentation/d/1AJCzVH-kLzTQ65O0ee3LGSMUiY7p3giB8hSb2mvRLHo/edit#slide=id.g35f391192_029): Slides from the Unix SIG 8 | - [Bash Shortcuts for Productivity](https://skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/) 9 | - [Explain Shell](https://youtu.be/F_Riqjdh2oM): Explains command-line arguments (Great for beginners) 10 | - [Bash One Liners](http://www.bashoneliners.com/): Collection of One-Line bash scripts for command-line tricks and data processing 11 | - [Data Science at the Command Line](https://www.datascienceatthecommandline.com/) 12 | - [MIT - Missing Sem of CS](https://missing.csail.mit.edu/): A mini-guide/course for understanding the shell commands and other tools. 13 | - [Archwiki](https://wiki.archlinux.org): For terminal based programs or errors related BIOS etc. sometimes 14 | -------------------------------------------------------------------------------- /systems.md: -------------------------------------------------------------------------------- 1 | # Systems Resource List 2 | 3 | - First 4 chapters of CCENT/CCNA ICND1 100-105 by Wendell Odom, this will give you working knowledge of basic components used to implement switching and routing. You can skip any material focusing on Cisco devices. 4 | - Network layer chapter from Computer Networks: A top down approach by Kurose and Ross to learn about routing algorithms.This should give you an intermediate understanding of modern internet architecture 5 | - Unix Network Programming by R. Stevens 6 | - The book: [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/#book-chapters) 7 | - [Linux File System](https://www.youtube.com/watch?v=HbgzrKJvDRw) - Video on the root folders for beginners 8 | - https://dzone.com/articles/serverless-is-great-serverless-sucks-making-sense 9 | - [Socket Programming Tasks](https://tinyurl.com/w5uh9m3) 10 | 11 | ## Cool Projects 12 | - [trinker-userspace](https://github.com/twitu/tinker-userspace) 13 | 14 | ## Tips and Tricks 15 | - Best way to explore systems engineering is to read research papers. 16 | 17 | ## Others 18 | - [A view on Monolithic Architecture](https://changelog.com/posts/monoliths-are-the-future) 19 | - [What is /proc ?](https://ops.tips/blog/what-is-slash-proc/) 20 | -------------------------------------------------------------------------------- /theoretical.md: -------------------------------------------------------------------------------- 1 | # Theoretical CS Resource List 2 | 3 | Theoretical CS is a branch of computer science that focuses on the mathematical aspects of CS. 4 | In contrast to applied CS, that focuses more on solving real-life problems 5 | and evaluates techniques mostly by experimentation, theoretical CS models problems abstractly 6 | and gives mathematical proofs of efficiency of techniques. 7 | For example, theoretical CS generally looks at worst-case time complexity of an algorithm 8 | whereas most real-life applications worry about the average running time of an implementation of the algorithm. 9 | 10 | TCS covers a wide variety of topics including 11 | algorithms, data structures, computational complexity, parallel and distributed computation, 12 | quantum computation, automata theory, information theory, cryptography, 13 | program semantics and verification and theory of machine learning. 14 | 15 | ## Mathematical foundations for theoretical CS 16 | 17 | - [MIT course on 'Math for CS'](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/): 18 | - This course covers the mathematical background required for studying algorithms 19 | (and theoretical CS in general). 20 | Topics covered are proof techniques, graph theory, combinatorics, recurrences and probability. 21 | - You should read the [lecture notes (pdf)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/) 22 | and optionally watch the [video lectures](https://www.youtube.com/playlist?list=PLB7540DEDD482705B). 23 | 24 | - Linear Programming: Must-know for people who want to study advanced algorithms or approximation algorithms 25 | or those who want to do research in theoretical CS. 26 | - Lecture notes by Tim Roughgarden: 27 | - [lecture 1](http://timroughgarden.org/w16/l/l7.pdf): Introduction and Applications 28 | - [lecture 2](http://timroughgarden.org/w16/l/l8.pdf): Linear Programming Duality (Part 1) 29 | - [lecture 3](http://timroughgarden.org/w16/l/l9.pdf): Linear Programming Duality (Part 2) 30 | - [lecture 4](http://timroughgarden.org/w16/l/l10.pdf): The Minimax Theorem and Algorithms for Linear Programming 31 | - [How to find the dual of a complex linear program](http://www.cs.columbia.edu/coms6998-3/lpprimer.pdf): 32 | Useful if your linear program is hard to express in standard form. 33 | 34 | ## Theory of Computation 35 | 36 | - \[book\] Elements of the Theory of Computation by Lewis and Papadimitriou: 37 | - The first 3 chapters: languages, finite automata and context-free languages 38 | (and probably the fourth chapter - on Turing machines) are very useful. 39 | - For the last 2 chapters, there are better alternatives in books on computational complexity. 40 | - The first 3 chapters are prerequisites for a course on compilers and 41 | they are also given more weight in BITS Pilani's Theory of Computation course. 42 | - This book is more mathematically rigorous than some other popular books on the same subject 43 | (which I think is a good thing, but YMMV). 44 | 45 | ## Algorithms 46 | 47 | - \[book\] CLRS: Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein: 48 | - The first 5 chapters will give you the bare-minimum foundation for understanding and analyzing algorithms. 49 | - Chapters 6 to 12, chapter 15 and 16 and the chapters on graph algorithms present 50 | well-known and frequently-used algorithms. 51 | These will familiarize you with techniques commonly used in designing and analyzing algorithms. 52 | - Solving the exercise problems is strongly recommended. 53 | Also, many of these problems (or their variants) are common interview questions. 54 | - You may read additional chapters as per you interest and need. 55 | - People interested in cryptography and competitive programming 56 | can read the chapter on number-theoretic algorithms. 57 | People interested in advanced algorithms and complexity theory should read the last 2 chapters: 58 | NP-completeness and approximation algorithms. 59 | 60 | ## Computational Complexity 61 | 62 | - \[book\] [Computional Complexity by Arora and Barak](https://theory.cs.princeton.edu/complexity/book.pdf): 63 | Great for taking a deep dive in complexity theory. 64 | If you're only interested in NP-completeness and basic complexity classes, 65 | the first 3 chapters will be sufficient. 66 | 67 | ## Others 68 | 69 | - [TheoremDep](https://sharmaeklavya2.github.io/theoremdep/): 70 | Large list of theorems commonly required in theoretical computer science. 71 | - [Competitive programming](competitive.md) is a good way to hone your algorithmic problem-solving skill. 72 | - Facility in linear algebra and probability is required for advanced algorithms 73 | (see [maths.md](maths.md)). 74 | - [Cryptography](cryptography.md) is also considered a part of theoretical CS. 75 | - http://jroweboy.github.io/c/asm/2015/01/26/when-is-main-not-a-function.html 76 | -------------------------------------------------------------------------------- /websecurity.md: -------------------------------------------------------------------------------- 1 | * [Stanford Web Security course](https://web.stanford.edu/class/cs253/) 2 | * [Natas OverTheWire wargame](https://overthewire.org/wargames/natas/) 3 | * [The Web Application Hacker's Handbook](http://index-of.es/EBooks/11_TheWeb%20Application%20Hackers%20Handbook.pdf) 4 | * [PortSwigger](https://portswigger.net/web-security) 5 | --------------------------------------------------------------------------------