Перейти к содержанию
Предметы

Компьютерные науки в университете

Советы

Этот курс следует типичной программе обучения информатике от основ программирования до машинного обучения. Он начинается с основ программирования и дискретной математики, затем расширяется: объектно-ориентированный дизайн, структуры данных и алгоритмы, архитектура компьютера, операционные системы, базы данных и сети. Более поздние разделы охватывают проектирование алгоритмов, теорию вычислений и компиляторы, программную инженерию, а также искусственный интеллект и машинное обучение.

Два навыка важнее любого языка программирования. Во-первых, пишите и запускайте код каждую неделю: прочтение решения не то же самое, что его создание. Во-вторых, анализируйте сложность. Ответ в университете должен объяснять, как время выполнения растёт при увеличении объёма входных данных, используя обозначение Big-O, и доказывать корректность алгоритма, а не просто указывать, что он сработал на одном тесте.

Дискретная математика может казаться отдельной от программирования дисциплиной. Это не так. Доказательство методом математической индукции используется для подтверждения правильности рекурсивной функции, а графы лежат в основе карт, сетей и компиляторов.

Тренировать всю лексику
  • 1

    Основы программирования

    • 1.1 О курсе и способе его использования
    • 1.1 Значения, типы и ввод/вывод
    • 1.2 Выбор: выбор между путями
    • 1.3 Итерация: повторение действия
    • 1.4 Функции: определение задачи одним именем
    • 1.5 Коллекции: списки, словари, кортежи, множества
    • 1.6 Файлы и ошибки
    • 1.7 Декомпозиция, тестирование и отладка
  • 2

    Дискретная математика

    • 2.1 Логика и доказательства
    • 2.2 Множества, функции и отношения
    • 2.3 Индукция и рекурсия
    • 2.4 Счёт и комбинаторика
    • 2.5 Графы и деревья
    • 2.6 Дискретная вероятность
  • 3

    Основы компьютерных систем

    • 3.1 Двоичное кодирование и представление данных
    • 3.2 Логические вентили и цифровые базовые элементы
    • 3.3 Обзор процессора и памяти
    • 3.4 Машинные инструкции
    • 3.5 Интерфейс операционной системы
    • 3.6 Путь компиляции и выполнения
  • 4

    Объектно-ориентированное программирование

    • 4.1 Объекты и классы
    • 4.2 Инкапсуляция
    • 4.3 Композиция и наследование
    • 4.4 Интерфейсы и полиморфизм
    • 4.5 Исключения и обработка ошибок
    • 4.6 Тестирование и качество проектирования
  • 5

    Структуры данных и алгоритмы

    • 5.1 Асимптотический анализ
    • 5.2 Списки, стеки и очереди
    • 5.3 Хеширование
    • 5.4 Деревья и кучи
    • 5.5 Графы и обход
    • 5.6 Сортировка
    • 5.7 Поиск
  • 6

    Архитектура компьютера

    • 6.1 Аппаратный интерфейс команд
    • 6.2 Машинное слово и управление
    • 6.3 Конвейеризация
    • 6.4 Иерархия памяти
    • 6.5 Ввод/вывод
    • 6.6 Параллелизм и производительность
  • 7

    Операционные системы

    • 7.1 Процессы и потоки
    • 7.2 Планирование
    • 7.3 Синхронизация
    • 7.4 Виртуальная память
    • 7.5 Файловые системы
    • 7.6 Защита и безопасность
  • 8

    Базы данных

    • 8.1 Реляционное моделирование
    • 8.2 Реляционная алгебра и SQL
    • 8.3 Нормализация
    • 8.4 Индексы и планы запросов
    • 8.5 Транзакции и конкурентность
    • 8.6 Безопасность и управление данными
  • 9

    Компьютерные сети

    • 9.1 Многоуровневая архитектура
    • 9.2 Канальный уровень и IP
    • 9.3 Маршрутизация
    • 9.4 Транспортный уровень (TCP/UDP)
    • 9.5 Прикладные протоколы
    • 9.6 Сетевая безопасность
    • 9.7 Основы распределённых систем
  • 10

    Проектирование и анализ алгоритмов

    • 10.1 Рекуррентные соотношения и инструменты анализа
    • 10.2 Метод «разделяй и властвуй»
    • 10.3 Жадные алгоритмы
    • 10.4 Динамическое программирование
    • 10.5 Оптимизация на графах
    • 10.6 Сведение и NP-полнота
  • 11

    Теория вычислений и компиляторы

    • 11.1 Автоматы и регулярные языки
    • 11.2 Контекстно-свободные языки и теория разбора
    • 11.3 Вычислимость
    • 11.4 Лексический анализ
    • 11.5 Разбор (синтаксический анализ)
    • 11.6 Семантический анализ и генерация кода
  • 12

    Инженерия программного обеспечения

    • 12.1 Требования
    • 12.2 Архитектура и проектирование
    • 12.3 Взаимодействие человека с компьютером и доступность
    • 12.4 Контроль версий и командная работа
    • 12.5 Тестирование и непрерывная интеграция
    • 12.6 Безопасность и профессиональная этика
    • 12.7 Командный проект
  • 13

    Искусственный интеллект и машинное обучение

    • 13.1 Поиск
    • 13.2 Знания и рассуждения
    • 13.3 Вероятностные модели
    • 13.4 Регрессия и классификация
    • 13.5 Оптимизация и обучение
    • 13.6 Оценка и утечка
    • 13.7 Справедливость и ограничения

Войти или создать аккаунт

IGCSE, A-Level & AP