/computer-science-university-alternative

این ریپازیتوری به شما کمک میکند که اگر دانشگاه نرفتید بتوانید به صورت خودخوان و با استفاده از منابع رایگان به کسب دانش بپردازید.

kalagar youtube channel

ویدئوی مرتبط

نقشه راه مهندسی نرم افزار

در صورتی که در مورد هر کدام از بخش های زیر نیاز به راهنمایی و یا مشاوره داشتید میتوانید از طریق این لینک برای رزرو وقت مشاوره اقدام نمایید

ورود به علوم رایانه

دوره های آموزشی مدت زمان تلاش پیش نیازها
CS50 - Introduction to Computer Science - Harvard 2 weeks 10-20 hours/week none

علوم رایانه پایه

تمام دوره های آموزشی مربوط به "علوم رایانه پایه" الزامی است، مگر اینکه خلاف آن ذکر شده باشد.

برنامه نویسی پایه

موضوعات تحت پوشش: functional programming design for testing program requirements common design patterns unit testing object-oriented design static typing dynamic typing ML-family languages (via Standard ML) Lisp-family languages (via Racket) Ruby and more

دوره های آموزشی مدت زمان تلاش پیش نیازها
Systematic Program Design (textbook) (جایگزین: part 1, part 2) 13 weeks 8-10 hours/week none
Programming Languages, Part A 5 weeks 4-8 hours/week Systematic Program Design (Hear instructor)
Programming Languages, Part B 3 weeks 4-8 hours/week Programming Languages, Part A
Programming Languages, Part C 3 weeks 4-8 hours/week Programming Languages, Part B
Object-Oriented Design 4 weeks 4 hours/week Basic Java
Design Patterns 4 weeks 4 hours/week Object-Oriented Design
Software Architecture 4 weeks 2-5 hours/week Design Patterns

ریاضیات پایه

ریاضی گسسته (Math for CS) یک پیش نیاز و ارتباط نزدیک با مطالعه الگوریتم ها و ساختار داده است. حساب دیفرانسیل و انتگرال هم دانش آموزان را برای ریاضیات گسسته آماده می کند و هم به دانش آموزان کمک می کند تا بلوغ ریاضی را توسعه دهند.

موضوعات تحت پوشش: ریاضیات گسسته برهان های ریاضی آمار پایه O-notation احتمالات گسسته و غیره

دوره های آموزشی مدت زمان تلاش پیش نیازها
Calculus 1A: Differentiation (جایگزین) 13 weeks 6-10 hours/week جایگزین این و 2 دوره بعدی را پوشش می دهد
Calculus 1B: Integration 13 weeks 5-10 hours/week -
Calculus 1C: Coordinate Systems & Infinite Series 6 weeks 5-10 hours/week -
Mathematics for Computer Science (جایگزین) 13 weeks 5 hours/week 2015/2019 solutions 2010 solutions 2005 solutions.

ابزهای مورد نیاز

درک نظریه مهم است، اما از شما نیز انتظار می رود که برنامه بنویسید. تعدادی ابزار وجود دارد که به طور گسترده ای برای تسهیل این فرآیند استفاده می شود. اکنون آنها را بیاموزید تا کار برنامه نویسی آینده‌ی خود را آسان کنید.

موضوعات تحت پوشش: terminals and shell scripting vim command line environments version control and more

دوره های آموزشی مدت زمان تلاش پیش نیازها
The Missing Semester of Your CS Education 2 weeks 12 hours/week -

سیستم‌های پایه

موضوعات تحت پوشش: procedural programming مدیریت دستی حافظه جبر بولی گیت منطقی memory computer architecture assembly machine language virtual machines high-level languages compilers operating systems network protocols and more

دوره های آموزشی مدت زمان تلاش پیش نیازها
Build a Modern Computer from First Principles: From Nand to Tetris (جایگزین) 6 weeks 7-13 hours/week -
Build a Modern Computer from First Principles: Nand to Tetris Part II 6 weeks 12-18 hours/week -
Operating Systems: Three Easy Pieces 10-12 weeks 6-10 hours/week -
Computer Networking: a Top-Down Approach 8 weeks 4–12 hours/week Wireshark Labs

تئوری پایه

موضوعات تحت پوشش: divide and conquer sorting and searching randomized algorithms graph search shortest paths data structures greedy algorithms minimum spanning trees dynamic programming NP-completeness and more

دوره های آموزشی مدت زمان تلاش پیش نیازها
Divide and Conquer, Sorting and Searching, and Randomized Algorithms 4 weeks 4-8 hours/week یک زبان برنامه نویسی، ریاضیات برای علوم کامپیوتر
Graph Search, Shortest Paths, and Data Structures 4 weeks 4-8 hours/week Divide and Conquer, Sorting and Searching, and Randomized Algorithms
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming 4 weeks 4-8 hours/week Graph Search, Shortest Paths, and Data Structures
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them 4 weeks 4-8 hours/week Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

امنیت پایه

موضوعات تحت پوشش: محرمانه بودن، یکپارچگی، در دسترس بودن طراحی امن Defensive Programming تهدید و حمله امنیت شبکه Cryptography و غیره

دوره های آموزشی مدت زمان تلاش پیش نیازها
Cybersecurity Fundamentals 8 weeks 10-12 hours/week -
Principles of Secure Coding 4 weeks 4 hours/week -
Identifying Security Vulnerabilities 4 weeks 4 hours/week -

یکی از موارد زیر را انتخاب کنید:

دوره های آموزشی مدت زمان تلاش پیش نیازها
Identifying Security Vulnerabilities in C/C++Programming 4 weeks 5 hours/week -
Exploiting and Securing Vulnerabilities in Java Applications 4 weeks 5 hours/week -

اپلیکیشن‌های پایه

موضوعات تحت پوشش: متودولوژی چابک REST software specifications refactoring relational databases transaction processing data modeling neural networks supervised learning unsupervised learning OpenGL ray tracing و غیره

دوره های آموزشی مدت زمان تلاش پیش نیازها
Databases: Modeling and Theory 2 weeks 10 hours/week برنامه نویسی پایه
Databases: Relational Databases and SQL 2 weeks 10 hours/week برنامه نویسی پایه
Databases: Semistructured Data 2 weeks 10 hours/week برنامه نویسی پایه
Machine Learning 11 weeks 9 hours/week Basic coding
Computer Graphics (جایگزین) 6 weeks 12 hours/week C++ or Java, linear algebra
Software Engineering: Introduction 4 weeks 8-10 hours/week برنامه نویسی پایه, and a sizable project

اخلاقیات پایه

موضوعات تحت پوشش: زمینه اجتماعی ابزارهای تحلیلی اخلاق حرفه ای مالکیت معنوی حریم خصوصی و آزادی های مدنی وغیره

دوره های آموزشی مدت زمان تلاش پیش نیازها
Ethics, Technology and Engineering 9 weeks 2 hours/week none
Introduction to Intellectual Property 4 weeks 2 hours/week none
Data Privacy Fundamentals 3 weeks 3 hours/week none

علوم رایانه پیشرفته

پس از تکمیل هر دوره الزامی در Core CS، دانش آموزان باید بر اساس علاقه زیر مجموعه ای از دوره ها را از Advanced CS انتخاب کنند. لازم نیست هر درس از یک زیرمجموعه گذرانده شود. اما دانش‌آموزان باید هر درسی را که مربوط به رشته‌ای است که قصد تحصیل در آن را دارند بگذرانند.

برنامه نویسی پیشرفته

موضوعات تحت پوشش: debugging theory and practice goal-oriented programming parallel computing object-oriented analysis and design UML large-scale software architecture and design and more

دوره های آموزشی مدت زمان تلاش پیش نیازها
Parallel Programming 4 weeks 6-8 hours/week Scala programming
Compilers 9 weeks 6-8 hours/week none
Introduction to Haskell 14 weeks - -
Learn Prolog Now! (جایگزین)* 12 weeks - -
Software Debugging 8 weeks 6 hours/week Python, object-oriented programming
Software Testing 4 weeks 6 hours/week Python, programming experience

(*) کتابی از Blackburn, Bos, Striegnitz (گردآوری شده از منبع, تحت توزیع مجدد مجوز CC)

سیستم‌های پیشرفته

موضوعات تحت پوشش: digital signaling combinational logic CMOS technologies sequential logic finite state machines processor instruction sets caches pipelining virtualization parallel processing virtual memory synchronization primitives system call interface and more

دوره های آموزشی مدت زمان تلاش پیش نیازها توضیحات
Computation Structures 1: Digital Circuits ( جایگزین ۱ ) ( جایگزین ۲ ) 10 weeks 6 hours/week Nand2Tetris II لینکهای جایگزین شامل هر 3 دوره است.
Computation Structures 2: Computer Architecture 10 weeks 6 hours/week Computation Structures 1
Computation Structures 3: Computer Organization 10 weeks 6 hours/week Computation Structures 2

تئوری پیشرفته

موضوعات تحت پوشش: formal languages Turing machines computability event-driven concurrency automata distributed shared memory consensus algorithms state machine replication computational geometry theory propositional logic relational logic Herbrand logic game trees and more

دوره های آموزشی مدت زمان تلاش پیش نیازها
Theory of Computation (جایگزین) 13 weeks 10 hours/week Mathematics for Computer Science, logic, algorithms
Computational Geometry 16 weeks 8 hours/week algorithms, C++
Game Theory 8 weeks 3 hours/week mathematical thinking, probability, calculus

امنیت اطلاعات پیشرفته

دوره های آموزشی مدت زمان تلاش پیش نیازها
Web Security Fundamentals 5 weeks 4-6 hours/week آشنایی با تکنولوژی های اساسی وب
Security Governance & Compliance 3 weeks 3 hours/week -
Digital Forensics Concepts 3 weeks 2-3 hours/week Core Security
Secure Software Development: Requirements, Design, and Reuse 7 weeks 1-2 hours/week برنامه نویسی پایه and Core Security
Secure Software Development: Implementation 7 weeks 1-2 hours/week Secure Software Development: Requirements, Design, and Reuse
Secure Software Development: Verification and More Specialized Topics 7 weeks 1-2 hours/week Secure Software Development: Implementation

ریاضیات پیشرفته

دوره های آموزشی مدت زمان تلاش پیش نیازها
Essence of Linear Algebra - - high school math
Linear Algebra 14 weeks 12 hours/week corequisite: Essence of Linear Algebra
Introduction to Numerical Methods 14 weeks 12 hours/week Linear Algebra
Introduction to Formal Logic 10 weeks 4-8 hours/week Set Theory
Probability 15 weeks 5-10 hours/week Differentiation and Integration (جایگزین)

پروژه نهایی

تکالیف و امتحانات هر دوره برای آماده سازی شما برای استفاده از دانش خود برای حل مشکلات دنیای واقعی است.

بعد از اینکه تمام بخشهای "علوم رایانه پایه" و بخش های انتخابی خود از "علوم رایانه پیشرفته" را گذراندید، باید به مشکلی فکر کنید که می توانید با استفاده از دانشی که به دست آورده اید آن را حل کنید. نه تنها انجام یک پروژه واقعی در رزومه شما عالی به نظر می رسد، بلکه انجام یک پروژه دانش شما را نیز اعتبار بخشیده و تثبیت می کند.

شما می‌توانید چیزی کاملاً جدید ایجاد کنید، یا می‌توانید یک پروژه موجود که نیاز به کمک دارد را از طریق وب‌سایت‌هایی مانند CodeTriage یا First Timers Only پیدا کنید و به آنها کمک کنید.

دانش‌آموزانی که می‌خواهند راهنمایی بیشتری برای ایجاد یک پروژه داشته باشند، میتوانند از یک سری دوره‌های پروژه‌محور استفاده کنند. در اینجا نمونه‌ای از گزینه‌های موجود وجود دارد (بسیاری از گزینه‌ها در دسترس هستند، در این مرحله باید بتوانید مجموعه‌ای را که برای شما جالب و مرتبط است شناسایی کنید) :

دوره های آموزشی مدت زمان تلاش پیش نیازها
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 design