🌱 Series khóa học về Computer Science

🌱 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

    Mục tiêu của phần này đơn giản là giới thiệu về lập trình cũng như ngành khoa học máy tính - Computer Science.

    🔻 Introduction to Programming

                                Cources                               DurationPrerequisites
Introduction to Programming10 weeksNone

    🔻 Introduction to Computer Science

                                Cources                               DurationPrerequisites
Introduction to Computer Science and
Programming using Python
9 weeksAlgebra

    👉 Core CS

    🔻 Core Programming

    Giới thiệu về các nguyên tắc và ngôn ngữ lập trình cơ bản - Object Oriented, Design Pattern, Software Architecture.

                                  Cources                    DurationPrerequisites
Systematic Program Design (Textbook)13 weeksNone
Programming Languages, Part A5 weeks
Systematic
Program
Design
Programming Languages, Part B3 weeksPart A
Programming Languages, Part C3 weeksPart B
Object-Oriented Design4 weeksBasic Java
Design Patterns4 weeksOOP
Software Architecture4 weeksDesign Patterns

    🔻 Core Math

    Toán rời rạc là môn cơ sở không thể thiếu nếu bạn học các ngành kỹ thuật ở đại học, đây là các môn liên quan chặt chẽ đến việc học tập, nghiên cứu các thuật toán và cấu trúc dữ liệu sau này. 

                                  Cources                    DurationPrerequisites
Calculus 1A: Differentiation13 weeksHigh School Math
Calculus 1B: Integration13 weeks
Calculus 1A
Calculus 1C: Coordinate Systems &
Infinite Series
6 weeksCalculus 1B
Mathematics for Computer Science13 weeksCalculus 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                    DurationPrerequisites
The Missing Semester of Your CS Education2 weeksNone

    🔻 Core Systems

    Các kiến thức base về Kiến trúc máy tính và Hệ điều hành.

                         Cources                    DurationPrerequisites
Build a Modern Computer from First Principles:
From Nand to Tetris
6 weeksC Programming Language
Build a Modern Computer from First Principles:
From Nand to Tetris
6 weeks
Part I
Operationg System: Three Easy Pieces10-12 weeksNand to Tetris
Part II
Compputer Networking:
A Top-Down Approach
8 weeksalgebra, probability,
basic CS

    🔻 Core Theory

    Như đã nói thì Cấu trúc dữ liệu và thuật toán là một phần rất quan trọng trong lập trình. Dưới đây là các khóa về Cấu trúc dữ liệu và thuật toán của chuỗi CS, ngoài ra, các bạn có thể tìm hiểu chi tiết hơn về các thuật toán khác khi lập trình.
    Một số mảng ít yêu cầu sử dụng các cấu trúc dữ liệu thuật toán hơn như Embedded, các bạn có thể rút ngắn quá trình học xuống bằng cách làm quen với một số kiểu cấu trúc dữ liệu cơ bản như Linked List, Queue, các thuật toán Sorting và Searching trong khóa I bên dưới.

                         Cources                    DurationPrerequisites
Divide and Conquer, Sorting and Searching,
and Randomized Algorithms
4 weeksProgramming Language, Mathematics
Graph Search, Shortest Paths,
and Data Structures
4 weeks
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
4 weeksabove course
Shortest Paths Revisited, NP-Complete Problems and What to do about them4 weeksabove course

    🔻 Core Security

    Phần này cung cấp các kiến thức liên quan đến bảo mật, Secure Coding, và cơ bản kiến thức về Cybersecurity.

                         Cources                    DurationPrerequisites
Cybersecurity Fundamentals8 weeks
Principles of Secure Coding4 weeks
Identifying Security Vulnerabilities4 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                    DurationPrerequisites
Identifying Security Vulnerabilities in
C/C++ Programming
4 weeks
Exploiting and Securing Vulnerabilities
in Java Applications
4 weeks

    🔻 Core Applications

    Giới thiệu về các kiến thức ứng dụng cơ bản trong thực tế: Database, Machine Learning cơ bản, giới thiệu về Software Engineering.

                                Cources                    DurationPrerequisites
Databases: Modeling and Theory2 weeksCore Programming
Databases: Relational Databases and SQL2 weeks
Core Programming
Databases: Semistructured Data2 weeksCore Programming
Machine Learning11 weeksBasic Coding
Computer Graphics6 weeksC++ or Java,
linear algebra
Software Engineering: Introduction4 weeksCore Programming

    🔻 Core Ethics

    Các đạo đức nghề nghiệp khi làm việc với lĩnh vựa liên quan đến lập trình, khoa học máy tính.

                                Cources                    DurationPrerequisites
Ethics, Technology and Engineering9 weeksNone
Introduction to Intellectual Property4 weeks
None
Data Privacy Fundamentals3 weeksNone

    👉 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                    DurationPrerequisites
Parallel Programming4 weeksScala Programming
Compilers9 weeks
None
Introduction to Haskell14 weeksNone
Learn Prolog Now!12 weeksNone
Software Debugging8 weeksPython, OOP
Software Testing4 weeksPython

    🔻 Advanced Theory

                Cources                    DurationPrerequisites
Theory of Computation13 weeksMathematics, logic, algorithms
Computational Geometry16 weeks
Algorithms, C++
Game Theory8 weeksMathematical thinking,
probability, calculus

    🔻 Advanced Information Security

                      Cources                    DurationPrerequisites
Web Security Fundamentals5 weeksUnderstanding Basic
Web Technologies
Security Governance & Compliance3 weeks
None
Digital Forensics Concepts3 weeksCore Security
Secure Software Development: Requirements, Design, and Reuse7 weeksCore Programming and
Core Security
Secure Software Development: Implementation7 weeksSecure Software
Development:
Requirements, Design,
and Reuse
Secure Software Development: Verification and More Specialized Topics7 weeksSecure Software Development: Implementation

    🔻 Advanced Math

                      Cources                    DurationPrerequisites
Essence of Linear Algebra-High school math
Linear Algebra14 weeks
corequisite:
Essence of Linear Algebra
Introduction to Numerical Methods14 weeksLinear Algebra
Introduction to Formal Logic10 weeksSet Theory
Probability15 weeksDifferentiation
& Integration

    👉 Final Project

    Việc rất quan trọng khi học đó là thực hành 💪 Các assignment và exam của của các khóa học trước nhằm ôn luyện lại các kiến thức cũng như chuẩn bị cho các project thực tế.
    Dưới đây là một số project mà khóa OSSU đề xuất để các bạn có thể ôn luyện kiến thức và nâng cao những kỹ năng đã học trong toàn bộ khóa học.

CoursesDurationEffortPrerequisites
Fullstack Open12 weeks15 hours/weekprogramming
Modern Robotics (Specialization)26 weeks2-5 hours/weekfreshman-level physics, linear algebra, calculus, linear ordinary differential equations
Data Mining (Specialization)30 weeks2-5 hours/weekmachine learning
Big Data (Specialization)30 weeks3-5 hours/weeknone
Internet of Things (Specialization)30 weeks1-5 hours/weekstrong programming
Cloud Computing (Specialization)30 weeks2-6 hours/weekC++ programming
Data Science (Specialization)43 weeks1-6 hours/weeknone
Functional Programming in Scala (Specialization)29 weeks4-5 hours/weekOne year programming experience
Game Design and Development with Unity 2020 (Specialization)6 months5 hours/weekprogramming, 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

Nguyễn Văn Nghĩa

Mình là một người thích học hỏi và chia sẻ các kiến thức về Nhúng IOT.

Đăng nhận xét

Mới hơn Cũ hơn