Группа программистов в неделю слушает 15 часов лекционных занятий

. По мере прохождения курсов вы можете вводить в лист фактические даты завершения курса Curriculum Dataи получать обновленные оценки завершения.Стоимость. Все или почти все материалы курса доступны бесплатно. Однако некоторые курсы могут взимать деньги за задания/тесты/проекты. Которые будут оцениваться. Обратите внимание. Что и Coursera, и edX предлагают финансовую помощь.

Решайте, сколько или как мало тратить. Исходя из вашего собственного времени и бюджета; просто помните. Что вы не можете купить успех!

Процесс. Студенты могут работать по учебной программе в одиночку или в группах. По порядку или не по порядку.

  • Мы рекомендуем делать все курсы в Core CS. Пропуская курс только тогда. Когда вы уверены. Что уже изучили материал ранее.
  • Для простоты мы рекомендуем прорабатывать курсы (особенно Core CS) по порядку сверху вниз. Так как они уже были топологически отсортированы по их предпосылкам.
  • Курсы повышения квалификации по КС являются факультативными. Выберите один предмет (например. Продвинутое программирование). В котором вы хотите стать экспертом. И пройдите все курсы под этим заголовком. Вы также можете создать свою собственную тему. Но мы рекомендуем получить подтверждение от сообщества по выбранной вами теме.

Политика содержания. Если вы планируете публично демонстрировать некоторые из своих курсовых работ. Вы должны делиться только теми файлами. Которые вам разрешены.

Как внести свой вклад

Получение помощи (Подробнее о наших часто задаваемых вопросах и чате)

  • У нас есть сервер раздора! Discord Это должна быть ваша первая остановка. Чтобы поговорить с другими студентами ОССУ. Почему бы тебе не представиться прямо сейчас? Присоединяйтесь к раздору ОССУ
  • Вы также можете взаимодействовать через проблемы GitHub. Если есть проблема с курсом или необходимо внести изменения в учебную программу, это место. Чтобы начать разговор.

    Подробнее читайте здесь.

  • Подпишитесь на нашу рассылку.
  • Добавьте Open Source Society University в свой профиль Linkedin!
  • Примечание: Существует неподдерживаемое и устаревшее приложение firebase. Которое вы можете найти при поиске OSSU. Вы можете спокойно игнорировать его. Подробнее читайте в разделе Часто задаваемые вопросы.

Версия учебногоплана : 8.0.0(см. Список ИЗМЕНЕНИЙ)


Предпосылки

  • Ядро CS предполагает . Что студент уже изучил математику средней школы, включая алгебру. Геометрию и предварительное исчисление.
  • Продвинутый CS предполагает. Что студент уже взял всю основную CS и теперь достаточно осведомлен. Чтобы решить. Какие факультативы брать.

  • Обратите внимание. Что Advanced systems предполагает. Что студент прошел базовый курс физики (например. AP Physics в средней школе).

Вступление CS

Введение в программирование

Если вы никогда не писали цикл for или не знаете. Что такое строка в программировании. Начните здесь. Этот курс является самостоятельным. Позволяя вам регулировать количество часов. Которые вы тратите в неделю. Чтобы удовлетворить ваши потребности.

Затронутые темы: simple programs simple data structures

Курсы Продолжительность Усилие Предпосылки Обсуждение
Python для всех 10 недель 10 часов в неделю Нет Чат

Введение в информатику

Этот курс познакомит вас с миром компьютерных наук.

Студенты, которые были ознакомлены с программированием. Либо из вышеприведенных курсов. Либо через обучение в других местах. Должны пройти этот курс. Чтобы получить вкус будущего материала. Если вы закончите курс. Желая большего. Информатика. Скорее всего, для вас!

Затронутые темы: computation imperative programming basic data structures and algorithms and more

Ядро CS

Все курсовые работы в рамках Core CS

обязательны, если не указано иное.

Основное программирование

Затронутые темы: 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

Курсы Первое издание доступно бесплатно в Интернете и включает в себя наборы задач и решений. Студентам рекомендуется выполнять эти задания.

Факультативы по математике

Учащиеся должны выбрать одну из следующих тем: математическое исчисление. Линейная алгебра. Логика или теория вероятностей.

Исчисление

Линейная алгебра

Логические

Вероятность

Основная математика

В дополнение к факультативу по математике студенты должны пройти следующий курс по дискретной математике.

Затронутые темы: discrete mathematics mathematical proofs basic statistics O-notation discrete probability and more

Курсы Продолжительность Усилие Примечания Предпосылки Обсуждение
Математика для информатики (alt) 13 недель 5 часов в неделю Альтернативная версия с решениями наборов задач находится здесь. Студенты, испытывающие трудности. Могут сначала рассмотреть специализацию по

дискретной математике. Она более интерактивна. Но менее всеобъемлюща. И стоит денег. Чтобы разблокировать полную интерактивность.

Исчисление 1С Чат

Инструменты CS

Понимание теории важно. Но вы также должны будете создавать программы. Существует целый ряд инструментов. Которые широко используются для облегчения этого процесса. Изучите их сейчас. Чтобы облегчить вашу будущую работу по написанию программ.

Затронутые темы: terminals and shell scripting vim command line environments version control and more

Основные системы

Затронутые темы: 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

Основная теория

Затронутые темы: 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

Курсы Продолжительность Усилие Предпосылки Обсуждение
Разделяй и властвуй. Сортировка и поиск. Рандомизированные алгоритмы

4 недели 4-8 часов в неделю любой язык программирования. Математика для информатики

Чат
Поиск по графам. Кратчайшим путям и Структурам данных 4 недели 4-8 часов в неделю Разделяй и властвуй. Сортировка и поиск. Рандомизированные алгоритмы Чат
Жадные алгоритмы. Минимальные остовные деревья и динамическое программирование 4 недели 4-8 часов в неделю Поиск по графам. Кратчайшим путям и Структурам данных Чат
Пересмотр Кратчайших Путей. NP-Полные Задачи и Что С Ними Делать 4 недели 4-8 часов в неделю Жадные алгоритмы. Минимальные остовные деревья и динамическое программирование Чат

Основная безопасность

Затронутые темы Confidentiality, Integrity. Availability Secure Design Defensive Programming Threats and Attacks Network Security Cryptography and more

Примечание: Эти курсы рекомендуются в предварительном

порядке . Существует открытый Запрос На Комментарий по выбору курса безопасности. Участникам предлагается сравнить различные курсы в RFC и предложить свои отзывы.

Выберите один из следующих вариантов:

Основные приложения

Затронутые темы: Agile methodology REST software specifications refactoring relational databases transaction processing data modeling neural networks supervised learning unsupervised learning OpenGL raytracing and more

Продвинутый CS

После завершения каждого необходимого курса в 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

(*) книга 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

Продвинутая теория

Затронутые темы: 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

Расширенные приложения

Все эти специализации Coursera заканчиваются проектом Capstone.

В зависимости от курса. Вы можете использовать Capstone в качестве своего окончательного проекта для этой учебной программы по информатике.

Обратите внимание. Что выполнение Специализации с Замковым камнем в конце всегда стоит денег. Поэтому, если вы не хотите тратить деньги или использовать Capstone в качестве своего Финала. Вы можете пройти курсы по специализации бесплатно. Вручную поискав их. Но не все это позволяют.

Окончательный проект

Университет ОСС ориентирован на проекты. Вам предлагается выполнять задания и экзамены по каждому курсу. Но что действительно важно. Так это то. Сможете ли вы использовать свои знания для решения реальной проблемы.

После того, как вы пройдете через все основные CS и части Advanced CS. Относящиеся к вам. Вы должны подумать о проблеме. Которую вы можете решить. Используя полученные знания.

Мало того, что реальная проектная работа отлично смотрится в резюме. Но и проект также подтвердит и закрепит ваши знания. Вы можете создать что-то совершенно новое. Или вы можете найти существующий проект. Который нуждается в помощи через веб-сайты. Такие как CodeTriage или First Timers Only.

Другой вариант-использовать проект Capstone для получения одной из специализаций в области продвинутых приложений; имеет ли это смысл или нет. Зависит от курса. Проекта и от того. Разрешает ли вам Кодекс чести курса публично демонстрировать свою работу.

В некоторых случаях это может быть запрещено; не нарушайте Кодекс чести вашего курса!

Положите значок OSSU-CS в README вашего репозитория! Университет Общества с открытым исходным кодом - Информатика

  • Уценка: [![Open Source Society University - Computer Science](https://img.shields.io/badge/OSSU-computer--science-blue.svg)](https://github.com/ossu/computer-science)
  • HTML: Open Source Society University - Computer Science

Оценка

После завершения вашего окончательного проекта отправьте информацию о вашем проекте в ПРОЕКТЫ через запрос на вытягивание и используйте наши каналы сообщества. Чтобы объявить об этом своим сокурсникам.

Затем ваши коллеги и наставники из ОССУ неофициально оценят ваш проект. Вы не будете Цель оценки состоит в том. Чтобы выступить в качестве первого объявления миру о том. Что вы специалист по компьютерам. И получить опыт прослушивания обратной связи — как положительной. Так и отрицательной — и принять ее как должное.

Окончательная оценка проекта имеет вторую цель: оценить. Успешно ли ОССУ через свое сообщество и учебную программу выполняет свою миссию по руководству независимыми учащимися в получении компьютерного образования мирового класса.

Совместная работа

Вы можете создать этот проект самостоятельно или с другими студентами!

Мы любим совместную работу! Используйте наши каналы для общения с другими стипендиатами. Чтобы объединять и создавать новые проекты!

Какие языки программирования я должен использовать?

Друг мой, вот лучшая часть свободы! Вы можете использовать любой язык. Который вы хотите. Чтобы завершить окончательный проект.

Важно усвоить основные понятия и иметь возможность использовать их с любым инструментом (языком программирования). Который вы пожелаете.

Поздравления

После выполнения требований вышеприведенной учебной программы вы получите эквивалент полной степени бакалавра в области компьютерных наук.

Поздравляю!

Что будет дальше для вас? Возможности безграничны и перекрываются:

  • Ищите работу в качестве разработчика!
  • Ознакомьтесь с чтениями классических книг. Которые вы можете прочитать. Которые отточат ваши навыки и расширят ваши знания.
  • Присоединяйтесь к местной встрече разработчиков (например. Через meetup.com).
  • Обратите внимание на новые технологии в мире разработки программного обеспечения:
    • Исследуйте модель актера с помощью Elixir, нового функционального языка программирования для Интернета. Основанного на проверенной в боях виртуальной машине Erlang!

    • Исследуйте заимствование и время жизни через Rust, системный язык. Который обеспечивает память и потокобезопасность без сборщика мусора!
    • Исследуйте зависимые системы типов с помощью Idris, нового языка. Вдохновленного Haskell. С беспрецедентной поддержкой разработки на основе типов.

продолжайте учиться

Кодекс поведенияОССУ .

Как показать свой прогресс

  1. Создайте учетную запись в Trello.
  2. Скопируйте эту доску в свой личный кабинет. Смотрите, как скопировать доску здесь.

Теперь, когда у вас есть копия нашей официальной доски. Вам просто нужно передать карточки в Doingколонку или Doneколонку по мере продвижения в вашем исследовании.

У нас также есть этикетки, которые помогут вам лучше контролировать этот процесс. Смысл каждого из этих ярлыков таков:

  • Main Curriculum: карточки с этой меткой представляют собой курсы. Перечисленные в нашем учебном плане.
  • Extra Resources: карточки с этой меткой представляют курсы. Которые были добавлены студентом.
  • Doing: карточки с этой меткой представляют курсы. Которые студент в настоящее время делает.
  • Done: карточки с этой меткой представляют собой курсы. Законченные студентом. На этих карточках также должна быть ссылка хотя бы на один проект/статью. Построенный на основе знаний. Полученных в ходе такого курса.

  • Section: карточки с этой меткой представляют раздел. Который мы имеем в нашей учебной программе. Эти карточки с Sectionнадписью предназначены только для того. Чтобы помочь организации колонки Вы должны поместить карточки Курса под карточкой соответствующего раздела.

Цель этого совета состоит в том. Чтобы предоставить нашим студентам возможность отслеживать их прогресс. А также возможность показывать их прогресс через публичную страницу для друзей, семьи. Работодателей и т. Д. Вы можете изменить статус вашего совета директоров на

публичный или частный.