Уикипедия:Уикипедия за програмисти

от Уикипедия, свободната енциклопедия

„Уикипедия за програмисти“ е уикипроект към курса „Споделяне на знания и работа в екип“ на софтуерната академия на „Телерик“.

Регламент на заданието[редактиране на кода]

Настоящият регламент описва задание за екипна работа към курса „Споделяне на знания и работа в екип“ към софтуерната академия на „Телерик“. По проекта ще работят около 350 участника, разделени в екипи по 4-5 души през периода юли-август 2013.

Описание на проекта[редактиране на кода]

Целта на проекта е да се допълни Българската Уикипедия с качествени статии по съществени теми относно програмиране, разработка на софтуер, софтуерно инженерство и информационни технологии като цяло. Това е един обществен проект, от който ще имат полза всички българи, които изучават информатика, програмиране, софтуерни и информационни технологии.

Задачата на екипите е да пишат, редактират и допълват информацията в нови или съществуващи статии на български език в http://bg.wikipedia.org по правилата и стандартите за качество на Уикипедия.

Изисквания за качество[редактиране на кода]

Статиите трябва да са написани с високо качество и да съдържат обективно представена информация, представляваща авторски текст написан в енциклопедичен стил и спазваща правилата и препоръките на Уикипедия:

Какво е позволено и забранено?[редактиране на кода]

  • Не се допуска копиране и преписване от Интернет-базирани или хартиени източници (вижте Уикипедия: Авторско право).
  • Не се допуска машинен превод. Допуска се качествен превод на статия от английската версия на Уикипедия, вместо писането на авторски текст. Въпреки това препоръчваме отборите да проучат своите теми и да напишат максимално качествен авторски текст, чрез компилиране на информация от авторитетни и благонадеждни източници (включително използваните в съответните статии в http://en.wikipedia.org) при спазването на всички авторски права.
  • Част от заданието е и оформлението на страниците (вж. Уикипедия: Оформление) с вътрешни препратки, категории, междуезикови препратки и по възможност илюстрации. Вижте списъка с често задаваните въпроси.

Теми за работа[редактиране на кода]

Темите за работа ще бъдат разпределени между отборите и са два вида:

  • Писане на нова статия в Уикипедия върху съществена тема от света на информатиката, програмирането, разработката на софтуер и информационните технологии.
  • Допълване и обогатяване на съществуваща статия в Уикипедия върху съществена тема от света на информатиката, програмирането, разработката на софтуер и информационните технологии.

Всички потвърдили участници в проекта ще получат своята тема през студентската система на Софтуерната академия.

Правила за екипната работа[редактиране на кода]

  • Всеки участник в даден екип трябва да има принос към проекта, който е видим исторически от хронологията на промените на дадената статия (ето пример).
  • Екипът има право да се събира на живо или да работи от къщи.
  • Комуникацията по проекта (въпроси, дискусии между участниците, молби за помощ и т.н.) се води в Уикипедия — на беседата на проекта, на потребителските беседи на участниците или на беседите към статиите.
  • При създаването на страница се препоръчва да се започва от работна подстраница (Уикипедия:Подстраници), а чак когато придобие завършен вид, текстът да се изнася като нова енциклопедична статия. Работна подстраница може да се създаде в пространството на някой от участниците (например Потребител:Nakov/Декомпилатор).
  • Екипите имат право (и се насърчават) да си помагат помежду си, да дискутират статиите си, да предлагат промени, да поправят грешки, да допълват и подобряват чуждото съдържание.
  • Всеки екип трябва да представи работата си на публична защита в рамките на 5 минути. Датата за защита ще бъде определена по-късно. Необходимо е присъствието на поне един участник от всеки отбор.

Критерии за оценяване[редактиране на кода]

  • Качествено, грамотно, обективно, компетентно и разбираемо написани статии в енциклопедичен стил, с коректно цитиране на източниците.
  • Авторски текст (или превод от свободни източници), без нарушаване на авторски права. Необходимо е текстът да е уникален (да го няма публикуван на друго място в Интернет). Проверява се с инструменти за проверка уникалността на съдържанието.
  • Спазване на правилата на Уикипедия и позитивна обратна връзка от уики-обществото. Доказва се чрез преглед на беседите по статиите и липса на административни наказания (изтриване или защита на статия, блокиране на потребител).
  • Участие на всички съотборници от екипа. Доказва се чрез история на промените.
  • Помагане на други екипи в работата по техните статии. Доказва се чрез история на промените за даден потребител.

Оценяване на съотборниците[редактиране на кода]

Всеки участник в екипната работа ще трябва да оцени съотборниците си след края на проекта, така че имайте готовност. Оценяването става чрез попълване на формуляр в студентската система http://telerikacademy.com.

Срок[редактиране на кода]

Крайният срок за предаване на проектите е 1 септември 2013.

Теми и екипи[редактиране на кода]

Отбор Тема 1. Насоки Тема 2. Насоки
Отбор „Rhodium“ Условна конструкция (програмиране) - видове цикли + примери на C# и C++ Система за управление на съдържанието (CMS) - типични функции + по някоя дума за WordPress + Drupal + Joomla
Отбор „Chromium“ Цикъл (програмиране) + видове цикли + примери на C# и C++ Оптимизация за търсачки (SEO) - да се допълни: вътрешна оптимизация, построяване на линкове, в социалните мрежи, ...
Отбор „Silicon“ C Sharp - характеристики + примерен код + малко история Семантичен HTML - концепция + тагове в HTML5 + примери
Отбор „Flerovium“ Системна конзола (в Linux и Windows) + конзолни команди Трислойна архитектура - клиентски слой + бизнес слой + слой данни + примери
Отбор „Lutetium“ Конзолно приложение - какво е това + как се пише NoSQL (нерелационна база данни) - концепция + модели на данните + основни NoSQL системи (MongoDB, Cassandra, CouchDB, Redis)
Отбор „Platinum“ Microsoft Visual Studio + предназначение + основна функционалност + история jQuery - концепции + селектори + DOM манипулация + обработка на събития + AJAX + плъгини + много примери
Отбор „Manganese“ Декомпилатор + какво е това + как работи + основни инструменти за C#, Java, C++ ASP.NET (за разширяване) - модел на изпълнение + компоненти + свойства + събития + примери
Отбор „Samarium“ Масив (програмиране) -> да се допълни нещо за C# + многомерни масиви | ASP.NET MVC - какво е това + основни концепции + MVC модел + модели + контролери + действия + изгледи + валидация + рутиране + история
Отбор „Lithium“ Дебъгер + примери + картинки + отдалечен дебъгер + конзолен дебъгер + дебъгване XAML (език за описание на потребителски интерфейс) - синтаксис + основни елементи + свойства + събития + ...
Отбор „Scandium“ Побитова операция - видове + примери + малко псевдокод Компонентно тестване (unit testing) + инструменти в C#, Java, JavaScript и други езици
Отбор „Iridium“ Променлива (програмиране) + Обхват на променлива (scope) + статична / на инстанция Фърмуер - да се напише какво е, как се програмира, видове
Отбор „Gold“ Конвертиране на типове (explicit/implicit type convertion / typecasting) Хардуер - има доста да се напише тука
Отбор „Lanthanum“ Шаблонни типове (програмиране) - generic types в C#, Java, C++ Малуер (пренасочваща: malware) - какво е + инструменти и техники за защита
Отбор „Copper“ Подпрограма (програмиране) + функция + метод + параметри MIME - описание + примери + Content-Type + Content-Disposition
Отбор „Nobelium“ Метод (програмиране) + параметри и върната стойност + статичен / на инстанция SMTP - описание + примерна SMTP сесия
Отбор „Osmium“ Регулярен израз (в програмирането, не в математиката) + примери + примерен код на C#, Java, PHP, JavaScript MD5 - описание + примери + линкове към инструмент за MD5 хеширане
Отбор „Dysprosium“ Опашка (програмиране) + примерна реализация на C# и JavaScript SHA1 - описание + примери + линкове към инструмент за SHA1 хеширане
Отбор „Ruthenium“ Обхождане в ширина + примерна реализация на C# / Java AES - описание + примери + линкове към инструмент за AES криптиране
Отбор „Plutonium“ Обхождане в дълбочина + примерна реализация на C# / Java Рекурсия - описание + примери (да се обясни, че Фибоначи е лоша идея)
Отбор „Sodium“ Git (софтуер) + концепция + обяснение на термините около Git Хеш-таблица - описание + хеширане + разрешаване на колизии + примери на C#, Java, PHP, JavaScript + картинки
Отбор „Bromine“ GitHub (има прекрасна статия на английски -> да се преведе / адаптира) Преработка на код (пренасочваща: refactoring) - какво е рефакториране на код + как се прави + refactoring patterns
Отбор „Astatine“ Система за контрол на версиите - предназначение + видове версионизация + типични инструменти Файлова система - видове + FAT32 + NTFS + Ext3/Ext4
Отбор „Potassium“ Клас (програмиране) + поле, свойство, конструктор (вече го има), ... Тестване на софтуер - концепции + black box + white box + автоматизация на тестването + инструменти
Отбор „Neptunium“ Обект (програмиране) + референция към клас + примерен код + разлика между клас и обект Осигуряване на качеството на софтуера (пренасочваща: SQA, software quality assurance) - какво представлява + тестване + методология + основни процеси
Отбор „Meitnerium“ Списък (програмиране) + свързан списък + статичен списък + примерена имплементация Гъвкава методология за разработка (пренасочваща: agile software development) - концепция + Scrum + Канбан (разработка на софтуер) + Уикипедия:Lean разработване
Отбор „Neodymium“ Софтуерна академия + Софтуерна академия на Телерик / Telerik Academy — феноменът "софтуерна академия" + раздел за академията на Телерик; да е съобразено с У:ЗОК Компресиране на данни - какво е компресия + видове + с / без загуба + алгоритми + файлови формати (ZIP, RAR) + картинка (screenshot)
Отбор „Zinc“ Тип данни + примитивни типове + непримитивни типове (в C#, Java, C, C++, PHP и JavaScript) Текстообработка - същност + софтуер за целта + файлови формати + текстово оформление + шрифтове + абзаци + стилове
Отбор „Selenium“ Портал:Програмиране (да се изгради по подобие на Портал:История - има го на английски) Електронна таблица (пренасочваща: spreadsheet) - същност + софтуер за целта + файлови формати + формули + графики + картинка
Отбор „Vanadium“ Софтуерно инженерство + основни задачи + етапи от разработката на софтуер + методологии за разработка Планиране на ресурсите на предприятието - същност + отговорности на ERP системите + класификация + водещи продукти
Отбор „Technetium“ Софтуерен инженер (+ професиите в софтуерната индустрия) CRM система - същност + отговорности на CRM системите + класификация + водещи продукти + картинка
Отбор „Barium“ Софтуерен разработчик (професия) + отговорности Експертна система - същност + класификация + примери
Отбор „Chlorine“ QA инженер (професия) + отговорности Интелигентна система - същност + класификация + примери
Отбор „Americium“ Front-end разработчик (професия) + отговорности Компютърна презентация - същност + инструменти (PowerPoint, Impress, Prezi) + изграждане на презентация
Отбор „Krypton“ Софтуерна индустрия в България + описание + информация за Българските софтуерни фирми, да се съблюдават изискванията за значимост на компании, дадени в У:ЗОК Видео файл формат - контейнер-формати + кодеци + конвертиране + масово използвани видео формати
Отбор „Hydrogen“ C Sharp синтаксис (статия подобна на http://en.wikipedia.org/wiki/C_Sharp_syntax) Видео плеър (video player) - какво представлява + функционалност + известни плеъри за видео + линкове + картинка
Отбор „Fermium“ Символен низ (пренасочваща: стринг) + низове в C#, Java, C, C++, PHP и JavScript Видео редактор - какво представляват + типична функционалност + видове + линкове + картинки
Отбор „Caesium“ Двоично търсене (алгоритъм) + примерен код Подмрежа (пренасочваща: Subnetwork) - подмрежи (IPv4, IPv6) + мрежови маски + нотации + картинки
Отбор „Thallium“ Алгоритъм за сортиране - има супер подробна статия в английската Wikipedia HSDPA (протокол) - описание + предимства + използване в България
Отбор „Fluorine“ TFS (система за контрол на версиите) - предназначение + начина на работа + инструменти POP3 (пренасочваща: Post Office Protocol) - описание + команди + примери
Отбор „Francium“ Subversion (софтуер) - предназначение + начина на работа + инструменти (като TortoiseSVN) SSH (протокол) - описание + SSH клиент (софтуер) + SCP + пренасочване на порт + картинки
Отбор „Radon“ Интерпретатор (програмиране) + разлика с компилатор / транслатор / linker + интерпретируеми езици Виртуален сървър (пренасочваща: VPS) - описание + технологии + видове (VPS, VDS) + VPS хостинг + IaaS cloud + картинка
Отбор „Tellurium“
  • участник 1 -
  • участник 2 -
  • участник 3 -
  • участник 4 -
  • участник 5 -
Изходен код (пренасочващи: сорс код, source code) + линк към компилатор и интерпретатор Уеб (пренасочващи: World Wide Web, WWW) - описание + уеб сървър + уеб браузър + URI + URL + HTTP + хиперлинк технология
Отбор „Thorium“ Стил на програмиране (качествен програмен код) - форматиране на кода, именуване на индентификатори, ... JSON (пренасочваща: JavaScript Object Notation) - нотация JSON + описание + примери + ползване от JavaScript и C#
Отбор „Cobalt“ Оператор (програмиране) + видовете оператори + примери от C#, Java, C++, PHP и JavaScript REST услуга - описание + REST стандарт + HTTP + JSON + RESTful API + примери + допълване на статията за "Уеб услуга" с REST
Отбор „Bohrium“ Литерал (програмиране) + видове литерали + примери от C#, Java, C++, PHP и JavaScript Поток (програмиране) + дефиниция + видове + основни операции + примерен код на C# / Java
Отбор „Uranium“ Шестнадесетична бройна система + алгоритми за преминаване в двоична и десетична Мисловна карта (пренасочваща: mind map) + примери (картинки) + за какво се ползват + история
Отбор „Cerium“ Изброен тип (enumeration / enum) + примери в C#, Java и други езици HTML (за разширяване) - структура на документа + основни тагове + параграфи, списъци, таблици + HTML5 + примери
Отбор „Titanium“ Именно пространство - namespace (в C#, C++, package в Java) (Peterlambov) CSS (за разширяване) - основни селектори (BGatev), свойства (BGatev), позициониране, оразмеряване + примери (Icom85)
Отбор „Oxygen“ Обща система от типовете (CTS) - системата от типове в .NET Framework Изключение (програмиране) / Управление на изключенията + хващане / хвърляне на изключение в C#, Java, PHP, JavaScript
  • Първи регистриран потребител: Bgatev -- отбор "Titanium"
  • Първа започната статия по проекта: Видео редактор -- отбор "Fermium"

Помощни страници, литература[редактиране на кода]

Книги