2021-04-21

Питання до проектів з Python

 Питання до проектів з Python

Общее по Computer Science и Web Development:


1. Что такое инженерия и процесс разработки в целом?


2. Какие знаете принципы программирования?


3. Чем отличаются процедурная и объектов-ориентированная парадигмы программирования?

4. Какие основные принципы ООП (наследование, инкапсуляция, полиморфизм)?



5. Что такое множественное наследование?

6. Какие есть шесть этапов разработки продукта в  Software Development lifecycle и какая разница между Agile и Kanban?

7. Какие есть методы HTTP-запросов и какая между ними разница?


8. Как выглядят HTTP-request / response?


9. Что такое авторизация и как она работает?


10. Что такое cookies?


11. Что такое веб уязвимость?


12. Какие знаете классические базы данных?


13. Как читать спецификацию в конкретном языке (например, PEP8 в Python)?


14. Как происходит взаимодействие клиента и сервера?


15. Какие есть подходы к проектированию API?


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


17. Что такое Acceptance Testing и зачем его используют?


18. Что такое модульные и интеграционные тесты, API-тесты?

19. Как писать unit-тесты?

20. Какие есть best practices в написании автотестов?

21. Какие базовые команды системы контроля версий?

22. Как использовать Git?

23. В чем разница между хешированием и шифрованием?

 


Python:


24. Python - интерпретируемый язык или компилируемый?

25. Какие есть меняющиеся и постоянные типы данных?

26. Что такое область видимости переменных?

27. Что такое introspection?

28. Разница между is и ==?

29. Разница между __init __ () и __new __ ()?

30. В чем разница между потоками и процессами?

31. Какие есть виды импорта?

32. Что такое класс, итератор, генератор?

33. Что такое метакласс, переменная цикла?

34. В чем разница между итераторами и генераторами?

35. В чем разница между staticmethod и classmethod?

36. Как работают декораторы, контекстные менеджеры?

37. Как работают dict comprehension, list comprehension и set comprehension?

38. Можно ли использовать несколько декораторов для одной функции?

39. Можно ли создать декоратор из класса?

40. Какие есть основные популярные пакеты (requests, pytest, etc)?

41. Что такое lambda-функции?

42. Что означает *args, **kwargs и как они используются?

43. Что такое exceptions, <try-except>?

44. Что такое PEP (Python Enhancement Proposal), какие из них знаете (PEP 8, PEP 484)?

45. Напишите hello-world сервис, используя один из фреймворков.

46. Какие есть типы данных и какая разница между list и tuple, зачем они?

47. Как использовать встроенные коллекции (list, set, dictionary)?

48. В чем заключается сложность доступа к элементам dict?

49. Как создается объект в Python, для чего __new__, зачем __init__?

50. Что знаете из модуля collections, какими еще built-in модулями пользовались?

51. Что такое шаблонизатор и как в нем выполнять базовые операции (объединять участки шаблона, выводить дату, выводить данные с серверной стороны)?

52. Как Python работает с HTTP-сервером?

53. Что происходит, когда создается виртуальная среда?

 

Вопросы для Middle
 

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

Обычно у мидлов спрашивают:

63. Ориентируетесь ли в *nix, можете ли написать скрипты/автоматизацию для себя и коллег?

64. Что такое многопоточность?

65. Что такое архитектура веб сервисов?

66. Как работает современное нагруженное веб приложение (нарисовать и обсудить примерную архитектуру, например, Twitter или Instagram)?

67. Что нужно для сайта / сервиса среднего размера (redis \ celery \ кэш \ логирование \ метрики)?

68. Как написать, задеплоить и поддерживать (микро) сервис?

69. Как масштабировать API?

70. Як проводить Code review?

71. Что такое абстрактная фабрика, как ее реализовать и зачем ее применяют?

72. Что такое цикломатическая сложность?

 

Python:


73. Async Python: как работает, зачем, что под капотом?

74. Сравнить асинхронные web-фреймворки.

75. Что такое модель памяти Python?

76. Что такое SQLAlchemy (Core и ORM частей) и какие есть альтернативы?

77. Принципы работы и механизм Garbage collection, reference counting?

78. Как работает thread locals?

79. Что такое _slots_?

80. Как передаются аргументы функций в Python (by value or reference)?

81. Что такое type annotation?

82. Для чего используют нижние подчеркивания в именах классов?

83. Статические анализаторы: Flake8, Pylint, Radon.

 

Бонус. Практические задания

 

1. Спроектировать клон Instagram. Это сервис, который понятен практически любому кандидату, даже если у него нет аккаунта. На высоком уровне он очень прост: картинки, описания, комментарии. Поэтому что-то минимальное сможет описать и джуниор. Если кандидат претендует на высшие позиции, можно бесконечно копать вглубь, касаясь API, тротлинга запросов, защиты от фрода, построения фидов пользователя и тому подобное.

2. Дано рекурсивное определение чисел Фибоначчи, надо написать функцию, которая реализует это определение.

3. Есть база данных из трех таблиц — стандартная many-to-many схема. Нужно написать запрос, который объединяет три таблицы и возвращает определенный результат.

4. Даем ТЗ какого-то полезного микросервиса (сокращалка url-ов, поиск дубликатов картинок, поиск тегов в текстах) или функции (rate limiter). Просим кандидата рассказать, как бы он его реализовал. Это дает возможность узнать, что привык использовать специалист, насколько глубоко он знает и понимает различные технологии.

5. Написать какой-то несложный декоратор (выводит аргументы функции на экран или, например, измеряет сколько времени выполнялась функция).

6. Junior`у можно предложить реализовать задачу FizzBuzz test.

7. Для Middle+ я люблю давать несложные задачки на рекурсию. Например, есть вложенный список чисел и нужно что-то на нем посчитать (скажем, найти максимум). Также, можно предложить написать аналог deepcopy для конкретной структуры данных (tree, graph).

8. Для Senior - игра «спроектировать за 5 минут...». Это может быть Google, FB, Twitter, высоконагруженный интернет-магазин, сервис поиска, продажи и бронирования билетов, сайт новостей и тому подобное. Такая задача помогает понять, как кандидат решает проблемы, ход его мыслей, умеет ли он отделять главное от второстепенного, понять, какого он типа ( «в глубину» или «в ширину»).

9. Игра «у юзера что-то не работает». На примере спроектированной системы собеседователь придумывает ошибку с «дикими симптомами», которую очень сложно понять, воспроизвести. Но нужно быстро решить проблему.

10. Задание, которое демонстрирует знание и понимание list и dict comprehensions.

Looking at the below code, write down the final values of A0, A1, ...An.
            A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
            A1 = range(10)
            A2 = sorted([i for i in A1 if i in A0])
            A3 = sorted([A0[s] for s in A0])
            A4 = [i for i in A1 if i in A3]
            A5 = {i:i*i for i in A1}
            A6 = [[i,i*i] for i in A1]
            A7 = [i if i%2 else 0 for i in A1 if 2 < i < 8]
            ','.join(str(j**2) for j in range(10)) – what is this object ?

 

11. Задача, в которой есть три функции, в них выполняются базовые операции (сортировка, фильтрация, поднесение массива к квадрату). Нужно упорядочить эти три функции в порядке возрастания времени, которое уходит на их выполнение.

Place the following functions below in order of their efficiency. They all take in a list of numbers between 0 and 1. The list can be quite long. An example input list would be [random.random () for i in range (100000)]. How would you prove that your answer is correct? - profiling?
def f1 (lIn):
            l1 = sorted (lIn)
            l2 = [i for i in l1 if i <0.5]
            return [i * i for i in l2]

def f2 (lIn):
            l1 = [i for i in lIn if i <0.5]
            l2 = sorted (l1)
            return [i * i for i in l2]

def f3 (lIn):
            l1 = [i * i for i in lIn]
            l2 = sorted (l1)
            return [i for i in l1 if i <(0.5 * 0.5)]

 

То есть, на входе все функции имеют одинаковые данные, на выходе выдают одинаковый результат. Но из-за того, что внутри операции выполняются в разном порядке, время выполнения будет отличаться. Здесь нужно разбираться в алгоритмах и понимать, что происходит с твоими данными в процессе. Эту задачу может решить Junior, а может не решить и Middle. Казалось бы, такая мелочь, но когда мы работаем с большим количеством данных, важно, чтобы код был оптимизирован и программа выполнялась максимально быстро.

 

12. Простые задачи на статистику или логику. Например, определить угол между стрелками часов, которые показывают 8:40.


2021-04-04

Теми проектів з Робототехніки

 

Теми проектів з робототехніки і автоматики

Зразки тем для творчих і дослідницьких проектів з робототехніки для дітей:



3D-принтер з Lego друкує шоколадом
Arduino драм машина (Yellow Drum Machine)
Arduino робот-сортувальник Skittles, надрукований на 3D-принтері
Arduino-Lego танк
Arduino-робот жук Ringo
Arduino-робот, що об'їжджає перешкоди
ArGo-автомобіль з конструктора Lego Technic і Arduino
Brave robot. Чутливий до світла BEAM-робот
Cambot-робот-фотограф на Raspberry Pi
Cannybots-open source роботи-іграшки
Drogerdy-танк, керований Raspberry Pi
Ev3 Print3rbot-робот-художник з Lego Mindstorms
EZ Wilber-говорить балансуючий робот з Lego Mindstorms
Lego Mindstorms EV3 3D-принтер 2.0
Lego Mindstorms NXT 2.0 грає в шахи
Lego Mindstorms-екскаватор, керований Microsoft Kinect
Lego-робот DIZZ3
MobBob-Крокуючий робот-смартфон
Noodlebot-Крокуючий робот на базі Arduino
Open Source проект робота на Arduino
PopPet-оригінальний Освітній робот
Znap-робот з LEGO Mindstorms EV3
Автономний квадрокоптер з GPS навігацією і телеметрією 97. Автоферма
Базова модель робота (візок)
Всюдихід з Lego з відео і bluetooth на Raspberry Pi
Гоночна машина з Lego Wedo
Запускай кавову машину, використовуючи Twitter
Ідеальний клас робототехніки
Як зробити аниматронный хвіст
Кіноапарат з Lego Mindstorms
Класифікація роботів
Космічні подорожі
Хрестики-нулики-ARBUZIKI-TEAM
Хрестики-нулики для Lego-робота
Лего-світ
Лимоноїд-робот, що продає напої
Марсохід, надрукований на 3D-принтері
Машина на пружинах з Lego WeDo
Чи можна створити робота своїми руками
О'кей Google, Сезам, відкрий двері
Підйомні механізми з LEGO Mindstorms
Позитивний DIY-гуманоїд
Повнорозмірний робот T-800 з фільму Термінатор
Прилад автоматичної подачі одноразових стаканчиків з LEGO Mindstorms
Принтер з Lego Mindstorms "STALKER ver. 2.0"
Програмовані роботи
Птеродактиль з LEGO WeDo 2.0
Рекламний промо робот WayBot на Raspberry Pi
Вирішувач кубика Рубіка
Робоноги з Lego Mindstorms
Робо-рука LittleBits
Робот-шукач
Робот - не просто іграшка
Робот-помічник
Робот-пускач паперових літачків
Робот-вирішувач судоку
Робот "Боббі"
Робот Educator Vehicle з LEGO Mindstorms EV3
Робот Juno: вивчай Arduino і програмування
Робот R2D2, надрукований на 3D-принтері
Робот T-800 Джон Генрі
Робот WALL-E на Arduino
Робот метелик для демонстрації систем управління в робототехніці
Робот Гидке каченя
Робот для гри в повітряний хокей з частин для 3D принтера
Робот і людина
Робот з комп'ютерної мишки
Робот з мультсеріалу "Рік і Морті"
Робот міньйон з яйця від Kinder-сюрпризу і Arduino
Робот на Arduino, керований за допомогою жестів
Робот на колесах з механізмом зацепа
Робот з мовним синтезом
Робот телеприсутності з arduino і нетбука
Робот, який грає в "хрестики-нулики" з людиною
Робот, що йде по лінії
Робот, що годує черепах


Робот, що малює по фотографії
Робот, що збирає кубик Рубіка
Робот танцює як Майкл Джексон
Робот-гексапод NXTAPOD з LEGO Mindstorms. Модель Даніеля Бенедеттеллі
Робот-гексапод з Lego Mindstorms NXT 2.0
Робот-гуманоїд Halley: Ambassador Robot 001
Робот-залізяка 1, керований по Bluetooth
Роботизована інтелектуальна система-РИС
Роботизоване монтування для веб-камери
Роботизована рука з Lego Mindstorms EV3
Роботизований комплекс Жизліп
Робот-кабан-динозавр DINOR3X з LEGO MINDSTORMS EV3
Робот-компаньйон на основі Arduino і Android-смартфона
Робот-маніпулятор Arm H25 з LEGO Mindstorms
Робот-маніпулятор з настільної лампи IKEA
Робототехніка та інноваційна технічна творчість
Робот-піаніст
Робот-кухар
Робот-пожежник з LEGO Mindstorms
Робот-риба на Arduino
Робот-сігвей (Gyro Boy) з Lego Mindstorms
Робот-собака на Arduino
Робот-сортувальник (Color Sorter) з LEGO Mindstorms EV3
Робот-шахіст на базі Raspberry Pi
Робот-шолом для чищення зубів
Робот-щеня (Puppy) з LEGO Mindstorms EV3
Робот
Роботи майбутнього
Роботи в житті людини
Роботи в науці і виробництві
Роботи в повсякденному житті
Зроби сам великого людиноподібного робота
Серво-вимикач світла для розумного будинку
Сноуборд у віртуальній реальності з Arduino і Google Cardboard
Собака "Тузик" з Lego WeDo
Збирай кубик Рубіка з Arduino UNO
Створення робота на основі конструктора LEGO Mindstorms EV3
Сундучок на Raspberry Pi, який розпізнає ваше обличчя
Техноград
Дивовижні механізми: шестерінки
Керована машина з Lego WeDo
Керуй телевізором силою думки і Arduino
Годинник-роботизована рука
Чотириногий робот з надрукованим на 3D-принтері корпусом
Що таке Робототехніка?
Крокуючий робот з паличок від морозива
Крокуючий робот з полікапролактону (поліморфуса)
Шредер з LEGO.

2020-08-25

Індивідуальний план роботи вчителя інформатики Нештун Олесі Володимирівни під час канікул з 17. 08 по 21. 08 у дитячому садочку № 41

 

Індивідуальний план роботи вчителя інформатики Нештун Олесі Володимирівни

під час канікул з 17. 08 по 21. 08 

Дата

Зміст роботи

Час роботи

 

 

Примітки

1

17.08

1. Нарада з заст. дир.з ВР Ганюкової О.В.

9.00-10.00

 

2

2. Робота над власним блогом

10.00-12.00

https://moyblog-olesay.blogspot.com/

3

3.Систематизація матеріалів у папці 11-А класу. Робота в особовими справами.

12.00-13.00

 

4

 

4. Робота над звітом

13.00-14.00

 

 

 

Дата

Зміст роботи

Час роботи

 

 

Примітки

1

18.08

1. Нарада з заст. дир.з НР Ясиновською І.Л.

9.00-10.00

 

2

2. Дослідження досвіду передових вчителів-інформатиків

10.00-12.00

https://www.youtube.com/watch?v=yGtq_KsZoaY

 

https://www.youtube.com/watch?v=qMNYp3ooV6Y

 

https://www.youtube.com/watch?v=p6lvGfki8PQ

 

https://www.youtube.com/watch?v=TGgXqKTu9K8

3

3. Перегляд вебінару на сайті «На урок»: «Освітні онлайн-сервіси в контексті підготовки продуктивного уроку»

12.00-13.00

https://naurok.com.ua/webinar/osvitni-onlayn-servisi-v-konteksti-pidgotovki-produktivnogo-uroku

4

 

4. Робота над звітом

13.00-14.00

 

 

 

Дата

Зміст роботи

Час роботи

 

 

Примітки

1

19.08

1. Нарада при  дир. Коваль Н.В.

9.00-10.00

 

2

2. Робота над власним классрумом.

Отпрацювання метод рекомендацій щодо викладання предметів у 2020-2021 н.р.

Опрацювання методичні впровадження та реалізація дистанційного навчання. Плюси та мінуси в роботі.

10.00-12.00

https://drive.google.com/file/d/1TwrnCw72G8zOfnXNI3VZXSD8sP15t71q/view  Методичні рекомендації викладання предметів в 2020-2021 н.р.

 

https://nus.org.ua/news/yak-nalagodyty-dystantsijne-navchannya-posibnyk-dlya-shkil-vid-go-smart-osvita-ta-mon/

 

https://don.kyivcity.gov.ua/files/2020/8/20/07.pdf

 

https://don.kyivcity.gov.ua/files/2020/8/19/90.pdf?fbclid=IwAR1hvDniTIQRxFex-AMIFKwxFobE87hfKfDmN1EhRl8TUr9kdrulcD1oRl8

3

3. Робота над календарним плануванням 6-х класів

12.00-13.00

 

4

 

4. Робота над звітом

13.00-14.00

 

 

Дата

Зміст роботи

Час роботи

 

 

Примітки

1

20.08

1. Нарада з заст. дир.з ВР Ганюкової О.В.

9.00-10.00

 

2

2. Робота над календарним плануванням 7-х класів

10.00-11.00

 

 

Отримання підручників для 11-го класу ЗОШ№14

11.00-12.30

 

3

3.Розробка  першого класного часу для 11-А.

12.30-13.00

 

4

 

4. Робота над звітом

13.00-14.00

 

 

Дата

Зміст роботи

Час роботи

 

 

Примітки

1

21.08

1. Робота над календарним плануванням  8-х класів

9.00-10.00

 

2

1. Робота над календарним плануванням  9-х класів, 11-х класів

10.00-11.00

 

3

3. Опрацювання онлайн сервісів, підбірка дидактичного матеріалу до дистанційних уроків з інформатики.

12.00-13.00

https://www.mentimeter.com/s/91250179de505d28aa2677cc4e03f1b7/b6da53dbbdf9/edit?#

4

 

4. Робота над звітом

 

 

 

 

Дата

Зміст роботи

Час роботи

 

 

Примітки

1

25.08

1. Нарада при директорі

9.00-11.00

 

2

1. Перегляд вебінару «СТЕМ ОСВІТА ресурси та перспективи розвитку в 2020-2021 н.р.»

11.00-16.00

https://vseosvita.ua/seminar/5

3

3. Опрацювання онлайн сервісів, підбірка дидактичного матеріалу до дистанційних уроків з інформатики.

12.00-13.00

 

4

 

4. Робота над звітом