🌱 Series khóa học về Computer Science
Bài viết này mình sẽ giới thiệu với mọi người về một khóa học Open Source khá bổ ích và nổi tiếng. Các bạn học về điện - điện tử hay lập trình chắc hẳn đã từng nghe qua các khóa học CSxx (Computer Science) của Harvard. Các topic trong chuỗi khóa học này sẽ cover cả các khóa trong CSxx.
Mình vẫn đang follow các khóa học trong series này để học thêm tiếng anh cũng như tìm hiểu sâu hơn về mặt công nghệ, cũng như tham khảo các khóa học của nước ngoài để phát triển các khóa học sau này. Nếu bạn cũng có những hứng thú giống như mình thì có thể save/share bài viết này về để follow chương trình học cũng như chia sẻ cho bạn bè cùng học nhé!
Về mặt tổng quan, chương trình giảng dạy OSSU là một nền tảng giáo dục hoàn chỉnh về khoa học máy tính sử dụng các tài liệu trực tuyến, nó dành cho những người muốn có nền tảng phù hợp, toàn diện về các khái niệm cơ bản cho tất cả các ngành nghề liên quan đến Computer Science. Khóa này tổng hợp kiến thức từ các khóa học của những trường đại học tốt nhất thế giới như Harvard, Princeton, MIT, ...
Toàn bộ chương trình học sẽ chia làm các phần dưới đây:
- Intro CS - Giới thiệu chung về lập trình và khóa học máy tính - các bạn có thể tham gia học thử để xem ngành nghề này có phù hợp với mình hay không.
- Core CS - Nội dung tương ứng với 3 năm đầu tiên của chương trình giảng dạy về khoa học máy tính.
- Advance CS - Nội dung tương ứng với chương trình năm cuối của ngành khoa học máy tính.
- Final Project - Project cuối cùng giống như đồ án tốt nghiệp.
💬 Điều kiện đầu vào của khóa học
- Khóa học dành cho những bạn đã có base kiến thức về toán, phần Core CS yêu cầu người học ít nhất đã hoàn thành các môn toán trung học, bao gồm đại số, hình học, và tính toán cơ bản.
- Khóa Advanced CS yêu cầu người học đã học toàn bộ nội dung của phần Core CS, lúc này họ sẽ có đủ kiến thức để quyết định lựa chọn module học nào.
- Khóa Advanced CS còn yêu cầu người học đã có kiến thức vật lý cơ bản, tương đương chương trình ở trung học.
👉 Intro CS
🔻 Introduction to Programming
Cources | Duration | Prerequisites |
---|---|---|
Introduction to Programming | 10 weeks | None |
🔻 Introduction to Computer Science
Cources | Duration | Prerequisites |
---|---|---|
Introduction to Computer Science and Programming using Python | 9 weeks | Algebra |
👉 Core CS
🔻 Core Programming
Cources | Duration | Prerequisites |
---|---|---|
Systematic Program Design (Textbook) | 13 weeks | None |
Programming Languages, Part A | 5 weeks | Systematic Program Design |
Programming Languages, Part B | 3 weeks | Part A |
Programming Languages, Part C | 3 weeks | Part B |
Object-Oriented Design | 4 weeks | Basic Java |
Design Patterns | 4 weeks | OOP |
Software Architecture | 4 weeks | Design Patterns |
🔻 Core Math
Cources | Duration | Prerequisites |
---|---|---|
Calculus 1A: Differentiation | 13 weeks | High School Math |
Calculus 1B: Integration | 13 weeks | Calculus 1A |
Calculus 1C: Coordinate Systems & Infinite Series | 6 weeks | Calculus 1B |
Mathematics for Computer Science | 13 weeks | Calculus 1C |
🔻 CS Tools
Sau phần kiến thức lý thuyết sẽ là phần quan trọng không kém - sử dụng các công cụ lập trình. Cách sử dụng Editors, Shell, viết Script, command line, debugger, ...
Cources | Duration | Prerequisites |
---|---|---|
The Missing Semester of Your CS Education | 2 weeks | None |
🔻 Core Systems
Cources | Duration | Prerequisites |
---|---|---|
Build a Modern Computer from First Principles: From Nand to Tetris | 6 weeks | C Programming Language |
Build a Modern Computer from First Principles: From Nand to Tetris | 6 weeks | Part I |
Operationg System: Three Easy Pieces | 10-12 weeks | Nand to Tetris Part II |
Compputer Networking: A Top-Down Approach | 8 weeks | algebra, probability, basic CS |
🔻 Core Theory
Cources | Duration | Prerequisites |
---|---|---|
Divide and Conquer, Sorting and Searching, and Randomized Algorithms | 4 weeks | Programming Language, Mathematics |
Graph Search, Shortest Paths, and Data Structures | 4 weeks | |
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming | 4 weeks | above course |
Shortest Paths Revisited, NP-Complete Problems and What to do about them | 4 weeks | above course |
🔻 Core Security
Cources | Duration | Prerequisites |
---|---|---|
Cybersecurity Fundamentals | 8 weeks | |
Principles of Secure Coding | 4 weeks | |
Identifying Security Vulnerabilities | 4 weeks |
Tiếp theo là chọn một trong trong 2 khóa dưới tùy theo ngôn ngữ lập trình mà bạn thành thạo.
Cources | Duration | Prerequisites |
---|---|---|
Identifying Security Vulnerabilities in C/C++ Programming | 4 weeks | |
Exploiting and Securing Vulnerabilities in Java Applications | 4 weeks | |
🔻 Core Applications
Cources | Duration | Prerequisites |
---|---|---|
Databases: Modeling and Theory | 2 weeks | Core Programming |
Databases: Relational Databases and SQL | 2 weeks | Core Programming |
Databases: Semistructured Data | 2 weeks | Core Programming |
Machine Learning | 11 weeks | Basic Coding |
Computer Graphics | 6 weeks | C++ or Java, linear algebra |
Software Engineering: Introduction | 4 weeks | Core Programming |
🔻 Core Ethics
Cources | Duration | Prerequisites |
---|---|---|
Ethics, Technology and Engineering | 9 weeks | None |
Introduction to Intellectual Property | 4 weeks | None |
Data Privacy Fundamentals | 3 weeks | None |
👉 Advanced CS
Sau khi hoàn thành các khóa ở Core CS, bạn có thể chọn một trong những tập hợp khóa Advanced CS theo sở thích hoặc career path của mình.
🔻 Advanced Programming
Cources | Duration | Prerequisites |
---|---|---|
Parallel Programming | 4 weeks | Scala Programming |
Compilers | 9 weeks | None |
Introduction to Haskell | 14 weeks | None |
Learn Prolog Now! | 12 weeks | None |
Software Debugging | 8 weeks | Python, OOP |
Software Testing | 4 weeks | Python |
🔻 Advanced Theory
Cources | Duration | Prerequisites |
---|---|---|
Theory of Computation | 13 weeks | Mathematics, logic, algorithms |
Computational Geometry | 16 weeks | Algorithms, C++ |
Game Theory | 8 weeks | Mathematical thinking, probability, calculus |
🔻 Advanced Information Security
Cources | Duration | Prerequisites |
---|---|---|
Web Security Fundamentals | 5 weeks | Understanding Basic Web Technologies |
Security Governance & Compliance | 3 weeks | None |
Digital Forensics Concepts | 3 weeks | Core Security |
Secure Software Development: Requirements, Design, and Reuse | 7 weeks | Core Programming and Core Security |
Secure Software Development: Implementation | 7 weeks | Secure Software Development: Requirements, Design, and Reuse |
Secure Software Development: Verification and More Specialized Topics | 7 weeks | Secure Software Development: Implementation |
🔻 Advanced Math
Cources | Duration | Prerequisites |
---|---|---|
Essence of Linear Algebra | - | High school math |
Linear Algebra | 14 weeks | corequisite: Essence of Linear Algebra |
Introduction to Numerical Methods | 14 weeks | Linear Algebra |
Introduction to Formal Logic | 10 weeks | Set Theory |
Probability | 15 weeks | Differentiation & Integration |
👉 Final Project
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Fullstack Open | 12 weeks | 15 hours/week | programming |
Modern Robotics (Specialization) | 26 weeks | 2-5 hours/week | freshman-level physics, linear algebra, calculus, linear ordinary differential equations |
Data Mining (Specialization) | 30 weeks | 2-5 hours/week | machine learning |
Big Data (Specialization) | 30 weeks | 3-5 hours/week | none |
Internet of Things (Specialization) | 30 weeks | 1-5 hours/week | strong programming |
Cloud Computing (Specialization) | 30 weeks | 2-6 hours/week | C++ programming |
Data Science (Specialization) | 43 weeks | 1-6 hours/week | none |
Functional Programming in Scala (Specialization) | 29 weeks | 4-5 hours/week | One year programming experience |
Game Design and Development with Unity 2020 (Specialization) | 6 months | 5 hours/week | programming, interactive des |
Trên đây là tóm tắt và giới thiệu về tổng quan các khóa học trong OSSU, như mình đã học tương đối các khóa trong đây và cảm nhận nó khá hữu ích cho các bạn mong muốn theo mảng lập trình / Khóa học máy tính nói chung, cũng như một số liên quan đến tư duy logic, tư duy về toán.
Rất mong những khóa học trên đây có thể giúp đỡ các bạn mới bắt đầu học tập và tiếp cận với mảng này, để những người "đồng nghiệp" sau này đều có cái nền vững chắc trước khi bước chân vào con đường sự nghiệp phía trước 😅!
💗 Dưới đây là link bài viết gốc và cũng là link khóa học gốc mà bài viết trên tham khảo - https://cs.ossu.dev/#core-cs