Некоторые трудности при обучении программированию:что нельзя обойти и умолч...Alexey Neznanov
Презентация к обсуждению с учителями информатики на школе учителей основных трудностей при обучении программированию и алгоритмизации в старших классах.
Тема не устаревает уже много лет. Систематизация в красивой форме давно напрашивалась.
Как обычно, есть красивые картинки и полезные ссылки.
HappyDev-lite-2016-весна 05 Евгений Тюменцев. Не все технологии одинаково по...HappyDev-lite
Новые технологии и инструменты программирования появляются каждый год. Какие-то умирают быстро, а какие-то приходят надолго. Не хочется тратить время на изучение того, что быстро окажется ненужным.
В докладе будут рассказаны причины возникновения бесполезных технологий, почему они сначала кажутся хорошими, а потом наступает разочарование, а также как научиться самому выбирать правильные.
The document discusses how the author evolved the Perlanet software by refactoring it to use Moose and a trait-based architecture. Some key points:
- Perlanet started as a monolithic module but was hard to customize or add new features to.
- The author used Moose to "slash and burn" the code into a more object-oriented and overridable structure using traits instead of large subclasses.
- Traits were used to extract specific behaviors like HTML scrubbing, YAML configuration, etc. into reusable modules.
- This allowed Perlanet to become a "hollow shell" that loads functionality via traits, making it easier to customize and extend.
- The
Некоторые трудности при обучении программированию:что нельзя обойти и умолч...Alexey Neznanov
Презентация к обсуждению с учителями информатики на школе учителей основных трудностей при обучении программированию и алгоритмизации в старших классах.
Тема не устаревает уже много лет. Систематизация в красивой форме давно напрашивалась.
Как обычно, есть красивые картинки и полезные ссылки.
HappyDev-lite-2016-весна 05 Евгений Тюменцев. Не все технологии одинаково по...HappyDev-lite
Новые технологии и инструменты программирования появляются каждый год. Какие-то умирают быстро, а какие-то приходят надолго. Не хочется тратить время на изучение того, что быстро окажется ненужным.
В докладе будут рассказаны причины возникновения бесполезных технологий, почему они сначала кажутся хорошими, а потом наступает разочарование, а также как научиться самому выбирать правильные.
The document discusses how the author evolved the Perlanet software by refactoring it to use Moose and a trait-based architecture. Some key points:
- Perlanet started as a monolithic module but was hard to customize or add new features to.
- The author used Moose to "slash and burn" the code into a more object-oriented and overridable structure using traits instead of large subclasses.
- Traits were used to extract specific behaviors like HTML scrubbing, YAML configuration, etc. into reusable modules.
- This allowed Perlanet to become a "hollow shell" that loads functionality via traits, making it easier to customize and extend.
- The
Battersea Election Candidates on the InternetDave Cross
This document summarizes campaign activity for candidates in the Battersea election and their use of the internet. It finds that while there are seven candidates, only four publish online feeds. One candidate is very active on Twitter but the other feeds are not very busy. It concludes that this election did not live up to promises of being an "internet election" as candidates are still unsure about online benefits and digital campaigning needs more party resources, though it may be the future of campaigning.
The document discusses using Perl on the command line. It provides examples of using one-liners with flags like -e, -p, and -n to manipulate or filter data without writing scripts. Specific applications demonstrated include parsing log files, sorting/counting words, and solving word puzzles by manipulating strings. The document emphasizes how Perl on the command line allows ad hoc data munging and analysis tasks in just a few lines of code.
The document appears to be a presentation about Moose, an object framework for Perl 5. It begins by discussing how Moose simplifies object-oriented programming in Perl by providing features like defining classes and attributes in a cleaner way compared to native Perl 5. It emphasizes that Moose is just Perl code under the hood and not magic. It then covers object-oriented programming fundamentals like state, behavior, and code reuse before demonstrating a basic Employee class.
The document provides an overview of modern Perl features including:
- Using say() instead of print for output
- Defined-or operator //
- switch/given statement for conditionals
- Smart matching with ~~ operator
- state keyword for static variables
- New regex features like named capture buffers
- Object oriented programming with Moose
- Defining classes, attributes, types and inheritance with Moose
- Exception handling with TryCatch and autodie
- Best practices for coding style, layout, testing and more
This is the Moose talk I gave at YAPC::NA 2012.
It included a practical example of a Moose objects code, a simple app called Comican. The code is not available online. If you want it, just email me (sawyer ATT cpan DOTT org).
The 1-st lecture from the course "Java Core".
Chair of Information Net Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Sergey Teplyakov, .NET Expert, “SOLID Principles in the real world”:
• Why design principles matters?
• SOLID principles in the real world
S – Single Responsibility Principle
O – Open-Closed Principle
L – Liskov Substitution Principle
I – Interface Segregation Principle
D – Dependency Inversion Principle
Занятие №3 в рамках Курсов программирования Ruby on Rails.
Группа курсов «ВКонтакте»: http://vk.com/ruby_school
Организатор — Агентство интернет-маркетинга Мэйк makeagency.ru. Курсы проводятся на базе Кузбасского государственного технического университета, кафедры «Информационные и автоматизированные производственные системы».
4. Наследование
• Уточнение: класс-потомок добавляет некоторые существенные
черты к родительскому состоянию, добавляет особое
поведение
• Перекрытие: класс-потомок изменяет некоторые аспекты
поведения класса-родителя, перекрывая методы последнего
• Повторное использование кода: поведение и состояние
можно изменять, не дублируя код
5. Наследование в Java
• Наследование с помощью ключевого слова extends
• Только единичное наследование
• Только public наследование
• По умолчанию – наследование от java.lang.Object
• К классу-родителю можно обратиться с помощью super
• Наследование можно запретить, используя final
7. Перекрытие методов
• Для перекрытия методов достаточно в классе-потомке объявить
метод с той же сигнатурой, что и в классе-родителе
• Перекрытие методов можно запретить, пометив метод
ключевым словом final
• static методы нельзя перекрывать, их можно только скрывать
• Начиная с Java 5, перекрывающие методы рекомендуется
помечать аннотацией @Override
8. Абстрактные классы и методы
• Абстрактные методы не имеют тела
• Абстрактный метод помечается ключевым словом abstract
• Если в классе есть абстрактный метод, то и класс необходимо
пометить ключевым словом abstract
10. Наследование и полиморфизм
Runtime type information (RTTI)
• Upcasting (восходящее преобразование) – интерпретация
ссылки на объект как ссылки на базовый класс)
• Downcasting (нисходящее преобразование)
– instanceof
– ClassCastExeption
11. Интерфейсы в Java
• Интерфейсы содержат только объявления методов и (или)
констант
• Реализация интерфейса – с помощью ключевого слова
implements
• Что будет, если реализовать не все методы интерфейса?
12. Множественное наследование
• Для классов можно использовать только единичное
наследование
• Вместо множественного наследования можно использовать
интерфейсы и агрегацию
• Для интерфейсов разрешено множественное наследование
14. Основы UML
• UML – универсальный язык моделирования, созданный для
прототипирования программного обеспечения и других систем
• Идеология UML – система описывается в терминах
взаимодействия объектов с помощью графических диаграмм
• Диаграммы используются для формализации требований,
выполнения анализа, проектирования решения и описания
процесса развёртывания
15. Use Cases
• На диаграмме вариантов использования (use cases)
изображаются возможные варианты использования системы с
точки зрения пользователя системы (взгляд на систему, как на
«чёрный ящик»)
16. Диаграммы классов
• На диаграмме классов изображаются поля и методы классов, а
также отношения между классами
17. Диаграммы классов
• На диаграмме классов, кроме прочего, изображается
реализация и использование интерфейсов
18. Типы взаимосвязей
• Association (ассоциация)
• Aggregation (агрегация) – часть целого
– Часть может существовать отдельно от целого
• Composition (композиция) – часть целого
– Часть не может существовать отдельно от целого