Telerik Academy

Сподели тази страница

Програма на курса "Основи на програмирането със C#"


Част I


Тема Структура

0. Въведение

  • Цели на курса
  • За Телерик
  • Съдържание на курса
  • Изпити
  • Следваща стъпка в обучението
2 часа лекции

1. Въведение в програмирането

  • Какво е компютърно програмиране?
  • Какво представлява разработването на софтуер и какви са основните му дейности?
  • Вашата първа програма на езика C#
  • Форматиране на програмния сорс код
  • Езикът C# и платформата .NET Framework
  • Microsoft Visual Studio: компилиране, изпълнение и дебъгване на C# програми
  • MSDN библиотека – интегрирана система за помощ във Visual Studio
  • Упражнения: създаване, компилиране и изпълнение на C# програми
1 час лекция
1 час упражнение
2 часа домашна работа

2. Примитивни типове данни и променливи

  • Какво е тип данни?
  • Примитивни типове данни в C#: целочислени типове, типове данни с плаваща запетая, десетични типове, булеви типове, символни низове, обекти
  • Стойностни типове и референтни типове
  • Променливи. Използване на променливи: деклариране, инициализиране, присвояване на стойност, достъпване на стойности
  • Литерали: Стойностите на променливите в сорс кода. Булеви литерали. Целочислени литерали. Литерали с плаваща запетая. Десетични литерали. Низови литерали и екраниращи символи (Escaping Sequences)
  • Упражнения: Работа с примитивни типове и променливи
2 час лекция
2 час упражнение
4 часа домашна работа

3. Оператори, изрази и and Statements

  • Оператори в C#
  • Приоритет на оператори
  • Аритметични оператори
  • Оператори за конкатениране на низове
  • Логически оператори
  • Побитови оператори
  • Оператори за сравнение и оператори за придаване на стойност
  • Lambda оператор => и Lambda изрази
  • Други оператори
  • Изрично и неизрично преобразуване на типове
  • Изрази и конструкции
  • Упражнения: работа с оператори и изрази
1 час лекция
3 час упражнение
2 часа домашна работа

4. Вход и изход от конзолата

  • Какво е конзола?
  • Писане в конзолата – писане на числа, низове и др.
  • Четене от конзолата - четене на числа и низове
  • Упражнения: Писане в конзолата и четене от конзолата
1 час лекция
3 час упражнение
2 часа домашна работа

5. Условни конструкции

  • Оператори за сравнение и булеви изрази
  • if и if-else конструкции
  • Вложени if конструкции
  • Switch-case конструкция
  • Упражнения: Работа с условни конструкции
1 час лекция
3 часа упражнения
6 часа домашна работа

6. Цикли

  • while цикли
  • do ... while цикли
  • for цикли
  • foreach цикли
  • Вложени цикли
  • Упражнения: Работа с цикли и вложени цикли
2 часа лекции
4 часа упражнения
8 часа домашна работа

Подготовка за изпит

  • Решаване на примерен изпит пред студентите
  • Студентите решават примерни задачи за изпит
2 часа лекции
6 часа упражнения
16 часа самоподготовка

Междинен изпит

  • Изпитът се състои от 4 практически програмни задачи
  • Студентите решават задачите, използвайки компютър
  • Студентите с най-добри резултати продължават курса
6 часа изпит
Продължителност на част I:
24 часа, около 1 месец със занятия 2 пъти в седмицата по 4 часа и 6-часов изпит накрая.
Общо часове:
12 часа лекции
22 часа упражнения
38 часа работа в къщи
6 часа изпит

Част II


Тема Структура

7. Масиви

  • Деклариране и създаване на масиви
  • Достъпване на елементи от масива
  • Четене и принтиране на масиви
  • Обхождане на масиви чрез for и foreach цикли
  • Многомерни масиви
  • Упражнения: Работа с масиви и многомерни масиви
1 час лекции
3 часа упражнения
6 часа домашна работа

8. Бройни системи

  • Бройни системи: позиционна и непозиционна
  • Преобразуване между позиционни бройни системи: бинарни, десетични и шестнадесетични
  • Представяне на числата в паметта на компютъра
  • Упражнения: Преобразуване между различни бройни системи
1 час лекция
1 час упражнение
2 часа домашна работа

9. Методи

  • Какво представляват методите?
  • Кога и защо имаме нужда от методи?
  • Деклариране на методи: сигнатура и имплементация (тяло), локални променливи
  • Извикващи методи
  • Употреба на параметри. Променлив брой параметри
  • Връщане на стойности
  • Methods Overloading
  • Употреба на методи - най-добрите практики
  • Упражнения: Употреба на методи
1 час лекция
1 час упражнение
4 часа домашна работа

10. Рекурсия

  • Рекурсия - въведение: Какво представлява? Директна и индиректна рекурсия
  • Изчисляване на факториел рекурсивно и итеративно
  • Рекурсивни комбинаторни алгоритми: симулация на n на брой вложени цикли.
  • Сравнение на рекурсия и итерация. Кога да използваме рекурсия?
  • Примери: Имплементиране на рекурсивни алгоритми
1 час лекция
1 час упражнение
4 часа домашна работа

11. Създаване и употреба на обекти

  • Класове и обекти
  • Класове в C#: полета, свойства, методи, конструкции и инициализатори
  • Достъпване на полета и извикване на методи
  • Статични и нестатични членове
  • Структури
  • Namespaces
  • Общата система от типове на .NET
  • Упражнения: Работа с обекти
1 час лекция
1 час упражнение
2 часа домашна работа

12. Работа с изключения

  • Какво е изключение?
  • Хващане на изключения
  • Предизвикване на изключения
  • Try-finally конструкция
  • Упражнения: Работа с изключения
1 час лекция
1 час упражнение
2 часа домашна работа

13. Низове и обработка на текст

  • Основни операции с низове – сравнение, конкатенация, взимане на подниз, търсене
  • Още операции със стрингове – замяна на подстрингове, изтриване на подстрингове
  • Създаване на низове - ефективно
  • Форматиране на низове
  • Упражнения: Работа със стрингове и обработка на текстове
1 час лекция
3 час упражнения
6 часа домашна работа

14. Дефиниране на класове

  • Дефиниране на елементарни класове
  • Употреба на собствени класове и обекти
  • Модификатори за достъп (видимост)
  • Конструктори и инициализатори
  • Дефиниране на полета
  • Дефиниране на свойства, Getters и Setters
  • Дефиниране на методи
  • Упражнения: Дефиниране и използване на собствени класове
1 час лекция
3 час упражнения
6 часа домашна работа

15. Текстови файлове

  • Потоци
  • Четене на текстови файлове
  • Писане в текстови файлове
  • Работа с изключения при работа с файла
  • Упражнения: Четене и писане на текстови файлове
1 час лекция
3 час упражнения
4 часа домашна работа

Междинен изпит

  • Изпитът се състои от 4 практически програмни задачи
  • Студентите решават задачите, използвайки компютър
  • Студентите с най-добри резултати продължават курса
24 часа самоподготовка
6 часа изпит
Продължителност на част II:
26 часа, около месец и половина със занятия 2 пъти в седмицата по 4 часа и 6-часов изпит накрая
Общо часове:
9 часа лекции
17 часа упражнения
60 часа работа в къщи
6 часа изпит

Част III


Тема Структура

16. Линейни структури от данни

  • Абстрактни типове данни
  • Линейни структури данни
  • Статичен и свързан списък
  • Шаблонни класове (Generics) в C#
  • Списъци – List<T> класа
  • Стекове – Stack<T> класа
  • Опашки – Queue<T> класа
  • Упражнения: Работа с линейни типове данни
1 час лекция
3 часа упражнения
4 часа домашна работа

17. Дървета и графи

  • Дървета. Дефиниране, създаване и обхождане на дървета. Обхождане на файловата система
  • Двоични дървета за търсене. Балансирани дървета
  • Графи и алгоритми за обхождане на графи
  • Упражнения: работа с дървета и графи
1 час лекция
3 часа упражнения
6 часа домашна работа

18. Речници, хеш-таблици и множества

  • Абстрактната структура от данни - речник (Dictionary)
  • Хеширане и хеш-таблици: Dictionary<TKey, TValue> клас
  • Имплементация на речник чрез черно-червени дървета: SortedDictionary<TKey, TValue> клас
  • Множества и имплементации: HashSet<T> и SortedDictionary<TKey, TValue> класове
  • Имплементиране на TreeSet<T> чрез опаковане на SortedDictionary<TKey, TValue>
  • Упражнения: работа с речници и множества
1 час лекция
3 часа упражнения
6 часа домашна работа

19. Сложност на алгоритмите и ефективност на структурите от данни

  • Сложност на алгоритмите
  • Ефективност и сравнение на структурите от данни
  • Как да изберем правилната структура от данни?
  • Избор на правилната структура от данни - примери
  • Упражнения: Избор на най-ефективната структура от данни
1 час лекция
3 часа упражнения
4 часа домашна работа

20. Основни принципи на обектно-ориентираното програмиране

  • Наследяване
  • Абстракция
  • Енкапсулация
  • Полиморфизъм
  • Cohesion и Coupling
  • Обектно-ориентирано моделиране
  • Упражнения: Обектно-ориентирано моделиране със C# и .NET Framework
1 час лекция
3 часа упражнения
6 часа домашна работа

21. Качествен програмен код

  • Какво представлява качествения програмен код?
  • Конвенции за писане на код
  • Именуване на индентификатори в сорс кода: класове, интерфейси, структури, Namespaces, методи, полета, константи и др.
  • Форматиране на код: методи за форматиране, класове за форматиране, цикли за форматиране и условни конструкции, използване на празни редове, разбиване на дълги конструкции
  • Висококачествени методи: предназначение на метода, поведение на метода, Strong Cohesion and Loose Coupling, дължина на метода и параметри на метода
  • Ефективно използване на променливи: деклариране, инициализация, обхват, активност и живот на променливата
  • Ефективно използване на константи
  • Ефективна употреба на условни конструкции
  • Защитно програмиране
  • Документация и самодокументиращ се код
  • Рефакториране: Подобряване на съществуващ код
  • Упражнения: Подобряване на съществуващ нискокачествен код
6 часа лекции
4 часа домашна работа

22. Методология за разрешаване на проблеми

  • Разрешаване на проблеми - принципи
  • С химикал и хартия
  • Генериране и тестване на идеи
  • Разделяне на проблемите на по-малки "подпроблеми"
  • Проверяване верността на идеята
  • Избор на правилни структури от данни: Мислете си за ефективността
  • Имплементиране на алгоритми стъпка по стъпка: писане; тестване; коригиране; писане; тестване …
  • Тестване на решенията: обичайни случаи, гранични случаи, тестове за натовареност
  • Упражнения: Решаване на проблем
2 часа лекции
4 часа упражнения
8 часа домашна работа

23. Практическо занятие по решаване на проблеми #1

  • Първи проблем: Извличане на текст от HTML документ
  • Втори проблем: Намиране на  път в лабиринт
  • Трети проблем: Обектно-ориентирано моделиране на магазин за автомобилни части
  • Упражнения: Разширете и подобрете решенията
2 часа лекции
2 часа упражнения
4 часа домашна работа

24. Практическо занятие по решаване на проблеми #2

  • Първи проблем: Преброяване на думите в текст
  • Втори проблем: Матрица с прости числа
  • Трети проблем: Пресмятане на аритметични изрази
  • Упражнения: Разширете и подобрете решенията
2 часа лекции
2 часа упражнения
4 домашни

25. Практическо занятие по решаване на проблеми #3

  • Първи проблем: Спирална матрица от номера
  • Втори проблем: Преброяване на думите в текстов файл
  • Трети проблем: Обектно-ориентирано моделиране на училище с учители, ученици и класове
  • Упражнения: Разширете и подобрете решенията
2 часа лекции
2 часа упражнения
4 часа домашна работа

Финален изпит

  • Финалният изпит се състои от 4 практически програмни проблема с алгоритмична насоченост
  • Курсистите, които покажат най-добри резултати, могат да продължат в курса
24 часа самоподготовка
6 часа изпит
Продължителност на част III:
44 часа, около 2 месеца със занятия 2 пъти в седмицата по 4 часа
Общо часове:
19 часа лекции
25 часа упражнения
74 часа домашни
6 часа изпит

Ключови думи: C#, програмиране C#, бази данни, databases, условни конструкции, цикли, масиви, обектно-ориентирано програмиране, ООП, object-oriented-programming, алгоритми, алгоритмично мислене