ЯП для знакомства с ООП/GUI-dev
От: _hum_ Беларусь  
Дата: 23.06.19 10:25
Оценка:
Вопрос, наверное, больше к тем, кто так или иначе сталкивался с преподаванием.
Стоит задача для второкурсников инженерной специальности (интеллектуальные транспортные системы) после элементарной базы программирования, которая им давалась на первом курсе на PascalABC.Net, организовать курс (на один семестр), покрывающий вопросы ООП, основы GUI-разработки и элементы алгоритмизации (наподобие алгоритмов на графах). Какой, на ваш взгляд, язык/технологический стек больше всего подходит под эти цели? Пока ориентир на C++/Qt, но, может быть, есть что-то получше (и в методическом плане, и в прикладном), например, какой-нибудь там Python/PyQt?

Заранее благодарен всем за конструктивные ответы.
Re: ЯП для знакомства с ООП/GUI-dev
От: Pavel Dvorkin Россия  
Дата: 23.06.19 12:07
Оценка: +4
Здравствуйте, _hum_, Вы писали:

__> Вопрос, наверное, больше к тем, кто так или иначе сталкивался с преподаванием.

__>Стоит задача для второкурсников инженерной специальности (интеллектуальные транспортные системы) после элементарной базы программирования, которая им давалась на первом курсе на PascalABC.Net, организовать курс (на один семестр), покрывающий вопросы ООП, основы GUI-разработки и элементы алгоритмизации (наподобие алгоритмов на графах).

В один семестр ООП, основы GUI и элементы алгоритмизации для непрограммистов ? Однако. Особенно при том, что, видимо, кроме Паскаля из языков они ничего не знают.

Задача ИМХО безнадежная, и кроме профанации, ничего не получится.

Можно взять Delphi для GUI — хоть новый язык не придется учить. Разумеется, Delphi полностью устарела, но тут хоть что-то cделать бы ...

P.S. Сколько часов в неделю на лекции и практику ?
With best regards
Pavel Dvorkin
Re[2]: ЯП для знакомства с ООП/GUI-dev
От: _hum_ Беларусь  
Дата: 23.06.19 12:36
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>В один семестр ООП, основы GUI и элементы алгоритмизации для непрограммистов ? Однако. Особенно при том, что, видимо, кроме Паскаля из языков они ничего не знают.


PD>Задача ИМХО безнадежная, и кроме профанации, ничего не получится.


думаю, умение программировать на PascalABCNet дает хороший задел для того, чтобы усвоить эти темы за отведенное время (им важно познакомиться с концептами и заложить базис, чтобы, при случае, они могли сами доразобраться и применить на практике — все-таки это университет, а не колледж)

PD>Можно взять Delphi для GUI — хоть новый язык не придется учить. Разумеется, Delphi полностью устарела, но тут хоть что-то cделать бы ...


в таком варианте можно было бы и на PascalABCNet продолжить, но хотелось бы совместить с полезным (познакомить еще и с использующимися на практике языками программирования)

PD>P.S. Сколько часов в неделю на лекции и практику ?


Всего: 50 а.ч. — лек, 50 а.ч. — лаб, 34 а.ч. — курсовой. В неделю по плану 3/3.
Re[3]: ЯП для знакомства с ООП/GUI-dev
От: Pavel Dvorkin Россия  
Дата: 23.06.19 13:15
Оценка: +4
Здравствуйте, _hum_, Вы писали:

__>Всего: 50 а.ч. — лек, 50 а.ч. — лаб, 34 а.ч. — курсовой. В неделю по плану 3/3.


Остаюсь при своем мнении.

Если на будущее можно поставить вопрос о замене Паскаля, то на оба курса либо C# + WinForms(или WPF), либо Java + Swing
With best regards
Pavel Dvorkin
Re: ЯП для знакомства с ООП/GUI-dev
От: kov_serg Россия  
Дата: 23.06.19 13:46
Оценка:
Здравствуйте, _hum_, Вы писали:

__>Стоит задача для второкурсников инженерной специальности (интеллектуальные транспортные системы) после элементарной базы программирования, которая им давалась на первом курсе на PascalABC.Net, организовать курс (на один семестр), покрывающий вопросы ООП, основы GUI-разработки и элементы алгоритмизации (наподобие алгоритмов на графах).

Для "элементы алгоритмизации" наверное https://drakon.su, но это не точно.
Для OOP java+javafx (1),(2) — но большой объём.

__>Какой, на ваш взгляд, язык/технологический стек больше всего подходит под эти цели? Пока ориентир на C++/Qt, но, может быть, есть что-то получше (и в методическом плане, и в прикладном), например, какой-нибудь там Python/PyQt?

В сжатые сроки хорошо втиснится Ultimate++
Но если транспортные системы и еще "интеллектуальные" то R, Python и Matlab будут более логичными для анализа и моделирования.
Отредактировано 23.06.2019 13:50 kov_serg . Предыдущая версия .
Re: ЯП для знакомства с ООП/GUI-dev
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 23.06.19 18:40
Оценка:
__> конструктивные ответы.

JavaScript — подходит и для ООП и для UI.
И реально используется в жизни.
Re: ЯП для знакомства с ООП/GUI-dev
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 23.06.19 20:43
Оценка:
Здравствуйте, _hum_, Вы писали:

__>после элементарной базы программирования, которая им давалась на первом курсе на PascalABC.Net


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

__>организовать курс (на один семестр), покрывающий вопросы ООП, основы GUI-разработки и элементы алгоритмизации (наподобие алгоритмов на графах).


Тоже самое, вот первая ссылка в поисковике Эволюция дизайна интерфейсов операционных систем с 1981 по 2009 годы. С чего изучать ООП, с шаблонов проектирования, с основных принципов, а может с науки логики (Логика — учебник для средней школы. Виноградов), которую ООП просто копирует и адаптирует под компьютеры.

__>Какой, на ваш взгляд, язык/технологический стек больше всего подходит под эти цели? Пока ориентир на C++/Qt, но, может быть, есть что-то получше (и в методическом плане, и в прикладном)


В прикладном вряд ли есть что лучше, сверхобъёмы кода, огромные возможности. Но в методическом это лишь один из вариантов. Практически весь Qt состоит из божественных объектов. Можно ли было этого избежать? Ведь тогда классов стало бы гораздо больше. А что у нас там создаёт метаобъектный компилятор? Готовы ли вы заплатить за интроспецию такую цену? А ведь C++ имеет и другие возможности позволяющие не искать компромиссов между абстракцией и высокой производительностью.

Я часто слышал такое мнение, что люди должны научиться всему сами. Преподаватель в ВУЗе или ещё где это дескать прокладка, говорящая голова, от него ничего не зависит, всё в руках учеников. Не могут они усвоить информацию, так это просто они глупые и/или не хотят учиться. В этом есть доля истины, но тогда от преподавателей нужно избавляться в массовом порядке. Если ученик может систематизировать весь материал сам, так он возьмёт книжку и не нужен ему никакой курс обучения, даже для первоначального освоения.

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

Вся гениальность в простоте,
А не в закрученных понятиях,
Чем проще высказана мысль,
Тем больше в мыслях знания.

Чем глубже мысль, тем шире круг,
Её вселенского познания.
Чем больше мысли глубина,
Тем выше понимание.

Re: ЯП для знакомства с ООП/GUI-dev
От: Александр Кузнецов Россия  
Дата: 24.06.19 06:10
Оценка: :)
Здравствуйте, _hum_, Вы писали:

__> Вопрос, наверное, больше к тем, кто так или иначе сталкивался с преподаванием.

__>Стоит задача для второкурсников инженерной специальности (интеллектуальные транспортные системы) после элементарной базы программирования, которая им давалась на первом курсе на PascalABC.Net, организовать курс (на один семестр), покрывающий вопросы ООП, основы GUI-разработки и элементы алгоритмизации (наподобие алгоритмов на графах).
Собственно, фейспалм вам по этому поводу уже сказали, присоединюсь.
После курса Паскаля студенты будут минимум занятий 8-10 переучиваться на новый язык. Проверено. Готовьтесь под предлогом "повторить основы" учить их основам нового синтаксиса. Поверьте, дешевле будет, чем начать сразу с алгоритмики и потом видеть абсолютно не понимающие лица. Дальше:
    1. Основы ООП — минимум рассказать и показать: 3-4 недели (лекция+практика). Причём под "минимумом" подразумевается, что они не путаются в синтаксисе, а не "освоили паттерны проектирования и умеют их применять". Если давать хотя бы "нормально", то +курсовая и разбор хотя бы основных архитектурных подходов занятий на 8-10 (с написанием примера какой-нибудь задачи и подробным разбором, почему так, а не иначе). Меньше не получится физически — ООП не работает на маленьких проектах.
    2. Алгоритмы и структуры данных — по нормальному, отдельный курс (36 часов лекций + 36 часов практик + зачёт/экзамен). Тогда получится туда и разбор типовых алгоритмов поисков/сортировок впихнуть, и списки/стеки/хештаблицы и основы алгоритмов на графах. Ключевое слово "основы", типа поиска в глубину/ширину. Хотите подробнее + ещё курс примерно на 18/18, и то, это если не углубляться.
    3. GUI — смотря что хотите. Простейшие прямоугольники/круги — за пару объясняются без труда. Как только дело доходит до чего-то более-менее серьёзного — нет. Основы трёхмерщины — пара лекций и лаб, чтобы студенты научились рисовать вращающийся кубик (минималка для того, чтобы они поняли, что такое матрицы). Базовые алгоритмы попиксельного рисования — ещё 2-3 недели (лекция+лаба). Если лезть в современные библиотеки и доходить до шейдеров и прочего, то добро пожаловать на отдельный курс, причём как бы не покруче, чем на алгоритмику.
В общем, в обозначенные временные рамки (ответ Павлу я читал) более-менее укладывается только повтор синтаксиса + базовые алгоритмы (про графы забудьте, в дебри "10+ видов сортировок" тоже лезть не советую) + ООП на уровне "слышали три матерных слова: инкапсуляция, наследование и это, забыл как называется" + рисование простейших плоскостных фигур, копирование картинок и т.д... Курсовая может как "вытащить", так и всё "убить", сильно зависит от группы и качества преподавания. Попробуйте дать какую-нибудь простую игру на ООП/графику в качестве курсовой (чтобы студентам было интересно) и разбирать на лекциях-практиках аналогичную игру в качестве примера. Тогда может получиться что-нибудь путное. Игры "на ООП" — это не тетрис/змейка и т.д., а что-нибудь типа "Tower defence" с максимально упрощённой графикой и правилами. Но заранее готовьте несколько тем "для тех, кто послабее".

__> Какой, на ваш взгляд, язык/технологический стек больше всего подходит под эти цели? Пока ориентир на C++/Qt, но, может быть, есть что-то получше (и в методическом плане, и в прикладном), например, какой-нибудь там Python/PyQt?

Питон — задумка интересная, но не рекомендую. На перспективу лучше что-нибудь максимально C-подобное, из серии C++/Qt или C# или Java. Если есть возможность, я бы поинтересовался, а что им будут читать дальше и попробовал бы выстроить линейку курсов в целом. А то может выясниться, что им дальше на Java что-нибудь читают, а тут вы с C++/C#/Pyton.

__> Заранее благодарен всем за конструктивные ответы.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: ЯП для знакомства с ООП/GUI-dev
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 24.06.19 09:42
Оценка:
Здравствуйте, _hum_, Вы писали:

__> Заранее благодарен всем за конструктивные ответы.

Если это радиоинженеры, то безусловно LabView и что-то простенькое на C. ООП, ГУЙ, ну это такое...
Sic luceat lux!
Re[2]: ЯП для знакомства с ООП/GUI-dev
От: Cyberax Марс  
Дата: 24.06.19 17:29
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Для "элементы алгоритмизации" наверное https://drakon.su, но это не точно.

_>Для OOP java+javafx (1),(2) — но большой объём.
Откуда вы эту мертвечину берёте?!?
Sapienti sat!
Re: ЯП для знакомства с ООП/GUI-dev
От: Cyberax Марс  
Дата: 24.06.19 17:31
Оценка: +2
Здравствуйте, _hum_, Вы писали:

__> Вопрос, наверное, больше к тем, кто так или иначе сталкивался с преподаванием.

__>Стоит задача для второкурсников инженерной специальности (интеллектуальные транспортные системы) после элементарной базы программирования, которая им давалась на первом курсе на PascalABC.Net, организовать курс (на один семестр), покрывающий вопросы ООП, основы GUI-разработки и элементы алгоритмизации (наподобие алгоритмов на графах).
Сразу вообще всё? Тут каждый пункт — на отдельный курс.

Если брать практику — то сейчас UI пишется на HTML+JS (или его вариантах).
Sapienti sat!
Re[3]: ЯП для знакомства с ООП/GUI-dev
От: kov_serg Россия  
Дата: 24.06.19 18:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, kov_serg, Вы писали:


_>>Для "элементы алгоритмизации" наверное https://drakon.su, но это не точно.

_>>Для OOP java+javafx (1),(2) — но большой объём.
C>Откуда вы эту мертвечину берёте?!?
Не нравится не ешь. Или вы из секты поклонников js+html+css, которая избавит человечество от страданий?
И стремиться надо только к тому чтобы всё было через браузер и наступит всеобщее счастье?
Re[4]: ЯП для знакомства с ООП/GUI-dev
От: Cyberax Марс  
Дата: 24.06.19 20:40
Оценка:
Здравствуйте, kov_serg, Вы писали:

C>>Откуда вы эту мертвечину берёте?!?

_>Не нравится не ешь. Или вы из секты поклонников js+html+css, которая избавит человечество от страданий?
Зачем студентов учить уже заведомо дохлому JavaFX, когда JS вполне себе пригоден для 99% случаев.
Sapienti sat!
Re[5]: ЯП для знакомства с ООП/GUI-dev
От: kov_serg Россия  
Дата: 24.06.19 20:48
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, kov_serg, Вы писали:


C>>>Откуда вы эту мертвечину берёте?!?

_>>Не нравится не ешь. Или вы из секты поклонников js+html+css, которая избавит человечество от страданий?
C>Зачем студентов учить уже заведомо дохлому JavaFX, когда JS вполне себе пригоден для 99% случаев.
Вы видимо им не пользовались https://openjfx.io/
Re[6]: ЯП для знакомства с ООП/GUI-dev
От: Cyberax Марс  
Дата: 25.06.19 23:07
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>>>Не нравится не ешь. Или вы из секты поклонников js+html+css, которая избавит человечество от страданий?

C>>Зачем студентов учить уже заведомо дохлому JavaFX, когда JS вполне себе пригоден для 99% случаев.
_>Вы видимо им не пользовались https://openjfx.io/
Конечно, не пользовался. Потому как пользоваться заведомо дохлым продуктом, который ещё и не поддерживается на мобильных устройствах, — это нынче из области психиатрии.
Sapienti sat!
Re[7]: ЯП для знакомства с ООП/GUI-dev
От: kov_serg Россия  
Дата: 26.06.19 03:47
Оценка:
Здравствуйте, Cyberax, Вы писали:

_>>Вы видимо им не пользовались https://openjfx.io/

C>Конечно, не пользовался. Потому как пользоваться заведомо дохлым продуктом, который ещё и не поддерживается на мобильных устройствах, — это нынче из области психиатрии.
Если вы просто потребитель то не пользуйтесь.
Re[8]: ЯП для знакомства с ООП/GUI-dev
От: Cyberax Марс  
Дата: 26.06.19 06:57
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>>>Вы видимо им не пользовались https://openjfx.io/

C>>Конечно, не пользовался. Потому как пользоваться заведомо дохлым продуктом, который ещё и не поддерживается на мобильных устройствах, — это нынче из области психиатрии.
_>Если вы просто потребитель то не пользуйтесь.
Угу, настоящие гурманы-созидатели предпочитают некрофилию, да.
Sapienti sat!
Re[2]: ЯП для знакомства с ООП/GUI-dev
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.06.19 07:33
Оценка:
Здравствуйте, Александр Кузнецов, Вы писали:

АК>После курса Паскаля студенты будут минимум занятий 8-10 переучиваться на новый язык. Проверено. Готовьтесь под предлогом "повторить основы" учить их основам нового синтаксиса. Поверьте, дешевле будет, чем начать сразу с алгоритмики и потом видеть абсолютно не понимающие лица. Дальше:


Молодому мозгу не только просто, но и полезно осваивать новые синтаксисы. Помнится у нас за 2 семестра языков программирования давали процедурное, ООП, функциональное и логическое программирование, а в конце этого годового курса немного про компиляторы и трансляторы. Вот, было по несколько лабораторных на каждый язык, на каждую парадигму их было по 1-2 языка. Справлялись, ничего сложного. Зато потом на старших курсах на лабораторных по численным методам или методам оптимизации каждый уже выбирал себе тот язык, который ему нравился.
Также за 1 семестр прошли Mathcad, Matlab и Maple. Было тоже по несколько лабораторных: в одном занимались статистическим моделированием, во втором матрицами и численными методами, а в третьем символьными вычислениями. Такой подход галопом по языкам очень круто расширяет кругозор, когда известные задачи решаются различными инструментами. В итоге всё равно за семестр нельзя стать супер специалистом где-нибудь, но каждый знает о том, какой инструмент можно выбрать.
Вообще, вспоминая учёбу, мы за 5 лет в той или иной мере программировали на 10-15 разных языков, это 2000-е годы.
Re[2]: ЯП для знакомства с ООП/GUI-dev
От: AlexGin Беларусь  
Дата: 26.06.19 14:29
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Если брать практику — то сейчас UI пишется на HTML+JS (или его вариантах).


А вот у нас, например, другая практика: XAML + C#

P.S. Здесь ИМХО главное — чтобы человек представлял современные концепции разработки UI. С этой точки зрения WPF — хороший выбор.
Re[2]: ЯП для знакомства с ООП/GUI-dev
От: LaptevVV Россия  
Дата: 26.06.19 15:44
Оценка:
_>Для "элементы алгоритмизации" наверное https://drakon.su, но это не точно.
Точно, точно.
Сообщаю: нас конкретно попросили сделать дракон-среду для разработки ПО для ПЛК.
Вот эта контора: https://www.owen.ru/
Там пишут не программисты, а инженеры.
Они алгоритмизировать в соответствии с требованиями могут без проблем.
Но потом надо все это перевести в коды и отладить.
Хотят, чтобы дракон-схема переводилась в код.
И кстати, отлаживать прямо по дракон-схеме.
Так что Дракон вполне себе жив, и применяется.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.