Технология на програмирането 2014/2015

Преподавател

Кирил Митов

Общото описание на курса е налично на http://lubo.elsys-bg.org/software_engineering/

На тази страница е дадено спесифичното 2014-2015 учебна година.

Въведение

Предметът „Технология на програмирането“ се изучава в 11 клас от ученици на ТУЕС. Има за цел да въведе учениците в технологиите, процесите и средствата за разработка на софтуер. Разглеждат се итеративни процеси, използвани в индустрията, като се отделя внимание на събирането и обсъждането на изискавнията, оргинизирането на екипа, избор на технологични решения, обработка на данни и файлове, разработка на unit (JUnit, RSpec, Cucumber и др.) тестове, използване на системи за управление на версиите (Git), поддържане качеството на кода, „refactoring“, „debugging“, Test Driven Development, средства за автоматизиране (make, ant, maven) и др.

Работи се с езикът Ruby. Разглеждат се Java и Eclipse, разработката на десктоп приложения (SWT, JFace), работа с бази данни (JDBC), разработката на Eclipse Plug-ins

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

Голямата цел през 2014-2015 е учениците сами да разработват инструментите, чрез които да проверяват успешното предадените от тях домашни.

Важно – всяка година материалът е различен. За пълно запознаване с предмета прегледайте и материалите от предишни години.

Оценяване

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

Първи срок

  • първи изпит – седмица 5
  • втори изпит – седмица 10
  • трети изпит – седмица 15

Втори срок

Ще стане ясно през втория срок

Материали за 2014/2015 година:

Материалите за учебния план се намират https://drive.google.com/folderview?id=0B2u3mIflzKI4bENCTkJ5aFFiUUU&usp=sharing

Хранилище на целия код

През тази година целия код ще се качва в хранилище в Github. Можете да го достъпите през https://github.com/thebravoman/software_engineering_2014/

Chapter I – introduction, git, CSV and text files

Chapter II – Reviewing code. Learning from mistakes. Ideas for improvements. Writing a better code.

Chapter III – Test Driven Development. Automated unit testing. Behaviour Driven Development.

Evaluation

For this year I came up with three consecutive plans on how to do the evaluation. I like changing the plans each year to reflect the work that we have done. For each year for the evaluation there is only one goal – „to be fair“

Plan 1 (not applicable – this means I did not used it)

This plan was to include attendances, homeworks, test1,test2,test3, but this didn`t work because of the lack of success of test2. The experiment didn`t work.

Plan 2 (not applicable – this means I did not used it)

The plan is described below. When I did the evaluation it had a number of flaws. People with good tests were having very low scores, because of the remove homeworks. Also Test 3 is solved by almost anybody, which is great, but we could all agree that the second time Test 3 was solved was much less challenging than the first time. Same applies for Test 1. The first time is much more difficult that the 6-th.

  1. Test 1 – 1 points
  2. Test 2 – 0 points
  3. Test 3 – 2 points
  4. Homeworks and attendances – +-2 points (all checked homeworks sum up to no more than 2 points. If 5 homeworks are checked than each homework is 0.4 points. If 10 homeworks are checked each homework is 0.2 points).
    1. Correct homework adds points.
    2. Wrong homework removes points.
    3. Attendance could only add to the points.

Evaluation:

1 points – 3

2 points – 4

3 points – 5

>4 points – 6

Plan 3 (currently applied and proposed)

  • Attendance points = Student Attendance/Max attendances * 0.3 – so all attendances are equal to taking Test 1 from the second try.
  • Homework points = Student homeworks/Max homework points * 1.2 – so max homework points are almost equal to taking Test 3 from the second try
  • Test 1 points = 100%*FirstTry +90%*SecondTry+80%*ThirdTry+70%*Other tries
    • This simply means that if you have taken the test from the first time you have 1 point.
    • If you have taken it from the second time you have 0.9 points.
    • If you have taken if from the six time you have 0.7 points
  • Test 2 points
    • If taken from the first time you have 2 points
    • If taken from the second time you have 1.4 points

At the end all the points are not weighted equally and the weights are

2

+ Attendance Points

+ Homework Points

+ Test 1 points

+ Test 3 points * 1.2

– 1 point If the Homework Points are 0

By this scheme you can have more than 6, which is not a problem.

The last tree homeworks were checked and most of you didn`t have them!

I do accept comments on the fairness of the process in the comments below, before making them final.

https://docs.google.com/spreadsheets/d/1h–LJ9BZG4x2B2ig_tc1wv3TGiS7RuVHmaMGZd1qZ5k/edit#gid=985019321

Second term

Projects

  1. Youtube channel administration from an external app using the Youtube V3 API. Subscription fee per month for access.
  2. Subtitles editing and synchronization – Desktop. Licensed fee.
    1. move subtitles forward/backward
    2. show subtitles over the video
    3. enter subtitles and synchronize them with the sound
  3. Subtitles editing and synchronization – Web Java Script. Subscription fee per month. Free for the first X subtitles/users per month. Similar to amara.com
    1. move subtitles forward/backward
    2. show subtitles over the video
    3. enter subtitles and synchronize them with the sound
  4. Testimonials to your site – similar to http://pluspanda.com/. Subscription fee per month. Free for the first X testimonials.
  5. Format conversion service similar to http://online-convert.com. Pay per month or conversion.
  6. OAuth server.
  7. Managing social network posts in a single application. Support for Twitter, Facebook, Google Plus, Pinterest. View all the user activities in social networks and administer posts from a single place. Pay per month.
  8. Subtitles generation by voice recognition – provide a link to an audio or video file and return a transcript in raw and in srt format. Pay per month or per number of conversions made.