π Path to hack Computer Science (BTech) at Nirma University
- Summary
- Disclaimer
- Prerequisites
- Curriculum
- Exam Preparation checklist
- Important Websites
- Additional Resources
- YouTube channels to subscribe
- Binge Worthy
- Contributing
- Ask for help
- References
This curriculum was designed to help you with your Bachelor's for computer engineering using online material. The aim is to give you a complete understanding of the field including industry standards and best practices. The goal is not to score high grades although if followed correctly scoring marks will be easy. We have compiled some of the best resources for each domain available freely online.
The courses prescribed are from the top universities and often best in their field and often there are no substitutes. Still feel free to post an issue if you have found a resource that could help us.
This course was designed by students at Nirma University and cannot substitute a Bachelor's Degree. This curriculum doesn't guarantee good grades or a job. You are solely responsible if you choose to pursue this curriculum or any of the below-mentioned courses.
These courses are in addition to the text prescribed in the syllabus and thus it is very important to read the text first and use these resources in a complementary manner.
These aren't prerequisites you should be already knowing rather these are concepts which are better if cleared before taking up the regular courses.
-
Introduction to Computer Science CS50 - edX
You don't need to complete the whole course. However, you are expected to complete the course until where it deviates from C and moves on to python. Also if you have the time you can complete the course.
-
Learning How to Learn - Coursera (Optional)
This course teaches you a lot about how your brain works and what are the best memorization techniques. You can skip this if you are confident with your learning skills.
-
Electrical Engineering - Khan Academy
If you need a refresher for core math or science then please go through these videos.
I also made a playlist that has some MS Word Tutorials. These wil come in handy while documenting and researching.
Subject Code | Subject | Prerequisites |
---|---|---|
SP105 | ICT Tools and Cyber Security | none |
CE104 | Computer Programming | none |
MA102 | Calculus and Differential Equations | Calculus basics |
ME103 | Engineering Graphics | none |
HS101B | English Communication | none |
CY102 | Chemistry | Organic Chemistry basics |
CL103 | Environmental Studies | none |
Theory
Practical
Theory
Theory
- Precalculus - Khan Academy
- Calculus - Khan Academy
- Differential Equations - Khan Academy
- Single variable calculus - MIT OCW
Theory
Subject Code | Subject | Prerequisites |
---|---|---|
ME104 | Mechanical Workshop | none |
EE103 | Elements of Electrical and Electronics Engineering | none |
EE104 | Electrical Workshop | none |
CE105 | Introduction to Computer Science and Engineering | none |
MA202 | Linear Algebra | Matrices & Determinants |
PY103 | Physics | Basics of Quantum Mechanics, Ray Optics |
SP104 | Law and Engineering | none |
SP103 | Design Thinking | none |
Theory
Theory
- Computer Science - Khan Academy
- Introduction to Computer Science and Programming using Python - MITx edX
Subject Code | Subject | Prerequisites |
---|---|---|
EC321 | Basic Electronics | EEE |
CE301 | Digital Systems | none |
CE302 | Object Oriented Programming | programming |
CE303 | Mathematical foundation of Computer Science | none |
SS342 | ICT Tools and Security | none |
SP343 | Entrepreneurship | none |
SP344 | Community Services | none |
MA306 | Applied Mathematics | Calculus |
Theory
- Analog Electronics Neso Academy - YouTube playlist
- JK smart classes - YouTube playlist (Optional) This is only for beginners who don't have any prior knowledge of the subject.
Theory
- Neso Academy - YouTube playlist
- Build a Modern Computer from First Principles: From Nand to Tetris - Coursera
- Digital Circuits - MITx edx
Theory/Practical
- Java Tutorial - javaTpoint
- Java Tutorial - Tutorialspoint
- Fork Java - GeeksforGeeks
- Learn Java - Codeacademy
- Java Tutorial - freecodecamp
- Java Programming Tutorials - thenewboston This is only for very beginners.
Theory
Theory/Practical
Subject Code | Subject | Prerequisites |
---|---|---|
CE401 | Data Communication | none |
CE402 | Computer Organization | Digital Systems |
CE403 | Data Structures | CP / AOP |
MA403 | Probability Statistics and Numerical Analysis | none |
CE404 | Seminar | none |
CE405 | Mini Project - I | none |
SP341 | Ethics and Values | none |
SS341 | Economics for Engineers | none |
CE406 | Computer Peripherals Workshop | none |
Theory
Theory/Practicals
- Data Structures- GeeksforGeeks
- Data Structures mycodeschool - YouTube playlist
- Data Structures - Coursera
- Data Structures and Algorithms, NPTEL - YouTube playlist
Theory
Theory
-
Introduction to Psychology with Paul Bloom, Yale - Coursera Optional
-
Maps of Meaning, Jordan Peterson Optional
Theory
- Crash Course: Economics - YouTube playlist
- Macroeconomics - Khan Academy
- Microeconomics - Khan Academy
- Finance and capital markets - Khan Academy Optional
Subject Code | Subject | Prerequisites |
---|---|---|
CE501 | Theory of Computation | MFCS |
CE502 | Database Management System | programming |
CE503 | Computer Networks | Data Communication |
CE504 | Operating Systems | AOP/EOP |
IT502 | Web Designing | programming |
SS562 | Law for Engineers | none |
SP501 | Fractional Course | none |
CE505 | Mini Project - II | none |
This is the most abstract and fundamental subject of Computer Science so you might want to pay extra attention to this subject.
Theory
- Ravindrababu Ravula - YouTube playlist
- Neso Academy - YouTube playlist
- Sanchit Jain - YouTube playlist
- Automata Theory - Stanford lagunita(Optional)
Knowledge from this subject will be helpful in most of the applications.
Theory
- Stanford Database Courses- Stanford lagunita
- Knowledge Gate - YouTube playlist
- Gate Smashers - YouTube playlist
Practicals
Theory
- Introduction to Computer Networking - Stanford lagunita
- The Bits and Bytes of Computer Networking - Coursera
Practicals
This course will be very helpful at the time of interviews and as a CS student, you must have the core concepts clear.
Theory:
Practicals:
Theory
Practicals
- HTML5 Tutorial - W3Schools
- CSS Tutorial - W3Schools
- JavaScript Tutorial- W3Schools
- Responsive Web Design - freeCodeCamp
- Traversy media - YouTube
Theory
Subject Code | Subject | Prerequisites |
---|---|---|
CE601 | Design and Analysis of Algorithms | Data Structures |
IT601 | Software Engineering | OOP |
SS561 | Creativity and Innovation | none |
CE602 | Mini Project- III | none |
SP601 | Capstone Course ( Computer Engineering) | none |
CE621 | Java Technologies (Elective I) | OOP |
CE661 | Mobile Applications Development Technologies (Elective I) | OOP |
IT652 | Network Security and Encryption (Elective II) | none |
IT662 | Cloud Computing (Elective II) | none |
CE623 | Machine Learning (Elective III) | linear algebra, statistics |
CE633 | Data Mining (Elective III) | statistics |
SS701 | Organizational Behaviour | none |
Theory
- Design and Analysis of Algorithms - NPTEL
- Algorithms by Abdul Bari - Youtube playlist
- Algoritms by Ravindrababu Ravula - Youtube
- Steven Skiena - YouTube playlist
- Algorithms: Design and Analysis, Part I - Stanford Lagunita
- Algorithms: Design and Analysis, Part II - Stanford Lagunita
Theory
If you need a refresher in linear algebra or probability, you can find resources above.
Theory
- Intro to Statistics - Udacity Optional
- Machine Learning, Stanford - Coursera
- Machine Learning Crash Course - Google Developers
- Learning from Data, Caltech - Youtube playlist For beginners
- Introduction to Machine Learning, fast.ai - Youtube playlist
Theory
- Intro to Statistics - Udacity Optional
- Data Mining - NPTEL
- Learning from Data, Caltech - Youtube playlist For beginners
- Mining Massive Datasets - Stanford Lagunita
Subject Code | Subject | Prerequisites |
---|---|---|
IT724 | Artificial Intelligence | none |
IT794 | Compiler Construction | THOC |
CE701 | Interfacing with Microprocessor | none |
CE703 | Open source development lab | none |
SP701 | Practical Training | none |
CE702 | Minor Project | none |
IT7F4 | Deep Learning | none |
Theory
- Introduction to Artificial Intelligence - UC Berkley
- Well Academy - YouTube playlist
- Intro to AI - Udacity
- NPTEL Videos by Dr. Dasgupta
- Artificial Intelligence - MIT - Youtube
Theory
Theory
- Deep Learning by Ian Goodfellow
- Convolutional Neural Networks for Visual Recognition - Stanford
- CNN notes - Stanford
- Deeplearning.ai Course
Practicals
Subject Code | Subject | Prerequisites |
---|---|---|
CE801 | Major Project | none |
- Project Based Learning
- Mega Project List
- Awesome Deep Learning Project Ideas
- open-source-ideas
- Project Ideas - OSIRIS Lab
- Better project ideas - Medium
- Complete Syllabus by reading prescribed text or watching videos
- Go through lecture notes
- Solve Tutorials
- Solve previous year's question paper
At this point, several resources might be repeating themselves but we don't want to miss any.
- Qasim's Drive
- OSSU Computer science
- GitHub RΓ©sumΓ©
- Coding Interview University
- Awesome CS Courses
- developer-roadmap
- A collection of .gitignore templates
- Curated list of awesome lists
- Learn_Computer_Science_in_5_Months
- what-happens-when
- front-end-interview-handbook
- Front-End-Checklist
- python-guide
- Public APIs
- Project Guidelines
- Udacity Nanodegrees
- The System Design Primer
- The Open-Source Data Science Masters
- awesome-flutter
- Every Programmer Should Know
- Papers with code
- Computer Science courses with video lectures
- Data Science Resources
- List of Free Learning Resources
- Best-websites-a-programmer-should-visit
It's quite easy to waste a lot of time on YouTube, subscribe to these channels and you might end up learning something as well.
List
Have an awesome channel name that isn't on the list, feel free to add it to the list.
No one likes to study at all times, here are a few TV shows and movies you must watch.
If you find a link broken or have better alternative resources you can contribute by submitting an issue or a pull request.
You can directly interact using issues. I may not be able to solve all your problems but I can provide you with the right guidance. You can reach me out at [email protected]