С тегами:

лекция

Любые посты за всё время, сначала свежие, с любым рейтингом
Найти посты
сбросить
загрузка...
35
Программирование Python по моим конспектам Лекция 9.5
16 Комментариев  

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.



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


Отвечая на 90% одинаковых вопросов-


Я знаю, что это есть в каждой книге по питону. Это логично. Не логично было бы, если бы это было в книге по анатомии хомяков.


Я это делаю, потому что мне это нравится.


Список прошлых лекций



http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...



Здорова, выжившим после прошлого задания.

Сегодня у нас хорошая тема, которую называют в русских селениях  обработка исключений. Тема маленькая, однако сегодня будет много задачек. Тем самым, мы уже вплотную подобрались к теме "функции", которую я напишу либо сегодня вечером, либо завтра утром.


Долго сказки рассказывать не буду, так что сразу к делу.

Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост

И вот использует нашу программу Марья Степановна из бухгалтерии.

Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост

Ага..А кто виноват? А вот я и виноват! "защиту от дурака" никто не отменял.

Ведь когда я программу писал, я же знал, что туда нужно число пихать, а Марья Степановна не знала. Вот вам и ошибка.

Таких примеров могут быть миллионы, когда при одних обстоятельствах программа может работать годами, пока очередная старая сука сотрудница нам все не запорит.

Вот еще пример. В нашей жизни все збс в случае x/y . Ровно до  тех пор пока у не укажет на ноль, а начальник нам на дверь.

А теперь представте себе, что вы написали текстовый редактор, который крашится из за того, что вы завтыкали нормально алгоритм выдумать.Человек пишет огромный договор о продаже самолета на вашем редакторе... ииии... когда он уже почти готов сохранить- у вас ошибочка ZeroDivisionError или еще чо. А через неделю на вашу фирму сразу падает лавина судебных исков по уплате утраченной выгоды от комнатных бизнесменов. И все- вам пяяясд@

Однако бояться и плакать не стоит. О вас подумали бородатые люди в узких штанах.

Подобные ошибки можно избежать. Встречаем героя программы

try...except

Данный товарищ работает как боженька, который своими ручками вам соломку стилет на то место, куда вы скорее всего упадете. Не верите? Дык я докажу!

Сначала мы разберемся, что это за зверь такой.

Иногда мы можем догадываться, что в некотором куске кода может у нас выйти беда. Вот как в самом первом примере. Поэтому мы говорим интерпретатору- эй! интерпритатор, попытайся ка запустить этот кусок кода, но если он не сработает, ну и куй с ним! Вот тебе другие задания на этот случай.

Утрирую конечно.

В своей полной красе выглядит все дело так


try:

блок команд

except: (тут еще может стоять тип ошибки. Но не обязательно):

что делать в случае ошибки в блоке try


Ну и как всегда ради вас иду покорять вершины и показывать все это дело на живом питоне.

Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост
Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост

Это же лучше, чем получать кучу красных матюков на мониторе?

Итак- если содержимой блока try выполняется без ошибок- интерпретатор перепрыгивает except и идет дальше. В противном случае- заходит в except и работает согласно ваших команд.

Один try в свою очередь может содержать несколько except, дабы отреагировать на разные типы ошибок. В таком случае после except необходимо указать тип ожидаемой ошибки.

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

Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост
Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост

В данном случае я указал тип ожидаемой ошибки ValueError. Если не понимаете откуда я ее взял-вторая картинка предпоследняя строка.

Еще есть такой зверь как try-finall, но с ним погодим. Как обещал- по теории был краток.


А теперь начнем с легких заданий на разминку.


Напишите программу, которая продает билеты в кино. Пользователь вводит возраст.

Если возраст меньше 18, но больше 11 лет- выводится цена в 3 рубля. До 11 лет-бесплатно. Свыше 18-5 рублей.


Напишите программу, которая при вводе года высчитывает является ли этот год высокосным. Я специально не стану растасовывать информацию о высокостых годах. Но нагуглил вам подсказку


http://ru.wikihow.com/%D0%B2%D1%8B%D1%81%D1%87%D0%B8%D1%82%D...


Напишите вашу первую комп. игру. (со звездами нам долго еще возиться)- так что эта будет первой рабочей игрой.

Игра загадывает число от 0 до 100. Ваша задача угадать это число. Если вы загадали слишком большое число- программа должна подсказать о том, что вы ввели число больше чем она загадала, и наоборот. Если угадали- программа выводит поздравления


Создайте банковскую программу, которая считает возвраты по кредиту.

Вводимые данные -

сумма кредита

количество процентов, под которые сумма берется

Сумма ежегодных выплат, возвращаемых банку, и из которых будут вычисляться проценты и фактическая сумма взноса


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


Пример


Подсчет кредита

Сумма кредита в долларах 1000

Проценты в год 6

Годичный возврат 200


2017 Проценты 60 долларов, выплата 140 долларов, остаток 860 долларов

2018 Проценты 51 долларов, выплата 149 долларов, остаток 711 долларов

2019 Проценты 42 долларов, выплата 158 долларов, остаток 553 долларов

2020 Проценты 33 долларов, выплата 167 долларов, остаток 386 долларов

2017 Проценты 23 долларов, выплата 177 долларов, остаток 209 долларов

2017 Проценты 12 долларов, выплата 188 долларов, остаток 21 долларов

Остаток- 21 доллар



Известной  последовательность Улама.

Когда имеется  последовательность (3а+1)

-которая начинается со стартового а

-если а ==1 останавливаем последовательность

-если а четное число, нужно установить а=а/2. В противном случае установите a=3*a+1


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



ну а теперь вернемся к нашему геморрою.

Программирование Python по моим конспектам Лекция 9.5 питон, программирование, лекция, длиннопост

У многих из вас получилось заполнить небо случайными планетами. И это похвально!

С нижеупомянутым заданием я бы посоветовал повременить тем, кто не знаком с функциями. О них мы поговорим сегодня вечером либо завтра утром. Однако вы все-равно можете подумать как вы это все осуществите.

Остальные же, как говорится, с богом)


Теперь мы немного внесем жизнь в наш космос.


Первым пунктом меню было у нас- информация о планете.


Задача такова. При вводе номера планеты (из карты)


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


2.Выводится количество населения планеты и расса, ее заселяющая (аналогично случайносгенерированное название)


3. Выводится расстояние каждой планеты. Типа до земли 100 км, до луны 200


(достаем нашу формулу эвклида).


4 Выводим Основные ресурсы, которые добывает планета и их количество. Это тоже происходит рандомно. Ресурсы- газ, електричество, еда.


5 Выводим Количество населения


6 Выводим отношение планеты к нам. Хорошее негативное или нейтральное


7Выводим количество армии


8 выводим краткую историю планеты.



Все эти данные должны быть готовы быть изменены в любой момент.


Советую использовать двухмерный массив(последовательность). Сами выбирайте какой.


Обратите внимание на то, что вам придется каждый раз обновлять экран после обновления информации. При обновлении экрана задекларированные планеты должны оставаться на своих местах.


На этом я все.

Показать полностью 7
36
Программирование Python по моим конспектам Лекция 9.2
12 Комментариев  

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.



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

Отвечая на 90% одинаковых вопросов-

Я знаю, что это есть в каждой книге по питону. Это логично. Не логично было бы, если бы это было в книге по анатомии хомяков.

Я это делаю, потому что мне это нравится.



Список предыдущих лекций



http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...


http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...



Привет, товарищи, не знаю чем вас так удивил прошлый пост, ибо, по моему мнению, он был один из самых унылых, однако набежало аж +120 подписчиков. Это наталкивает меня на мысль, что все посты должны быть такими же унылыми как прошлый.

Да несцы, меченый, я пошутил.

Блеаць..говорила мама, что с шутками у меня так себе..


ладно. Это все присказка, а сказка впереди.

Сегодня мы поговорим о циклах. @Dantev специально как ты просил)

Первый наш клиент называется на разных языках по разному..одни называют его "ПОКА", другие "solange", третьи  говорят "في حين" ну а пиндосы не заморачивались и назвали его словом WHILE.

Очень хорошее слово. В жизни- ну ваще не заменимое. К примеру-


-не быкуй ПОКА не подкачался

или там..

-пей ПОКА она не стала красивой



Слово ПОКА решает наши  жизни, товарищи!! Оно, блеать, руководит парадом!

Давайте теперь подробнее рассорим первый пример.


-Я накачан?

-Нет

-Качаюсь

-Я накачан?

-Нет

-Качаюсь

-я накачан

-Да

-"ей йоопта, пацанчиг, иди сюдаа"


Второй пример


Красивая баба?

Страшная

Бухаю

Красивая баба?

Страшная

Бухаю

Красивая баба?

БАгиня!!

"выходи за меня!"


Что обедняет это все, кроме того, что это сраный бред? Правильно! Мы повторяем одно и тоже действие ПОКА не будет достигнуто условие. Это, поцоны, и есть цикл. Иногда цикл - есть зло. Например если мы плохие программисты или тупицы.

ВОт яркий пример


гладь кошку пока она зверь


Это называется бесконечным циклом. Вы будете гладить кошку до тех пор пока она не сдохнет к ебеням! И вот таких бесконечных циклов нужно избегать (иногда). Порой  они нужны.


Итак..это все прелюдия была.


Итак в питоне, как и в нашей, серой жизни, в циклах есть условие и инструкция.

Выглядит так


while условие:

инструкция  #не забываем о четырех пробелах


А теперь я покажу как все это работает на практике. Начнем с плохого примера. С той самой кошки.

Программирование Python по моим конспектам Лекция 9.2 питон, программирование, лекция, длиннопост

Условие будет выполняться бесконечно. И вот на мониторе мы уведем такое чудо

Программирование Python по моим конспектам Лекция 9.2 питон, программирование, лекция, длиннопост

И так бесконечно.


А вот и случай, когда нам такой цикл пригодится. Пишем программу которая принимает числа от 1 до 10, если число не входит в эти рамки- программа проявляет беспокойство по этому поводу.


Сначала я покажу, потом объясню.

Программирование Python по моим конспектам Лекция 9.2 питон, программирование, лекция, длиннопост

Первая строка- приглашение.

Вторая строка очень важна. Пока условие истинно, а истинно оно всегда, ибо True. Выполняем инструкции. Иначе говоря- выполняем бесконечно. Первая строка инструкции- принимаем значение числа. Вторая- сравниваем с условием - должно быть либо равно или больше единицы но меньше или равно десяти. Если все ок переходим к оператору break. Вот оно что!! это та самая панацея, которая выбрасывает нас из бесконечного цыкла. Без нее мы бы там вечно вертелись. Если же наше число не удовлетворяет это условие мы ессно не попадаем на break, а идем к else,  и цикл запускается заново.

А теперь пример более толковый.


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

Программирование Python по моим конспектам Лекция 9.2 питон, программирование, лекция, длиннопост

В первой строке мы просто выводим что то типа приветствия

За ней мы объявляем переменную, которая будет нашим условием и по умолчанию она указывает на строку "да"

Далее начинается условие цикла. Пока да- исполняй все, что внутри. В противном случае- не заходи в цикл.

В нашем случае переменная указывает на да. Значит мы в цикл заходим. Две первые строки инструкций цикла мы получаем длину и высоту прямоугольника. Третья строка- получаем площадь прямоугольника, которая получает имя vol. Далее мы выводим на экран наш результат и спрашиваем продолжить ли. На наш ответ начинает указывать ранеезадекларированная переменная ans, та самая, которая по умолчанию "да".

Если она снова станет "да"- цикл повторяется. Если мы напишем "нет" или вообще похер что, кроме "да"- цикл обрывается, нас из него выгоняют и мы оказываемся прямо пред последней строкой, которая благодарит нас за использование программой.

Программирование Python по моим конспектам Лекция 9.2 питон, программирование, лекция, длиннопост

Вот так, быть может, станет понятнее

Программирование Python по моим конспектам Лекция 9.2 питон, программирование, лекция, длиннопост

На сегодня мои полномочия все.

Показать полностью 6
22
Никогда не говорите с полицией!
44 Комментария  

Внимательно посмотрите этот ролик, возможно, когда-нибудь он сохранит вам свободу.

Запомните простое правило: нельзя разговаривать с полицией. Ни при каких обстоятельствах. Если вас задержали за совершение какого-либо правонарушения, если вас просто пригласили как свидетеля, ничего не говорите. Всегда ссылайтесь на 51-ю статью Конституции:


"Никто не обязан свидетельствовать против себя самого, своего супруга и близких родственников".

Когда человека задерживают, особенно если он невиновен, его первая реакция – попытаться доказать свою невиновность! И он начинает рассказывать полиции и следователям, "как всё было!" Людям почему-то кажется, что если они будут молчать, то это будет означать признание вины. Невиновному человеку ведь нечего скрывать, верно? Но это большая ошибка. Вы никак не поможете делу, зато почти наверняка навредите себе и своим близким.


Задержанному человеку почему-то кажется, что полиция и следователи разберутся в его деле, но у них нет задачи "разобраться". У них есть задача вас посадить! Ваши показания нужны полиции только для того, чтобы использовать их против вас. Именно поэтому они возьмут из них ровно то, что им будет нужно, а всё остальное опустят. Многие уголовные дела потом строились на показаниях, которые человек дал сразу после задержания.

Показать полностью 1
189
Программирование Python по моим конспектам Лекция 9.1
40 Комментариев  

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


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



Исправления и замечания приветствуются.


Список предыдущих лекций



http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...



Здоров, потерялся я тут немного со своими лекциями, однако збс, что этого никто не заметил.

Сегодня поговорим о важнецкой теме. Вот такой важной, шо аж ваще. Без  нее дела не будет. Крест на пузе- дела не будет!!

Сегодня мы поговорим о операторах разветвления. Ага. Разветвление-это вам не математика- тут придется думать!

Как всегда объясняю на кошках. И покажу тебе, мой дорогой друг, что этими самыми разветвлениями ты пользуешься каждый день. А если ты ими не пользуешься, то ты либо идиот либо умер.

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

Это самый яркий пример разветвления в нашей скучной, серой жизни. Ключевое слово тут-ЕСЛИ. Иными словами есть условие, и ЕСЛИ оно исполнено- наступает действие.

В питоне тоже есть свои ЕСЛИ, которые назвали в честь слова бусурманского if (если. пинд.яз)

Выглядит это так


if условие :

инструкция


Итак, первая строка- это условие, при исполнении которого наш интерпретатор переходит к второй строке. После первой строки стоит двоеточие - важно это не забыть!

А теперь самый важный  момент- все инструкции должны быть либо либо на одинаковое расстояние от левого края табулированы, либо просто отодвинуты пробелом. Только тогда они исполнятся. Но с этим мы еще не раз столкнемся так что научитесь на практике.

А вот вам пока мелкий примерчик. Программка принимает число, если число отрицательное- выводим его положительный эквивалент. Если положительное- не делаем ничего.

Программирование Python по моим конспектам Лекция 9.1 питон, программирование, лекция, длиннопост

Теперь разбор построчно. Первая строка- переменная x начинает указывать на значение равное введенному нами параметру в целочисленном формате.

вторая строка. проверяем соответствует ли наш х условию. Если значение в скобках истинно - интерпретатор заходит в раздел "инструкция" и исполняет его. Если нет он его перепрыгивает и сразу переходит к инструкции print.


Сумрачный гений не остановился на одном ифе и выдумал еще одну полезную штукенцию, которою зовут ЭЛСЭ. else (иначе. пинд.яз). В питоне выглядит так


if условие :

инструкция

else:

инструкция


Работает схема очень похоже на if, но с одним нюансом. Если условия исполнено- переходим к инструкции if. В противном случае переходим к инструкции else-

Создаем пример программы, которая продает билеты в кино. Для детей до 7 лет и пожилых людей (свыше 65 лет)- вход три рубля. Остальным - пять рублей.

Программирование Python по моим конспектам Лекция 9.1 питон, программирование, лекция, длиннопост

И последний зверь в нашем зоопарке зовется elif. Это как внебрачная дочь else и if.

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

ээээээээммммммммм....во! автомат продает разноцветные жвачки, которые по разному стоят.

Говнокодим же ниже!

Программирование Python по моим конспектам Лекция 9.1 питон, программирование, лекция, длиннопост

выглядит как говно. Слишком много условий в условиях. Именно для таких случаев и изобрели elif.

Выглядет это дело так


if условие :

инструкция

elif:

инструкция

elif:

инструкция

elif:

инструкция


Пока все выглядит не очень понятно. Но когда я модифицирую программку выше, все станет понятней. Смотрим

Программирование Python по моим конспектам Лекция 9.1 питон, программирование, лекция, длиннопост

Как минимум выглядит не так страшно и более логично. Разбор построчно.

Бублэ принимает строку.  Это понятно.

Первый иф- проверка условия, если условие истинно- пишем цену в рубль. Конец программы. Если не истенно - идем к строке elif ИНАЧЕЕСЛИ. Если и это условие условие не выполнено- идем к следующему и так далее.

последний else- это так званная "защита от дурака". Ведь кто знает что введет пользователь. Да мы и сами знаем какое слово из трех букв  вы введете туда однажды. Для таких случаев и работает последняя строка.

На сегодня мои полномочия все. Монолог окончен

Показать полностью 4
439
На лекции
5 Комментариев в Комиксы  
На лекции
205
22. CS50 на русском: Лекция #22 [Гарвард, Основы программирования, осень 2015 год]
11 Комментариев в Наука | Science  

Алоха, пикабу!

Представляем 22-ую лекцию легендарного Гарвардского курса CS50, который мы переводим и озвучиваем специально для JavaRush. В ней профессор Сказелатти из Йельского Университета демонстрирует использование искусственного интеллекта в играх. В лекции рассматриваются алгоритмы минимакс и альфа-бета-отсечение, а также разбирается игра робота в крестики-нолики.

Всего в курсе 24-лекции, и если вы ещё не посмотрели предыдущие – самое время начать знакомиться с ними. Список лекций 1-20 вот тут, а 21-ая лекция тут.


На кого рассчитан курс CS50?


Если вы — новичок, пройдите CS50. Если кто-то из ваших знакомых приглядывается к ИТ и программированию, советуйте CS50 не глядя. Я серьезно.


CS50 подойдет любому человеку, кто решил стать «айтишником». Пожалуй, его можно рекомендовать и способным 12-летним, и умудренным опытом «перебежчикам» из других профессий. Идеально — старшеклассникам и студентам.


Курс очень прогрессивный и обновляется из года в год. При этом в отличие от большинства подобных университетских обучающих программ (например, MIT 6.00X) от слушателя не требуются знания университетской математики, достаточно школьного уровня.


Что изучают на CS50?


— Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости;


— Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом. О бинарном поиске, простом по сути, но очень эффективном и требующем тщательности в реализации, Дэвид Малан расскажет сходу, прямо на нулевой лекции. И попробуйте потом забыть сцену с разрывом телефонного справочника, а вместе с ней — и полученные знания! Вообще, курс охватывает все основные алгоритмы, которые нужно знать и понимать «айтишникам»;


— Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;


— Основы языка программирования C и визуального языка Scratch. Собственно, все основные примеры и задания студенты делают на языке C;


— Основы баз данных и SQL;


— Веб-разработка: основы CSS, HTML, JavaScript и PHP. Естественно, только самые азы;


— Основы подготовки презентации проектов по программированию.


Поддержите нас плюсом и подписывайтесь на нас и сообщество «Наука».

Показать полностью
99
Владимир Сурдин — На Марс в один конец?
9 Комментариев в Наука | Science  

Для тех, кто не знает, помимо видеоблога мы делаем еще один некоммерческий проект - это научно-популярный лекторий, пока что только в Москве, но когда-нибудь доберемся и до других городов.


Сегодня вашему вниманию представляем лекцию Владимира Сурдина о Марсе.


Владимир Сурдин — российский астроном, популяризатор науки, старший научный сотрудник Государственного астрономического института имени П. К. Штернберга, доцент физического факультета МГУ.


Марс — уникальная планета, единственная в Солнечной системе, способная со временем стать запасной планетой для нашей цивилизации. Уже полвека Марс интенсивно изучают роботы и в последние годы всё чаще раздаются призывы к пилотируемой экспедиции на Марс. Есть ли шанс в ближайшее время побывать людям на Красной планете? Какие препятствия ожидают смельчаков? Что нужно создать и чему научиться для успешной колонизации Марса? Об этом всем и поговорим на лекции.


Больше лекций можно посмотреть у нас на канале: https://www.youtube.com/c/SetUpLC


Также хотим сообщить что 9 апреля в Москве пройдет космический лекторий приуроченный к дню космонавтики, подробнее здесь: https://vk.com/setup_politech


Вход бесплатный! Будем дарить научно-популярные книги за лучшие вопросы!

Показать полностью 1
26
Программирование Python по моим конспектам Лекция 8.9.1
50 Комментариев  

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


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

Исправления и замечания приветствуются.


Список предыдущих лекций



http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...



Здарова товарищи кусанты! Сегодня для вас наступили хреновые времена, когда руководство партии выделило для вас задания по целой, мать ее за ногу, лекции.

Однако, родина не пустит вас в бой, не снабдив предварительно пиздюлинами ценными советами.

Поэтому после короткой переклички. Все принимают упор лежа и слушают ушами.

Начнем мы с трансформации типов. Значит так. Вы мне это не это и глазами пустыми не смотрите вдаль, а смотрите ниже.

Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост

А теперь быстро отвечаем на вопрос. Каков будет результат действия программы если х=1

а y=2. Кто не ответил- идет в наряд на картошку. Кто ответил неверно- идет в наряд на парашу.

Хм..выходит все идут в наряд на парашу!! А чего? А того что вот

Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост

Непоняяятка вышла..ага..А все потому что питонище нам показало не сумму чисел, а результат процесса конкантенации.

Функция input(), ребятки, выводит строку, а не int. Вот где собачка порылась.

Так вот, курсанты. Для того чтобы солдату добиться суммы двух чисел, необходимо их превратить из строки в цело(или не цело)численный тип. Как это делается? Очень просто. Смотрим глазами ниже.

Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост

все решает функция int(), которая превращает в данном случае string в int. Можно еще вот так -

Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост

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


Это еще не все.

Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост
Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост

Ну вот и дождались. Задания.


Задание 1

какие результаты мы получим, при исполнении данных выражений. Какие Выражения неверны?

Программирование Python по моим конспектам Лекция 8.9.1 питон, языки программирования, лекция, длиннопост

Задание 2


Книжный номер ISBN состоит из 10 цифр.

a1a2a3a4a5a6a7a8a9a10

Последняя цифра а10 - это проверяющая цифра. Она высчитывается вот как

сначала идет сумма, по формуле ниже

p=1*а1+2*а2+3*а3+4*а4+5*а5+6*а6+7*а7+8*а8+9*а9

Проверочная цифра а10 это остаток целочисленного деления  p на 11.


Пример ISBN 3826604237 Проверочная цифра 7

Подсчет. 1*3+2*8+3*2+4*6+5*6+6*0+7*4+8*2+9*3=150

150 деленное на 7  остаток 7


Задание- нипишите программу, которая из ISBN высчитывает проверочную цифру. Вводится девятизначное целое число. Выводится проверочная цифра.


Задание 3

Напишете Программу которая считывает название песни, затем выводит это в формате чарта


Пример


Введите название песен


Название: Ohne dich

Название: Выпьем за любовь

Название: Нас не догонят


А вот и три первые песни чарта


Место 1: Ohne dich


Место 2: Выпьем за любовь


Место 3: Нас не догонят


=================

используйте для песен списки. Исходите из пустого списка [], который постоянно расширяется


Задание 4


Разработайте программу- телефонный справочник

Пример


Введите Имя и номер телефона

Имя Иван

Номер телефона 2255


Имя Петро

Номер телефона 000



Список телефонов

Иван 2255

Петро 000


Используйте Список из кортежей. Исходите из пустого списка [], который постоянно расширяется



Ну...удачи!!

Показать полностью 7
27
Программирование Python по моим конспектам Лекция 8.8
11 Комментариев  

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.



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



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

Клонирование элементов последовательности в n раз осуществляется оператором *

Программирование Python по моим конспектам Лекция 8.8 питон, языки программирования, лекция, длиннопост

Ничего сложного.

А теперь то, что нам будет нужным довольно скоро.

Определение длины последовательности. Длиной последовательности мы называем количество элементов последовательности. Такие вот дела, ребятки. Магия происходит с помощью функции len()

Программирование Python по моим конспектам Лекция 8.8 питон, языки программирования, лекция, длиннопост
Показать полностью 3
5605
Лекция по засёру машин и городских памятников.
184 Комментария  
Лекция по засёру машин и городских памятников.
372
Администрирование #03. VLAN.
53 Комментария в Лига Сисадминов  

Первая часть

Вторая часть

VLAN — Virtual Local Area Network

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

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

Сетевая топология — способ описания конфигурации сети, схема расположения и соединения сетевых устройств.

Физическая топология — описывает реальное расположение и связи между узлами сети.

Логическая топология — описывает хождение сигнала в рамках физической топологии.


Общая идеология:

VLAN переводится как «виртуальные локальные сети». Эта штука работает на канальном уровне модели OSI. Она позволяет делать

1) Локальную сеть, физически состоящую из нескольких железок (aka коммутаторов), но которая видится как сеть, в которой одна многопортовая железка.

2) И наоборот, на одной железке можно уместить несколько сетей так, что они не будут видеть друг-друга. Как будто мы попилили коммутатор на несколько маленьких свитчиков.

3) Комбинацию из 1 и 2:

Администрирование #03. VLAN. системное администрирование, лекция, vlan, IT, длиннопост

То есть, мы можем создавать логическую топологию сети не зависимо от физической топологии.

Тут надо отступить чуть в сторону. Никто не запрещает вам создать несколько локальных сетей без всяких VLAN и компы из одной сети будут видеть друг-друга (см. картинку ниже)

Администрирование #03. VLAN. системное администрирование, лекция, vlan, IT, длиннопост

На картинке выше комп с адресом 172.16.1.1 вполне увидит комп 172.16.1.2 без всяких дополнительных настроек. Также как и все компы с адресами из сетки 192.168.1.0/24 увидят друг друга. Но все эти компы из обеих сетей будут находится в одном широковещательном домене (в изначальном смысле этого термина – второй уровень модели OSI). То есть, все широковещательные запросы (например, DHCP), направленные на MAC-адрес FF:FF:FF:FF:FF:FF попадут на все порты. А вот если вы разделите сеть на VLAN’ы, то у вас будет свой широковещательный домен на каждый VLAN.

Когда и зачем это нужно:

1) Когда вы создаёте 50 локальных сетей на 47 коммутаторах, то есть когда ваша сеть начинает загибаться под массой широковещательных запросов. Например, как говорят учебники, сеть общежития. Советую прочитать про broadcast storm

2) Когда вы параноик хотите защититься от arp-spoofing атак

3) Когда вы сталкиваетесь с IP-телефонией и моделью подключения комп-телефон-свич (то есть, 2 устройства на одном порту и нужно разделать их трафик). Телефонию в принципе принято выносить в отдельный VLAN не зависимо от типа подключения телефонов. В общем случае, когда на порт приходит по некоторым признакам разный трафик, который не должен смешиваться. Например, интернет, телефония и некоторый прямой канал с дружественной фирмой от провайдера.

4) Когда вы хотите развести всех этих людей по подсетям. Бухи налево, юристы прямо, маркетологи направо. Может, им не стоит видеть друг друга в целях безопасности, кто знает?


Как всё происходит: на устройстве создается VLAN, в него добавляются порты, которые в этот VLAN входят. Порты бывают тегированные и нетегированные. Тег – это некоторая метка (число), которая идентифицирует принадлежность трафика к VLAN. Помечать трафик нужно, когда в одном проводе передается трафик нескольких VLAN’ов (см. картинку).

Администрирование #03. VLAN. системное администрирование, лекция, vlan, IT, длиннопост

Здесь :

VLAN1 — зеленый, в него входят порты 1, 7, 12, 14, 16 на switch1 и порты 1, 3, 4, 7, 8, 9, 11, 15 на switch2.

VLAN2 — синий, в него входят порты 3, 4, 6, 8, 9, 11, 13, 15, 16 на switch1 и порты 2, 5, 8, 13, 14, 16 на switch2.

VLAN3 — красный, в него входят порты 2, 5, 10, 16 на switch1 и порты 6, 8, 10, 12 на switch2.

Можно было бы соединить свитчи тремя патч-кордами (пунктирные линии) по одному на каждый VLAN, но не всегда это возможно и здорово (например, когда ваши свитчи расположены на разных этажах или когда VLAN’ов много, а свободных портов мало).

Сейчас свитчи соединены патч-кордом, который воткнут в 16 порт на первом свитче и в 8 порт на втором. Чтобы по нему могли ходить пакеты всех трёх VLAN'ов и не перемешиваться, патч-корд должен быть воткнут в тегированные порты. Порты 16 на первом и 8 на втором свитче — тегированные, каждый из них принадлежит всем трём VLAN'ам (также говорят и наоборот – три VLAN есть в этих портах). На входе в эти порты метка ставится (если нету), но на выходе не снимается.

Порты, помеченные одним цветом — нетегированные, в них нет меток, так как метки внутри одной сети не нужны. То есть, метка на входе в порт снимается (если есть) и на выходе не ставится.

Обычные пользовательские компьютеры воткнуты в одноцветные порты и знать не знают про всю эту муть - всем управляет коммутатор (заботливо ставит метки, если трафик надо запихнуть в трехцветный провод и снимает метки, если надо отдать данные компу - чтоб бедняга не мучился). Linux умеет понимать VLAN'ы (при вашем желании), некоторые сетевухи с правильными дровами под виндой тоже. Но по умолчанию всё отдается коммутатору.


И вот у вас несколько VLAN’ов, все счастливы, но друг друга сети совсем не видят. А надо. Чтобы настроить между ними маршрутизацию, нужен (тссс!) маршрутизатор. Ну или хотя бы L3-switch.

Пара ссылок с красивыми картинками от cisco: раз и два.


По просьбам трудящихся подписчиков несколько команд:

VLAN на компе с Debian:

Можно настраивать с помощью vconfig или с помощью ip link.

Создать VLAN на интерфейсе eth0. Имя VLAN'a – eth0.80, оно по-хорошему должно быть именно в таком формате: интерфейс.тег, ну и тег тут 80, уже понятно:

# ip link add link eth0 name eth0.80 type vlan id 80

# ifconfig eth0.80 up

Добавить IP:

# ip a a 172.16.1.1/24 dev eth0.80


VLAN на D-Link:

Создать VLAN с названием 45 и тегом 45:

# create vlan 45 tag 45

Добавить нетегированные порты с 8 по 11:

# config vlan 45 add untagged 8-11

Добавить тегированный порт 14:

# config vlan 45 add tagged 14

Удалить 10 порт из VLAN:

# config vlan 45 delete 10

Посмотреть информацию о VLAN:

# show vlan


VLAN на Cisco

У Cisco тегированные порты называются транковыми (trunk), а нетегированные native. Предупреждение: vlan 1 занят под native vlan. Также на коммутаторах cisco есть interface vlan1, который является интерфейсом управления – на него назначаете IP, чтобы заходить на свичи по сети

создать VLAN:

# vlan 2

# name vlan2

Добавить тегированные порты:

# config vlan2 add tagged 2,25

# exit

Изменить что-то с VLAN'ом:

# interface vlan2

добавить IP:

# ip address 10.1.2.1 255.255.255.0

Чтоб перевести порт в тегированный режим:

$ conf t

# interface fa0/24

# switchport trunk encapsulation dot1q

# swichport mode trunk

Разрешить VLAN'ы 1 и 2:

# switchport trunk allowed vlan 1,2

Включение нетегированного VLAN'а:

# switchport trunk native vlan 1

Режим по умолчанию, в этом порту не может быть тегированных пакетов:

# interface fa0/1

# switcport access vlan 1


В рамках cisco еще полезно ознакомиться с протоколом VTP.


Ну и напоследок: не стоит наслушавшись цискокурсов или начитавшись статей пилить свою сеть на VLAN’ы, если вы не понимаете, зачем вам это надо. Если у вас в широковещательном домене пару сотен устройств и все в одной сети, то не стоит заморачиваться (это моё личное мнение).

Показать полностью 3
231
Основы программирования: Лекция #10. Безопасность в Интернете. Обработка естественных языков, II [CS50-2015, Гарвард]
5 Комментариев в Наука | Science  

Доброго дня, Пикабу! Представляем 21-ую лекцию легендарного Гарвардского курса CS50, который мы переводим и озвучиваем специально для JavaRush.

В этой серии цикла профессор Сказелатти из Йельского Университета рассказывает о системах обработки естественных языков. В лекции рассматриваются алгоритмы распознавания речи, раскрывается понятие статистических моделей распознавания речи, скрытых марковских моделей, вопросно-ответной системы, семантической обработки текста, а также затрагивается тема создания систем невербального общения.

Всего в курсе 24-лекции, и если вы ещё не посмотрели предыдущие 20 – самое время начать знакомиться с ними. Список предыдущих лекций вот тут.


На кого рассчитан курс CS50?


Если вы — новичок, пройдите CS50. Если кто-то из ваших знакомых приглядывается к ИТ и программированию, советуйте CS50 не глядя. Я серьезно.


CS50 подойдет любому человеку, кто решил стать «айтишником». Пожалуй, его можно рекомендовать и способным 12-летним, и умудренным опытом «перебежчикам» из других профессий. Идеально — старшеклассникам и студентам.


Курс очень прогрессивный и обновляется из года в год. При этом в отличие от большинства подобных университетских обучающих программ (например, MIT 6.00X) от слушателя не требуются знания университетской математики, достаточно школьного уровня.


Что изучают на CS50?


— Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости;


— Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом. О бинарном поиске, простом по сути, но очень эффективном и требующем тщательности в реализации, Дэвид Малан расскажет сходу, прямо на нулевой лекции. И попробуйте потом забыть сцену с разрывом телефонного справочника, а вместе с ней — и полученные знания! Вообще, курс охватывает все основные алгоритмы, которые нужно знать и понимать «айтишникам»;


— Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;


— Основы языка программирования C и визуального языка Scratch. Собственно, все основные примеры и задания студенты делают на языке C;


— Основы баз данных и SQL;


— Веб-разработка: основы CSS, HTML, JavaScript и PHP. Естественно, только самые азы;


— Основы подготовки презентации проектов по программированию.



Поддержите нас плюсом и подписывайтесь на нас и сообщество «Наука».

Показать полностью
2193
Лекция "Как стать хорошим мальчиком"
25 Комментариев  
Лекция "Как стать хорошим мальчиком"
357
Биология поведения человека: Лекция #5. Молекулярная генетика, II [Роберт Сапольски, 2010. Стэнфорд]
9 Комментариев в Наука | Science  

Пикабу, привет!


Представляем вам пятую лекцию курса «Биология поведения человека» профессора Стэнфордского университета Роберта Сапольски. Это вторая часть раздела, посвященного связи биологии поведения и молекулярной генетики. В ней рассказывается о различных мутациях в компонентах естественного отбора на молекулярном уровне, а теории градуализма и прерывистого равновесия сводятся в общую модель развития.

Список уже переведённых лекций:


1-я лекция: Вступительная лекция об основных направлениях курса и том, почему опасно мыслить категориями.

2-я лекция: Эволюция поведения, I. В этой лекции профессор объясняет эволюцию поведения, используя наглядные примеры, в том числе широко известную «дилемму заключенного».

3-я лекция: Эволюция поведения, II.продолжение объяснения эволюции поведения.

4-я лекция: Молекулярная генетика, I. В ней рассказывается о связи синтеза белков и точечных мутаций с микроэволюционными изменениями, и обсуждаются конфликтующие друг с другом теории градуализма и прерывистого равновесия, а также феномен эпигенетики.


Всего в курсе 25 лекций, постепенно мы переведём все.


Этот курс выходит благодаря нашим подписчикам.


Поддержите нас плюсом и подписывайтесь на нас и сообщество «Наука».

276
Гарвардский курс CS50 на русском: двадцатая лекция
10 Комментариев в Наука | Science  

Шалом! А мы продолжаем публиковать лекции легендарного Гарвардского курса CS50, которые мы переводим и озвучиваем специально для JavaRush.

И рады вам представить уже 20-ю серию!

В этой серии цикла рассматривается тема компьютерной безопасности: излагаются основы личной безопасности в Интернете, принципы работы с паролями, объясняется специфика вредоносного программного обеспечения. Также в лекции затрагиваются проблемы неприкосновенности личных данных в современную цифровую эпоху, в том числе в общественно-политическом контексте.

Напомним, что всего в курсе 24 лекции.


Вот список уже переведённых на сегодняшний день лекций:


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 , а также демонстрируется использование компьютерных технологий в сфере археологии.


Подробнее о CS50

На кого рассчитан курс?


Если вы — новичок, пройдите CS50. Если кто-то из ваших знакомых приглядывается к ИТ и программированию, советуйте CS50 не глядя. Я серьезно.

CS50 подойдет любому человеку, кто решил стать «айтишником». Пожалуй, его можно рекомендовать и способным 12-летним, и умудренным опытом «перебежчикам» из других профессий. Идеально — старшеклассникам и студентам.

Курс очень прогрессивный и обновляется из года в год. При этом в отличие от большинства подобных университетских обучающих программ (например, MIT 6.00X) от слушателя не требуются знания университетской математики, достаточно школьного уровня.



Что изучают на CS50?


— Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости;

— Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом. О бинарном поиске, простом по сути, но очень эффективном и требующем тщательности в реализации, Дэвид Малан расскажет сходу, прямо на нулевой лекции. И попробуйте потом забыть сцену с разрывом телефонного справочника, а вместе с ней — и полученные знания! Вообще, курс охватывает все основные алгоритмы, которые нужно знать и понимать «айтишникам»;

— Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;

— Основы языка программирования C и визуального языка Scratch. Собственно, все основные примеры и задания студенты делают на языке C;

— Основы баз данных и SQL;

— Веб-разработка: основы CSS, HTML, JavaScript и PHP. Естественно, только самые азы;

— Основы подготовки презентации проектов по программированию.



Поддержите нас плюсом и подписывайтесь на нас и сообщество «Наука».

Показать полностью
2875
Лекция за 10 секунд от Теда Мосби
123 Комментария в World of building | Сооружения  

Источник - журнал о строительстве "World of building".

153
Администрирование#02. Удаленный доступ.
56 Комментариев в Лига Сисадминов  

Первая часть.

Надеюсь, кто хотел, тот прочитал в вики про модель OSI, там статья весьма улучшилась с тех пор, как я её видела последний раз, так что рекомендую.

Сегодня я сделаю некоторый вбоквел. Почему именно удаленный доступ? Потому что мы, админы, пользуемся этим ежедневно.


Администрирование#02. Удаленный доступ.

Вообще, что это такое: это когда вы с одного устройства попадаете на какое-то другое устройство и что-то можете с ним сделать. То есть, сидя попой в кресле за рабочим компом и сеть настраивать, и серваки админить, и пользователям помогать.

Для удобства, попробую разделить виды удаленного доступа на несколько классов.


1. Терминальный доступ. Сейчас этим словом называют доступ через консоль (такую, как в фильмах о хакерах – белые буковки на черном фоне). Этот вид доступа текстовый. Он используется для доступа на сервера без GUI (Graphical User Interface); для доступа на сервера с GUI, но с устройств без GUI; для доступа на различное сетевое оборудование; ну и просто как универсальный-доступ-куда-угодно, так как что может быть универсальнее консольки?

Кстати, цвет буковок и фона часто настраивается – всё для людей!

Для работы в терминале существуют команды с флагами и параметрами:

Терминал — он же консоль в повседневной речи, для желающих углубиться ссыль. В нашем случае, то самое черное окошко с белыми буквами. Открыть терминал можно в графическом интерфейсе (в Windows, Linux, MacOs), или же переключиться на один из стандартных терминалов с помощью Ctrl+Alt+F1(до F6) в некоторых Linux-системах (за все не поручусь). В Windows можно также использовать специальную программу Putty (ssh и telnet клиент + несколько фич).

Команда — команды набираются в терминале текстом, это программы, которые выполняют заложенные в них действия.

Флаг (ключ) — Флаги уточняют действие команд. Флаг – это модификатор, который указывается в командной строке вместе с именем команды, обычно после дефиса. (например, не просто соединиться с устройством, а по определенному порту).

Параметры пишутся после команды или после флагов, их иногда называют аргументами. Параметры задают информацию, необходимую для выполнения команды (например, IP адрес по которому надо подключиться).

TELNET — такое название носит и команда, и протокол. Специфицирует передачу символов ANSI. Не рекомендуется использовать не через свою локальную сеть, так как telnet не поддерживает шифрование. Но telnet - простой протокол, его знают очень многие устройства и не тормозят при использовании.

Порт — идентифицируемый номером системный ресурс, выделяемый приложению, выполняемому на некотором сетевом хосте, для связи с приложениями, выполняемыми на других сетевых хостах.

Некоторые особо известные порты:

80 — http

20, 21 – ftp

22 — ssh

23 – telnet

25 — smtp

[Лайфхак] Можно посмотреть, открыт ли порт на оборудовании следующим образом:

Коннектимся на оборудование по telnet по проверяемому порту. Если можно нажать Enter и при этом курсор перескакивает на следующую строку, значит порт открыт.

Windows telnet-клиент включается из «программы и компоненты»->«Включение или отключение компонентов Windows».

SSH — Secure Shell. Это протокол по которому осуществляется защищенный удаленный доступ. Плюсы в том, что весь трафик шифруется. Логиниться по ssh можно как используя логин-пароль, так и пару открытый-закрытый ключ.

Изменить в конфигурации ssh-сервера порт не помешает, так как про стандартный все в курсе, и злобные хакеры нехорошие автосканеры портов найдут открытый 22 порт, сделают вам DdoS атаку и подвесят ваш сервер, что вызовет печаль.


Лирической отступление. Схемы удаленного доступа чаще всего клиент-серверные. В этом случае сервер стоит там, КУДА мы подключаемся, а клиент – там, ОТКУДА идет подключение. То есть, у сисадмина стоит клиент, а на другой стороне сервер (даже если другая сторона является компьютером пользователя).


1.1) Команды, выполняемые на удаленном устройстве. В Windows, в виду отсутствия ssh, для многих команд (как обычных, так и powershell) можно указать имя или IP компьютера, на котором они должны выполниться.


2) Доступ к удаленному рабочему столу. Здесь я подразумеваю доступ с ПК/сервера на ПК/Сервер, где на обоих сторонах есть графический интерфейс. Вы просто работаете на чужом рабочем столе как на своем.

В Windows чаще всего используется протокол RDP, так как он встроен в систему. Если ваш Win-сервер не является терминальным сервером (с установленной специальной ролью), то на нем разрешено только два одновременных логина. В пользовательских Win-системах только один. Вероятно, кто-то пользуется удаленным помощником Windows, но обычно для пользователя его тапуск и создание приглашения является слишком сложным.

Также часто используются сторонние решения, вроде VNC, radmin, team viewer, ammyy admin и других. Удобны тем, что пользователь видит ваши действия, которые вы выполняете у него на ПК. Многие решения имеют версию под разные платформы, в том числе мобильные. Большинство умеет работать за NAT. Однако в организациях, где следят за безопасностью, обычно запрещены как минимум «бесплатные» варианты таких программ. Например, вот поэтому.


3) «Низкоуровневый» доступ к серверам. ILO в серверах HP, IPMI в серверах DEPO (и вообще, там, где материнки supermicro), может кто дополнит в комментариях по решениям. Это фактически доступ к серверной платформе. Может осуществляться как из браузера, так и из специального клиента. Предоставляет доступ к серверам до загрузки ОС (можно зайти в BIOS, можно в конфигурилку RAID, можно подключить ISO-образ и накатить ось, можно даже перепрошить BIOS удаленно), а также ограниченный доступ к управлению железками (сделать power off/on, поправить скорость кулеров, посмотреть температуру). Очень-очень удобно. Прощай дежурства в офисе вечером, всё можно сделать из дома. Не надо мерзнуть в серверной, если что сломалось – всё можно сделать с рабочего места. Для всего этого достаточно назначить IP, маску и шлюз на интерфейс IPMI/ILO, это делается из BIOS.

Администрирование#02. Удаленный доступ. системное администрирование, лекция, удаленный доступ, для начинающих, длиннопост
Администрирование#02. Удаленный доступ. системное администрирование, лекция, удаленный доступ, для начинающих, длиннопост

В заключение: хотелось больше рассказать про shell, привести примеры подключений, расписать подробнее про RDP, но поняла, что получится а) много и б) не нужно для общего ознакомления, потому безжалостно удалила лишнее.


P.S.: баянометр люто ругался на скрин консольки, но ничего похожего по содержанию не нашла.

Показать полностью 2
5029
Лекция
159 Комментариев  

Работаю в школе. Сегодня ездил со старшеклассниками на лекцию. Собрались слушатели с разных школ Москвы. Не так важно, о чем была лекция, как важно, что было в качестве призов... Самым активным участникам дарили (внимание!) бейсбольные биты. Не знаю, чем был обоснован выбор призов, но стоит отметить, что такой мотивации и концентрации внимания на лекциях я не видел уже давно. Награду получили около тридцати человек, но и этот факт не столь важен, сколь важен следующий: по окончании лекции участники вышли из зала на улицу и пошли в сторону метро. Да, нужно было видеть лица пассажиров, когда эта толпа спускалась по эскалатору ><.

ПС мероприятие удалось, организаторы молодцы))

565
Администрирование#01. Адресация в IP сетях
207 Комментариев в Лига Сисадминов  

Как и обещала, выкладываю первую часть.

Некоторое введение: статьи о базовых понятиях я писала еще в универе по лекциям, затем их вычитывал мой научный руководитель (aka nixleader), поэтому тега «моё» не будет. Статьи не претендуют на оригинальность, есть множество других. Они, также, вероятно, могут встретится в сети (распространялись в универе и свободно висят в справочной системе на работе). Я постараюсь указывать места, где будет встречаться копипаста с других ресурсов (далее такое будет). Помимо простых вещей, попробую привести в литературную форму некоторые сложные маны, которые писала чисто для себя, и выложу их отдельно.


Администрирование#01. Адресация в IP сетях

В семействе протоколов TCP/IP используются три типа адресов: локальные (физические, аппаратные), IP-адреса и символьные (доменные) имена. Рассмотрим первые два типа адресов.

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

Хост (Host) – устройство, работающее в сети на сетевом уровне модели OSI (компьютер, маршрутизатор и т.п.). Часто понятие путают с IP-адресом.

MAC-адрес — физический адрес компьютера (если точнее - сетевой карты или другого сетевого устройства). Размер адреса – 6 байт. Этот адрес должен быть уникальным для каждого устройства в локальной сети, и используется всеми устройствами для передачи данных внутри неё. (Как говорил мой преподаватель: «Вы еще не видели китайских сетевых карт: в одной серии карт может быть много повторяющихся MAC-адресов»).

IP-адрес

IP-адрес — это 32 бита (4 байта), 4 октета, представляющие собой «логический» адрес хоста в сети (сетевой адрес). Нужно понимать, что у одного хоста может быть много IP-адресов.

IP-адреса обычно записываются в десятичной системе счисления виде четырёх октетов X1.X2.X3.X4, где X1 – старший байт адреса.

Есть консорциум IANA, который раздает IP-адреса по 5 организациям (ARIN, RIPE, APNIC, AfriNIC, LACNIC). Им выдаются сети класса А. Далее эти организации распределяют адреса по заявкам от организаций со статусом LIR (Local Internet Resource) подсетями /22 или крупнее, а в случае выделения провайдеро-независимого блока - /24 (класс C) и крупнее.

Маска подсети — указывает, какая часть IP-адреса приходится на адрес сети, а какая — на адрес хоста в ней. Без адреса сети или IP-адреса используется только в обсуждении количества используемых/необходимых адресов.

Маска - это последовательность скольких-то единичек в начале, а потом - нулей, составляющих в итоге 32 бита. Бит равный единице означает, что на его месте в IP-адресе бит будет входить в адрес сети. Нулевые биты в маске определяют позиции бит адреса хоста в IP-адресе.

Маска записывается через “/” после IP-адреса и может записываться как IP (например, 192.168.1.100/255.255.255.0; Здесь маска 255.255.255.0 — это 24 единички и 8 нулей (в двоичной системе), первые 24 символа будут адресом сети, оставшиеся 8 — адресом хоста), или как число от 0 до 32 (192.168.1.100/24 — здесь «/24» — это маска, то есть 24 единички в начале, остальные — нули).

Адрес сети – зарезервированный IP адрес, используемый для обозначения всей сети (совместно с указанием маски сети). В адресе сети на месте адреса хоста все биты выставляются в нули.

Широковещательный запрос — отправка пакета всем устройствам в сети. Для реализации такой рассылки назначается специальный широковещательный адрес: в IP-адрес после адреса сети (вместо адреса хоста) все биты выставляются в единицы.

Соответственно, максимально возможное количество хостов в сети вычисляется по формуле 2^(32-маска)-2. (Так как, когда вместо адреса хоста все нули — это адрес сети, а когда все единички — это широковещательный запрос, соответственно, теряем два адреса из всех вариантов)


Дополнительные сведения:

Маска /32 — указывает, что написан адрес одного и ровно 1 (одного) хоста

Маска /31 — используется для маршрутизации для соединения точка-точка, или если два адреса на один комп (это делается для экономии адресов и для сокращения количества записей о маршрутизации соответственно).


0.0.0.0/0 — весь интернет.

255.255.255.255 — широковещательный запрос всем в локальной сети. Используется обычно в случаях, когда хосту неизвестны настройки локальной сети.


Адреса, которые запрещены в сети интернет, или же «локальные» адреса, которые можно использовать для себя без ограничений (так называемые, «серые» адреса):

Для собственных локальных сетей:

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

и

127.0.0.0/8 – loopback – адреса которые доступны только внутри одного хоста


Классификация сетей

A: 0-127/8

B: 128-191/16

C: 192-223/24

D: 224-239


В сети класса А 2^24-2 хостов в одной сети, в B - 2^16-2, в C – 256 -2=254 хоста.

Адреса класса D используются для многоадресной (multicast) передачи.

Остальные адреса на данный момент зарезервированы и не используются.

Стоит отметить, что ранее классы использовались для маршрутизации. Теперь же вся маршрутизация «бесклассовая» и классы сетей указываются только для указания размера сети (например, “сеть класса C” обозначает сеть с 256 адресами (с маской /24) (любую, даже 10.2.4.0/24!!))

Показать полностью
212
Лекция Cynic Mansion на comXfest 2017
40 Комментариев в Cynic Mansion  

Как и обещал, выкладываю запись лекции. Бонус в конце видео, слушатели.



Пожалуйста, войдите в аккаунт или зарегистрируйтесь