49: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
48: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
47: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
46: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
45: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
44: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
43: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
42: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
41: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
40: Merge pull request #54 from cs50/wrap
Wraps long lines in debug50's output
С чего начать
CS50 IDE или “integrated development environment” — это среда разработки, которая позволяет программировать “в облаке,” без установки каких-либо программ на вашей локальной машине (компьютере). Под капотом находится популярная операционная система, Ubuntu Linux (с пингвинчиком), которая помещается в “контейнер” при помощи программы с открытым исходным кодом Docker. Она позволяет нескольким пользователям (таким как вы!) делиться “ядром” операционной системы (его зародышем, так сказать) и файлами, при этом еще обладает и своими отдельными файлами. Просто невообразимо, CS50 IDE предоставляет вам ваше собственное “рабочее место” (т.е. память на удаленном компьютере), в котором вы можете сохранять свои файлы и папки (ака директории).
Вход в систему
Зарегистрируйтесь на edX и обязательно подтвердите свой аккаунт через письмо, которое вам вышлют на почту. Далее сюда запись на курс CS50, нажмите на зеленую кнопку “Enroll Now”.
Также вам необходимо завести учетную запись на Github’е, пройдите по данной ссылке https://github.com/join.
Зайдите на сайт cs50.me, используя всё ту же учетную запись GitHub’а и нажмите на зеленую кнопку authorize submit50 (Это действие производится только один раз).
Теперь вы можете пользоваться средой разработки CS50.
Перейдите по ссылке cs50.io, выберите edX и зайдите в CS50 IDE. Вас, возможно, попросят (повторно) ввести email и пароль от учетной записи edX.
Подготовка
В нижней части CS50 IDE есть “terminal” или терминальное окно (светло-синее, по умолчанию), или интерфейс командной строки (command-line interface — CLI), который позволяет управлять папкой workspace, ее файлами и папками, компилировать код, запускать программы и даже устанавливать новые программы. В окне терминала вы увидите следующее
Кликните по окошку терминала и напечатайте
нажмите кнопку Enter. Это для того, чтобы ваше рабочее пространство загрузило все необходимые обновления. Процесс обновления может занять несколько минут. (Ни в коем случае не закрывайте окно CS50 IDE в вашем браузере, пока все не закончится!)
Далее, выполните
чтобы создать папку pset1
в вашей директории workspace
. Не пропустите пробел между mkdir
и ~/workspace/pset1
или какой-либо другой символ! Помните, что ~
представляет вашу основную папку, первую. ~/workspace
представляет папку под названием workspace
и ~/workspace/pset1
представляет другую папку pset1
, которая находится в ~/workspace
.
Теперь выполните
чтобы перейти (т.е. открыть) в эту папку. В вашем терминале должно быть следующее.
Если это не так, тогда вернитесь обратно и посмотрите, где вы допустили ошибку. Вы можете выполнить команду
в терминале, чтобы увидеть последние выполненные вами команды. Вы также можете использовать стрелки вашей клавиатуры вверх и вниз, чтобы пройтись по истории использованных команд.
Требования
- Реализовать Hello
- Реализовать Water
- Реализовать Mario
- Реализовать Cash
Here are the instructions for installing CS50 library in your OS:
Linux
-
First become root, as with:
su - // Fedora, RedHat, CentOS sudo -s // Debian, Ubuntu, Mint //edited from sudo su -, use sudo -s on Ubuntu.
-
Then install the CS50 Library as follows:
yum -y install gcc // Fedora, RedHat, CentOS apt-get install gcc // Debian, Ubuntu, Mint wget http://mirror.cs50.net/library50/c/library50-c-5.zip unzip library50-c-5.zip rm -f library50-c-5.zip cd library50-c-5 gcc -c -ggdb -std=c99 cs50.c -o cs50.o ar rcs libcs50.a cs50.o chmod 0644 cs50.h libcs50.a mkdir -p /usr/local/include chmod 0755 /usr/local/include mv -f cs50.h /usr/local/include mkdir -p /usr/local/lib chmod 0755 /usr/local/lib mv -f libcs50.a /usr/local/lib cd .. rm -rf library50-c-5
For those lucky fellows running Linux, there’s this reddit explaining how to make Linux Mint «CS50 compatible» (i.e.: installing clang
, check50
, and cs50 libraries for Python
, Ruby
and PHP
)
Mac OS
-
Download and install Xcode.
-
Download and unzip library50-c-5.zip.
-
Open Applications > Utilities > Terminal, and navigate your way to the CS50 Library’s directory, as with cd.
-
Execute the commands below, entering your password if prompted:
gcc -c -ggdb -std=c99 cs50.c -o cs50.o ar rcs libcs50.a cs50.o rm -f cs50.o chmod 0644 cs50.h libcs50.a sudo mkdir -p /usr/local/include sudo mv -f cs50.h /usr/local/include sudo mkdir -p /usr/local/lib sudo mv -f libcs50.a /usr/local/lib cd .. rm -rf library50-c-5
Windows
It depends on your compiler, but odds are the simplest method of installation is to:
-
Download and unzip
library50-c-5.zip
. -
Copy
cs50.c
andcs50.h
into the same directory as your own code.
After installing the CS50 Library, you can include its header file atop your own code with:
#include "cs50.h"
Note the use of quotes instead of angled brackets.
This is CS50 CLI, with which you can mount a directory inside of an Ubuntu container.
Project description
The author of this package has not provided a project description
Project details
Download files
Download the file for your platform. If you’re not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for ide50-1.0.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b484ae68da555c53938d2e16f92439686708ebf3b10099285b14df5734b5dfa3 |
|
MD5 | d536453370aa04de9de88d368928dae6 |
|
BLAKE2b-256 | 751348d93a15c7da4f5b4fae2cf7bf388291a443bfaf51aaf921416a3b10f118 |
Close
Hashes for ide50-1.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62c860014bb106507cb2e34da7758968a5c8b423003eba1839a71e317b146928 |
|
MD5 | 67e2fc642113000f6efb96d58f8fd28d |
|
BLAKE2b-256 | fb5ebafc783437bec7efd96f33b0fb00e6f0e91d10859a065e64dbda1f792663 |
Друзья, мы рады сообщить, что перевод всего гарвардского курса CS50 закончен.
Мы писали, что в курсе 24 серии, однако последние две оказались одной и той же лекцией (одна прочитана в Гарварде, а другая в Йеле), поэтому в списке переведённых лекций не 24, а 23.
Список лекций под катом.
Что вы узнаете, прослушав этот курс:
- Основы компьютерных наук и программирования;
- Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
- Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
- Основы языка программирования C и Scratch;
- Основы баз данных и SQL;
- Веб-разработка: основы CSS, HTML, JavaScript и PHP;
- Основы подготовки презентации проектов по программированию.
Курс переведён и озвучен нашей студией по заказу JavaRush, и мы хотим сказать им огромное спасибо за поддержку!
Список переведённых лекций:
1-я лекция: вступительная, знакомит с общими понятиями языков программирования, а также с командой преподавателей и системой предстоящих занятий.
2-я лекция: также является вступительной и знакомит с общими понятиями языков программирования, продолжая тему первой лекции.
3-я лекция: знакомит с понятием и функциями компилирования и рассказывает, каким образом в программах появляются баги (начиная с самого первого «компьютерного жучка»), как их распознать и чем они могут быть вызваны.
4-я лекция: знакомит с типами данных и циклов, некоторыми базовыми функциями и основной схемой составления программы, а также демонстрирует ограниченность возможностей компьютеров и исторические примеры багов, не прошедших бесследно.
5-я лекция: продолжение о багах, плюс раскрывает понятие структуры программы, объясняет, зачем нужны функции внутри кода, в чём важность области действия значений, и вводит функцию strlen. Также из неё вы узнаете, как в CS50 борются с любителями списывать, и научитесь экономить оперативную память компьютера во избежание ошибки сегментации.
6-я лекция: об основах криптографии, массивах и аргументах командной строки.
7-я лекция: знакомит с основными методами сортировки данных. Дэвид Мэйлен рассказывает о пузырьковой сортировке, сортировках выбором, вставкой и слиянием, а зрители проверяют их на практике.
8-я лекция: про сортировку данных методом слияния, а также краткий экскурс в мир побитовых операций.
9-я лекция: продолжение знакомства с оператором условия — if, введение понятие рекурсии, а также обсуждение скандала концерна Volkswagen и проблемы компьютерной безопасности. Лектор детально рассматривает функцию перестановки — swap, демонстрирует приёмы работы с отладчиком программ и раскрывает структуру и механику оперативной памяти.
10-я лекция: о разных методах составления списков, сохранении информации о программе и использовании указателей и указуемых.
11-я лекция: изучение указателей, разбор структуры функций библиотеки CS50, знакомство с утечкой памяти, введение понятия linked list и других структур данных с детальной демонстрацией.
12-я лекция: про особенности стека, очереди и связного списка. Разбор возможных проблем, связанных с доступом к памяти. Тут же рассматривается структура двоичного дерева, префиксного дерева и работа со сжатием файлов.
13-я лекция: о хэшировании данных, сетевых протоколах и о том, как при помощи зашифрованных соединений защитить себя от подозрительных незнакомцев.
14-я лекция: введение в веб-программирование и знакомство с языками HTML и CSS. Впервые в истории студенты двух учебных заведений — Гарварда и Йеля — при помощи современных технологий параллельно проходят обучение на курсе.
15-я лекция: знакомство с языком программирования PHP и языком разметки HTML.
16-я лекция: продолжение рассмотрения языка PHP, теперь для разработки веб-приложений, а также знакомство с базами данных и MySQL.
17-я лекция: продолжение знакомства с базами данных SQL.
18-я лекция: введение в JavaScrip tи программирование на стороне клиента.
19-я лекция: продолжается знакомство с языком JavaScrip, а также демонстрируется использование компьютерных технологий в сфере археологии.
20-я лекция: рассматривается тема компьютерной безопасности: излагаются основы личной безопасности в Интернете, принципы работы с паролями, объясняется специфика вредоносного программного обеспечения. Также в лекции затрагиваются проблемы неприкосновенности личных данных в современную цифровую эпоху, в том числе в общественно-политическом контексте.
21-я лекция: профессор Сказелатти из Йельского Университета рассказывает о системах обработки естественных языков. В лекции рассматриваются алгоритмы распознавания речи, раскрывается понятие статистических моделей распознавания речи, скрытых марковских моделей, вопросно-ответной системы, семантической обработки текста, а также затрагивается тема создания систем невербального общения.
22-я лекция: профессор Сказелатти из Йельского Университета демонстрирует использование искусственного интеллекта в играх. В лекции рассматриваются алгоритмы минимакс и альфа-бета-отсечение, а также разбирается игра робота в крестики-нолики.
23-я лекция: подводятся итоги курса, в игровой форме повторяются некоторые темы, идет непринужденное общение.