Домашно Технология на програмирането от Михайл и Добромир

Домашно

 

Краен срок: 26.01.2019 16:43

Начин на предаване: Качете домашното в github repo-то на курса в папка с име “rails_homework_<class>_<number>”.

Да се направи приложение на Ruby on Rails, в което могат да се създават, премахват, променят и показват събития (Event). Всяко събитие има име, местоположение, описание и дата (с час). При промяна или създаване на събитие да се валидира, че всички полета освен описанието са попълнени, датата е валидна, и дължината на името е по-голяма от 8 символа. Да може да се показва списък на всички събития, където да се виждат датата и името на събитието, а при кликване на линк за дадено събитие да се отваря страница специално за него с цялата информация.

Да се направи втори модел за човек (Person), притежаващ единствено име, който може да заявява, че ще присъства на събития. Това става чрез трети междинен клас: Attendance.

Единствените операции, които е необходимо приложението да поддържа за хора са добавяне на нов човек и отваряне на страница за специфичен човек.

На страницата за показване на специфичен човек трябва да има списък с всички събития, на които е заявил, че ще отиде. До всяко, да има бутон/линк, който да премахне съответната връзка (т.е човека се отказва да присъства на това събитие). Най-отдолу да има падащо меню с всички събития, в които човека не е заявил досега, че ще присъства, чрез което да може да се заяви ново присъствие (т.е да се създаде нов Attendance).

 

Бонус

Направете модел за организация (Organization), в която могат да присъстват хора (нека един човек да може да присъства в нула или една организации).

Променете съществуващото приложение така, че организациите също да могат заявят присъствие към различни събития. Съответно, на страницата показваща специфичен човек, да се показват и събития, към които организацията му е заявила присъствие (като от страницата на специфичен човек не се позволява да се премахне присъствие, което е на организацията).

Публикувано в Технология на програмирането | Коментарите са изключени за Домашно Технология на програмирането от Михайл и Добромир

Домашно технология на програмирането 2019-01-20

  • Регистрация на потребител – потребител се регистрира с потребител и парола, получава писмо за регистрацията си и потвърждава регистрацитята си като избира и последва връзка в писмото. Така се удостоверява, че мейлът е негов. Може да се използва Devise.
  • На началната страница на адрес „/“ се показват последните три качени документа в платформата
  • Потребителят може да отиде на адрес /documents и да види всички документи в платформата
  • Потребителят може да посети /documents/new където се показва форма за създаване на нов документ. Посочват се име на документ, кратко описание, и съдържание на документа. Избира се бутон Create и документът се създава в платформата и потребители вече могат да го достъпват
  • Всеки отделен документ може да се достъпи на url-то /documents/:id където id е идентификаторът на документа.
  • Потребител може да посети /documents/:id?user=…&pass=… подавайки като параметри на url-от стойности за потребител и парола. Ако потребителят с тази парола е регистриран в платформата на страницата се показва съобщение, че потребителят има достъп до този документ. В противен случай се показва съобщение, че няма достъп

Краен срок

22 Януари 23:59:59

Проектът се прадава в хранилището в директория c_january. Всеки проект и с име Class_Number_FirstName_LastName

 

Публикувано в Технология на програмирането | 2 Коментара

Технология на програмирането. Домашно R2.

Условието на домашното е в

https://github.com/thebravoman/software_engineering2018/tree/master/20180926-quadratic1

 

Публикувано в Разни | Коментарите са изключени за Технология на програмирането. Домашно R2.

Консултация за поправителна сесия, септември 2018, технология на програмирането

Консултацията ще я проведем в петък, 21-септември, от 10:50 в 31-ви кабинет на ТУЕС.

Задачите за изпита няма да бъдат буквално същите от предишните поправки. Ще се въведат някой промени на параметрите, може би вида на конкретната задача, но отново ще покриват контролните и домашните провеждани в часовете.

За теорията има предоставен конспект, в предишна статия. Той не очаквам да претърпи огромни промени за конкретния изпит. Най-много някой въпрос да бъде доуточнен в условието си ако не става ясно точно какво се иска.

 

Публикувано в Разни | Коментарите са изключени за Консултация за поправителна сесия, септември 2018, технология на програмирането

Тема за поправителен изпит Технология на програмирането Практика

Task-September-Practice Задание 1

Публикувано в Разни | Коментарите са изключени за Тема за поправителен изпит Технология на програмирането Практика

Резултати от поправителна сесия Технология на програмирането 2018

Резултатите са готови, както по теория така и по практика.

Очаквам подписи на родителите върху заданията. Документите трябва да са предадени в 24 кабинет при Лили Тодорова. Целта е да съм сигурен, че до родителите е достигнала информация как се е сформирала задачата за поправителния изпит по практика, а именно:

Име на родител:

 

Подпис на родител/настойник:

(целта на името и подписа на родителя е да съм сигурен, че родителите са запознати с това как са изградени задачитe поставени на изпита. Начинът, по който са поставени задачите е описан по-долу и начинът на провеждане също)

 

Изпитните задачи се състоят от три елемента

 

  1. Взима се задача дадена на миналата поправка през юлската сесия. Тя самата е изградена на база на задачи давани минимум 8 пъти в периода от март до юни 2018. Буквално са копирани задачите от миналия път. Предположението е, че ако те са решени успешно за последните 40 дни ще бъдат решени успешно и сега.
  2. Към нея се добавят допълнителни условия от домашни давани в периода от септември 2017 до юни 2018. Взима се домашно и се добавя към задачата за изпита. Задачите от домашните са решени през учебната година, има техни решения в хранилището на предмета. Ако човек се е запознал с решенията на задачите от домашното за последните месеци може директно да ги използва.
  3. Правят се допълнения на база предоставения конспект. Една или две точки върху equals и hashCode.
  4. Учениците не могат да ползват интернет по време на работа. Възможно е задачата им да бъде решена от друг ученик и да им бъде изпратена и това няма как да бъде контролирано.
  5. Възможно е обаче да ползват материали, които да донесат на изпита. Това е възможно да бъдат решения на задачите от домашните работи, задачите от поставените контролни и задачите от поправителните сесии, цялото хранилище от задачи от годината. Възможно е да вземат допълнителни библиотеки, документации и всички необходимо.
  6. В тази връзка задачите ако човек не е подготвен са обективно трудни, но ако са решени всички домашно от година, ако са решение предишните задачи от поправката и ако ученикът се е сетил да вземе тези материали за поправката, задачите се превръщат в обективно постижими.
  7. На края на изпита трябва да се създаде архив съдържащ работата на ученика и всичко върху което е работено и този архив да се предаде.

Публикувано в Разни | Коментарите са изключени за Резултати от поправителна сесия Технология на програмирането 2018

Консултация Технология на програмирането, поправителен изпит

Консултацията ще се проведе на 3-ти септември от 14:00 до 16:00 в ТУЕС, 31-кабинет.

Изпитът ще се проведе на 05 септември 2018.

Ще се проведат два изпита и двата по 3 часа, по теория и практика. Изпитите ще бъдат от 09 и от 13 часа.

Досега провежданите изпит бяха организирани и се провеждаха по сходен начин с контролните, които бяха давани по-време на учебната година. Учениците:

  1. можеха да ползват интернет докато разработват програмите
  2. можеха да донесат предварително подготвени материали, които да бъдат с тях и да ги използват.
  3. можеха да решат доста малка и концентрирана задача с която да демонстрират необходимите знания.

Третата поправка ще следва по-стандартно изграден изпит.

Ще се разгледат всички домашни и всички теми дискутирани през първия и втория срок. Ще се положи изпит върху произволни задачи. Няма да може да се ползва интернет. Програмите ще се разработват на училищни компютри, без интернет. Предварително подготвени материали няма да се допускат.

Конспектът включва част от разглежданите теми в курса.

  1. Гъвкави процеси на разработка на софтуер. Планиране. Разпределение на задачите. Основни характеристики на изградените задачи.
  2. Test Driven Development. Произход, цели и обосновка на нуждата от TDD. Цикъл на TDD. Примерни за изграждане на TDD при реализацията на конвертиране на Римски към десетични цифри
  3. Behavior Driven Development. Произход, цели и обосновка на нуждата от BDD. Цикъл на BDD. Примерни за изграждане на BDD при реализацията на конвертиране на Римски към десетични цифри
  4. Agile методологии. Произдох, цели и обосновна от нуждата от гъвкави процеси на разработка на тестове.
  5. Разработка на тестове с RSpec
  6. Мокване
  7. Процес на „Рефакторинг“. Основни правила. Видове.
  8. 3 етапно разделение на разработка на софтуер – development,staging,production
  9. Средства за откриване на грешки и процес на „debug“
  10. MVC архитектура
  11. Модели, Валидации и бизнес логика
  12. Същност и използване на ORM.
  13. Асоциации между модели и реализация в ORM. – source: Rails Guides
  14. Миграции върху бази от данни.
  15. Ruby Version Manager. Същност, цел и начин на работа.  Основни предимства.
  16. Версии. Определяне и задаване на версии на библиотеки.
  17. HTTP протокол. Изпълнение на сървърен код при извършване на HTTP заявка.
  18. REST API. Алтернативи на REST. Филтри и ресурси. Примери за практически приложения. Недостатъци и предимства.
  19. JSON/XML формат на структуриране на данни. Сравнение. Предимства и недостатъци между двете. XML схема. Съвременни тенденции и тяхната обосновка.
  20. equals и hashCode. Връзка между методите. Правила и имплементации в различни технологии. Имплементации на Hash контейнери.
  21. Криптиране. Симетрична и асиметрична криптография. Алгоритми, имплементации и приложимост. Електронно подписване.
Публикувано в Разни | Коментарите са изключени за Консултация Технология на програмирането, поправителен изпит

Поправителна сесия Юли 2018. Технология на програмирането

По време на поправителната сесия всички ученици

  1. Знаят задачите предварително. В часовете са решавани поне 15 подобни задачи.
  2. Имат достъп до интернет и могат да ползват всичко
  3. Могат да си подготвят предварително всякакви материали с цел решение на задачите.
  4. Преди изпита решихме за около 30 минути предишна задача с цел преглед на въпроси.

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

Задания – Task-July-Practice

Критерий – Criteria

Протокол – Protokol

Предадени задачи – https://github.com/thebravoman/software_engineering2017/tree/master/e/11

 

 

Публикувано в Разни | Коментарите са изключени за Поправителна сесия Юли 2018. Технология на програмирането

Поправка по Web-дизайн

Поправката по Web-дизайн ще се проведе на 17.07.2018 от 13:00 часа.
Форматът на изпитването ще бъде тест с отворени и затворени въпроси върху материал, преподаван през годината, както и през допълнително проведените консултации във връзка с поправката.
Общият брой точки, които биха могли да бъдат получени от изпита, е 40. Скалата е както следва:

Точки 0-9 10-35 36-38 39 40
Оценка 2 3 4 5 6

При възникнали въпроси, пишете ми на мейла :)

Публикувано в Web Design | Етикети: , , , , , , | Коментарите са изключени за Поправка по Web-дизайн

Проекти за поправка по технология на програмирането

Сега след като практиките вече са приключили имам възможност да дам проектите за реализация за поправката.

Целта е да се разработи малък проект по който да се работи всеки ден по около 5 часа на ден. Общата стойност на проекта е около 25 часа.

Общи изисквания

1. Проектът да се държи от ден 1 в хранилище и да се вижда неговото развитие. Последният къмит трябва да е не по-късно от денят на поправката.
2. Накрая да се разработи 60-90 секундно видео по проекта което да го представя към клиента
3. Да се разработи wiki страничка по проекта, която в рамките на 500 до 1000 думи да описва неговото поведение.
4. Технологията за реализация на пректа се избира от ученика. Може да се избере всякаква, стига да може да се демонстрира в 31-кабинет от ученика. Може да се реализира на лаптоп, или на компютър вкъщи но компютърът от вкъщи трябва да може да се донесе в кабинета.
5. Операционна система, библиотеки, тулове за реализация се избира от ученика.
6. За реализацията аз лично препоръчвам Ruby on Rails тъй като това е технологията, която сме разглеждали в часовете.

Специфични изисквания

Да се реализира web платформа за продажба на документи. Част от докумените са налични публични и всеки един потребител може да има достъп до тях, част от документите изискват потребителят да е заплатил за достъпа си.

Платформата да поддържа

Следните функционалности за средна оценка 3

  1. Регистрация на потребител – потребител се регистрира с потребител и парола, получава писмо за регистрацията си и потвърждава регистрацитята си като избира и последва връзка в писмото. Така се удостоверява, че мейлът е негов.
  2. На началната страница се показват последните три качени документа в платформата както и дали те изискват абонамент или не, тяхното име и тяхното кратко описание
  3. Потребителят може да отиде на адрес /documents и да види всички документи в платформата, като те са разделени на страници от по 10. Поддържа се pagination
  4. Администраторите в платформата имат право да отидат на /documents/new където се показва форма за създаване на нов документ. Посочват се име на документ, картинка, кратко описание, самият документ се качва, както и дали документът изисква плащане или не. Избира се бутон Create и документът се създава в платформата и обикновенните потребители вече могат да го достъпват
  5. Всеки отделен документ може да се достъпи на url-то /documents/:id където id е идентификаторът на документа в базата.
  6. Когато потребител достъпи адрес на документ в браузъра той може да има достъп до него или да няма достъп. Ако има достъп му се показват картинката на документа, името, описанието и връзка за свалянето на документа. Ако няма достъп му се показват картинката, името, описанието и съобщение, че той няма достъп и затова трябва да се абонира.
  7. Потребител може да отиде на страницата /subscriptions където е показана информация за плана и да закупи нов абонамент за този план. Закупуването на абонамент се прави като потребителят отговори на въпроса колко е „2+2“. Ако потребителят правилно е отговорил на този въпрос се счита, че си е закупил абонамент. Целта е да няма връзка към външни услуги за плащания. Ние да си управляваме плащанията по възможно на-простия начин.
  8. Един потребител може да закупи даден план само веднъж. Ако вече го е закупил трябва да му се покаже информация кога го е закупил.
  9. Ако потребител има редовно закупен план трябва да може да достъпва всички документи, които изискват закупен план.
  10. Приложението да се качи на сървъв и да е достъпно през интернет. Примерно Amazon, Heroku, Azure

Следните допълнителни функционалности за оценка 4

  1. Да се създадът 3 плана и човек да може да се абонира за повече от един план.  Първият план да дава възможност на потребител да достъпва документите в рамките на следващите 1 минута. Вторият в рамките на следващите 2 минути. Третият в рамките на следващите 3 минути. План 1 се закупува с отговор на въпроса колко е 1+1, план 2 се закупува с отговор на въпроса колко е 2+2 и план 3 се закупува с отговор на въпроса колко е 3+3
  2. За всеки един документ да се знае кои са авторите. Един документ може да има много автори. В страницата за документа се показват имената на авторите на документа и html връзка, която да води към адрес /authors/:id където id е идентификатора на автора
  3. Като се посети адрес /authors/1 може да се видят всички документи публикувани от автор 1.

Следните допълнителни функционалности за оценка 5

  1. За всеки един документа да може да се посочи до кой точно абонамент трябва да се е абонирал човека, за да може той да има достъп до него.

Следните допълнителни функционалности за оценка 6

  1. Да се добавят категории достъпни на /categories. Всеки документ може да бъде в една или повече категории. Като се посети адресът /categories/1 да се покажат всички документи в тази категория.
  2. Да се добави валидация, че един автор не може да има повече от 70% от документите си като платени.
  3. Да се праща съобщение на авторите кои са документите които днес са били свалени от потребителите и колко пъти е бил свален всеки документ
Публикувано в Технология на програмирането | Коментарите са изключени за Проекти за поправка по технология на програмирането