GitBook: [tr-version] 2 pages modified

This commit is contained in:
Şükrü Berkay 2020-10-27 17:41:36 +00:00 committed by gitbook-bot
parent d6391844bd
commit c86b0da15f
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
2 changed files with 128 additions and 0 deletions

View File

@ -3,4 +3,5 @@
* [ık Kaynak Üniversite](README.md)
* [Bilgisayar Mühendisliği](computer-science/README.md)
* [INTRO CS](computer-science/intro-cs.md)
* [CORE CS](computer-science/core-cs.md)

127
computer-science/core-cs.md Normal file
View File

@ -0,0 +1,127 @@
# CORE CS
## Core CS
All coursework under Core CS is **required**, unless otherwise indicated.
## Core programming
**Topics covered**: `functional programming` `design for testing` `program requirements` `common design patterns` `unit testing` `object-oriented design` `Java` `static typing` `dynamic typing` `ML-family languages (via Standard ML)` `Lisp-family languages (via Racket)` `Ruby` `and more`
The How to Code courses are based on the textbook [How to Design Programs](https://htdp.org/2003-09-26/). The First Edition is available for free online and includes problem sets and solutions. Students are encouraged to do these assignments.
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [How to Code - Simple Data](https://www.edx.org/course/how-code-simple-data-ubcx-htc1x) | 7 weeks | 8-10 hours/week | none | [chat](https://discord.gg/RfqAmGJ) |
| [How to Code - Complex Data](https://www.edx.org/course/how-code-complex-data-ubcx-htc2x) | 6 weeks | 8-10 hours/week | How to Code: Simple Data | [chat](https://discord.gg/kczJzpm) |
| [Programming Languages, Part A](https://www.coursera.org/learn/programming-languages) | 5 weeks | 4-8 hours/week | How to Code \([Hear instructor](https://www.coursera.org/lecture/programming-languages/recommended-background-k1yuh)\) | [chat](https://discord.gg/8BkJtXN) |
| [Programming Languages, Part B](https://www.coursera.org/learn/programming-languages-part-b) | 3 weeks | 4-8 hours/week | Programming Languages, Part A | [chat](https://discord.gg/EeA7VR9) |
| [Programming Languages, Part C](https://www.coursera.org/learn/programming-languages-part-c) | 3 weeks | 4-8 hours/week | Programming Languages, Part B | [chat](https://discord.gg/8EZUVbA) |
## Math Electives
**Students must choose one of the following topics**: calculus, linear algebra, logic, or probability.
### **Calculus**
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) | 13 weeks | 6-10 hours/week | [high school math](https://github.com/Yildiz-Tecnical-University-CEIT/computer-science/tree/ef90704db21c2da027ac4f0095487635b262d22b/computer-science/FAQ.md#how-can-i-review-the-math-prerequisites) | [chat](https://discord.gg/mPCt45F) |
| [Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration) | 13 weeks | 5-10 hours/week | Calculus 1A | [chat](https://discord.gg/sddAsZg) |
| [Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-series) | 6 weeks | 5-10 hours/week | Calculus 1B | [chat](https://discord.gg/FNEcNNq) |
### **Linear Algebra**
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | [high school math](https://github.com/Yildiz-Tecnical-University-CEIT/computer-science/tree/ef90704db21c2da027ac4f0095487635b262d22b/computer-science/FAQ.md#how-can-i-review-the-math-prerequisites) | [chat](https://discord.gg/m6wHbP6) |
| [Linear Algebra](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/) | 14 weeks | 12 hours/week | Essence of Linear Algebra | [chat](https://discord.gg/k7nSWJH) |
### **Logic**
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Introduction to Logic](https://www.coursera.org/learn/logic-introduction) | 10 weeks | 4-8 hours/week | [set theory](https://www.youtube.com/playlist?list=PL5KkMZvBpo5AH_5GpxMiryJT6Dkj32H6N) | [chat](https://discord.gg/MbM2Gg5) |
### **Probability**
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Probability](https://projects.iq.harvard.edu/stat110/home) | 24 weeks | 12 hours/week | [Differentiation and Integration](https://www.edx.org/course/calculus-1b-integration) | [chat](https://discord.gg/UVjs9BU) |
#### Core Math
In addition to their math elective, students must complete the following course on discrete mathematics.
**Topics covered**: `discrete mathematics` `mathematical proofs` `basic statistics` `O-notation` `discrete probability` `and more`
| Courses | Duration | Effort | Notes | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: | :---: |
| [Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | An alternate version with solutions to the problem sets is [here](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2005/assignments/). Students struggling can consider the [Discrete Mathematics Specialization](https://www.coursera.org/specializations/discrete-mathematics) first. It is more interactive but less comprehensive, and costs money to unlock full interactivity. | Calculus 1C | [chat](https://discord.gg/EuTzNbF) |
#### CS Tools
Understanding theory is important, but you will also be expected to create programs. There are a number of tools that are widely used to make that process easier. Learn them now to ease your future work writing programs.
**Topics covered**: `terminals and shell scripting` `vim` `command line environments` `version control` `and more`
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) | 2 weeks | 12 hours/week | - | [chat](https://discord.gg/5FvKycS) |
#### Core systems
**Topics covered**: `procedural programming` `manual memory management` `boolean algebra` `gate logic` `memory` `computer architecture` `assembly` `machine language` `virtual machines` `high-level languages` `compilers` `operating systems` `network protocols` `and more`
| Courses | Duration | Effort | Additional Text / Assignments | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: | :---: |
| [Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) \([alt](https://cs50.harvard.edu/)\) | 12 weeks | 10-20 hours/week | After the sections on C, skip to the next course. [Why?](https://github.com/Yildiz-Tecnical-University-CEIT/computer-science/tree/ef90704db21c2da027ac4f0095487635b262d22b/computer-science/FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50) | introductory programming | [chat](https://discord.gg/NruSj5Q) |
| [Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) \([alt](http://www.nand2tetris.org/)\) | 6 weeks | 7-13 hours/week | - | C-like programming language | [chat](https://discord.gg/vxB2DRV) |
| [Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | - | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I | [chat](https://discord.gg/AsUXcPu) |
| [Introduction to Computer Networking](https://www.youtube.com/playlist?list=PLEAYkSg4uSQ2dr0XO_Nwa5OcdEcaaELSG) | 8 weeks | 412 hours/week | [Assignment 1](https://github.com/PrincetonUniversity/COS461-Public/tree/master/assignments/assignment1) [Assignment 2](https://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.html) [Assignment 3](https://nptel.ac.in/content/storage2/courses/106105080/pdf/M2L7.pdf) [Assignment 4](http://www-net.cs.umass.edu/wireshark-labs/Wireshark_TCP_v7.0.pdf) [Interactive Problems](https://gaia.cs.umass.edu/kurose_ross/interactive/index.php) | algebra, probability, basic CS | [chat](https://discord.gg/MJ9YXyV) |
| [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/Classes/537/Spring2018/) | 10-12 weeks | 6 hours/week | - | algorithms | [chat](https://discord.gg/wZNgpep) |
#### Core theory
**Topics covered**: `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`
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Divide and Conquer, Sorting and Searching, and Randomized Algorithms](https://www.coursera.org/learn/algorithms-divide-conquer) | 4 weeks | 4-8 hours/week | any programming language, Mathematics for Computer Science | [chat](https://discord.gg/mKRS7tY) |
| [Graph Search, Shortest Paths, and Data Structures](https://www.coursera.org/learn/algorithms-graphs-data-structures) | 4 weeks | 4-8 hours/week | Divide and Conquer, Sorting and Searching, and Randomized Algorithms | [chat](https://discord.gg/Qstqe4t) |
| [Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming](https://www.coursera.org/learn/algorithms-greedy) | 4 weeks | 4-8 hours/week | Graph Search, Shortest Paths, and Data Structures | [chat](https://discord.gg/dWVvjuz) |
| [Shortest Paths Revisited, NP-Complete Problems and What To Do About Them](https://www.coursera.org/learn/algorithms-npcomplete) | 4 weeks | 4-8 hours/week | Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming | [chat](https://discord.gg/dYuY78u) |
#### Core Security
**Topics covered** `Confidentiality, Integrity, Availability` `Secure Design` `Defensive Programming` `Threats and Attacks` `Network Security` `Cryptography` `and more`
Note: _**These courses are provisionally recommended**_. There is an open [Request For Comment](https://github.com/ossu/computer-science/issues/639) on security course selection. Contributors are encouraged to compare the various courses in the RFC and offer feedback.
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Information Security: Context and Introduction](https://www.coursera.org/learn/information-security-data) | 5 weeks | 3 hours/week | - | [chat](https://discord.gg/8h6Rz8g) |
| [Principles of Secure Coding](https://www.coursera.org/learn/secure-coding-principles) | 4 weeks | 4 hours/week | - | [chat](https://discord.gg/5gMdeSK) |
| [Identifying Security Vulnerabilities](https://www.coursera.org/learn/identifying-security-vulnerabilities) | 4 weeks | 4 hours/week | - | [chat](https://discord.gg/V78MjUS) |
Choose **one** of the following:
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Identifying Security Vulnerabilities in C/C++Programming](https://www.coursera.org/learn/identifying-security-vulnerabilities-c-programming) | 4 weeks | 5 hours/week | - | [chat](https://discord.gg/Vbxce7A) |
| [Exploiting and Securing Vulnerabilities in Java Applications](https://www.coursera.org/learn/exploiting-securing-vulnerabilities-java-applications) | 4 weeks | 5 hours/week | - | [chat](https://discord.gg/QxC22rR) |
#### Core applications
**Topics covered**: `Agile methodology` `REST` `software specifications` `refactoring` `relational databases` `transaction processing` `data modeling` `neural networks` `supervised learning` `unsupervised learning` `OpenGL` `raytracing` `and more`
| Courses | Duration | Effort | Prerequisites | Discussion |
| :--- | :---: | :---: | :---: | :---: |
| [Relational Databases and SQL](https://www.edx.org/course/databases-5-sql) | 2 weeks | 10 hours/week | core programming | [chat](https://discord.gg/P8SPPyF) |
| [Databases: Modeling and Theory](https://www.edx.org/course/modeling-and-theory) | 2 weeks | 10 hours/week | [Relational Databases and SQL](https://www.edx.org/course/databases-5-sql) | [chat](https://discord.gg/pMFqNf4) |
| [Databases: Semistructured Data](https://www.edx.org/course/semistructured-data) | 2 weeks | 10 hours/week | core programming | [chat](https://discord.gg/duCJ3GN) |
| [Machine Learning](https://www.coursera.org/learn/machine-learning) | 11 weeks | 4-6 hours/week | linear algebra | [chat](https://discord.gg/NcXHDjy) |
| [Computer Graphics](https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x) | 6 weeks | 12 hours/week | C++ or Java, linear algebra | [chat](https://discord.gg/68WqMNV) |
| [Software Engineering: Introduction](https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x) | 6 weeks | 8-10 hours/week | Core Programming, and a [sizable project](https://github.com/Yildiz-Tecnical-University-CEIT/computer-science/tree/ef90704db21c2da027ac4f0095487635b262d22b/computer-science/FAQ.md#why-require-experience-with-a-sizable-project-before-the-Software-Engineering-courses) | [chat](https://discord.gg/5Qtcwtz) |
| [Software Development Capstone Project](https://www.edx.org/course/software-development-capstone-project-ubcx-softengprjx) | 6-7 weeks | 8-10 hours/week | Software Engineering: Introduction | [chat](https://discord.gg/2FAujEZ) |