C# Programming Course – Part I

36
Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training www.nakov.com C# Programming Course – Part I About the Course

description

C# Programming Course – Part I. About the Course. Svetlin Nakov. Telerik Software Academy. academy.telerik.com. Manager Technical Training. www.nakov.com. Table of Contents. Course Objectives Course Program Trainers Team Examination Learning Resources. C# Programming. - PowerPoint PPT Presentation

Transcript of C# Programming Course – Part I

Page 1: C# Programming Course – Part I

Svetlin Nakov

Telerik Software Academyacademy.telerik.com

Manager Technical Trainingwww.nakov.com

C# ProgrammingCourse – Part I

About the Course

Page 2: C# Programming Course – Part I

Table of Contents1. Course Objectives

2. Course Program

3. Trainers Team

4. Examination

5. Learning Resources

2

C# Programming

Page 3: C# Programming Course – Part I

C# Programming: Objectives &

ProgramWhat Topics Shall We Cover?

Page 4: C# Programming Course – Part I

C# Course Objectives The C# Programming track at the Academy: Give the trainees the fundamental

computer programming knowledge and skills

Establish the logical and algorithmic thinking Development of problems solving

skills Learn basic data structures,

algorithms and object-oriented programming (OOP) concepts

Learn to produce high-quality code Prepare for learning the software

technologies HTML5, DB & SQL, ASP.NET, XAML,

Win8, …

4

Page 5: C# Programming Course – Part I

C# Part I – Course Topics

1. Introduction to Programming2. Primitive Data Types and Variables3. Operators, Expressions and

Statements4. Console Input / Output5. Conditional Statements6. Loops7. Exam Preparation8. C# Programming Test9. C# Practical Exam 5

Page 6: C# Programming Course – Part I

C# Part II – Course Topics

1. Arrays and Matrices2. Numeral Systems3. Methods4. Creating and Using Objects5. Strings and Text Processing6. Problem Solving Methodology7. Exam Preparation8. C# Programming Test9. C# Practical Exam

6

Page 7: C# Programming Course – Part I

OOP – Course Topics1. Object-Oriented Programming Basics2. Defining Classes: Constructors,

Visibility3. Defining Classes: Fields, Properties,

Methods4. Exceptions Handling5. OOP Principles: Abstraction,

Encapsulation, Inheritance, Polymorphism

6. Interfaces, Abstract Classes, Templates, Indexers

7. OO Modeling with UML8. Team Work: Creating OOP Game9. OOP Exam Preparation10.OOP Test and Practical Exam

7

Page 8: C# Programming Course – Part I

High-Quality Code – Topics

1. Definition of High-Quality Code. Entrance Project

2. Naming the Identifiers. Code Formatting3. High-Quality Classes. High-Quality

Methods4. Correct Usage of Variables, Constants,

Conditional Statements and Loops5. Defensive Programming and Exceptions6. Code Documentation and Self-

Documenting Code7. Unit Testing and Test-Driven

Development (TDD)8. Code Refactoring. Refactoring Patterns9. Practical Project & Defense

8

Page 9: C# Programming Course – Part I

Data Structures & Algo – Topics

1. Linear Data Structures: Lists, Stacks, Queues

2. Trees and Graphs. Balanced Search Trees

3. Dictionaries, Hash-Tables and Sets4. Complexity of Algorithms. Data

Structures Efficiency5. Sorting and Searching Algorithms6. Dynamic Programming7. Recursion and Combinatorics8. Graph and Tree Algorithms9. Problem Solving Methodology10.Exam Preparation & Practical Exam

9

Page 10: C# Programming Course – Part I

Trainers Team

Page 11: C# Programming Course – Part I

Trainers Team Svetlin Nakov, PhD

Manager Technical Training @Telerik Software Academy

20 years software developmentexperience

10+ years experience as trainer Author of 6 books Speaker at hundreds of events E-mail: svetlin.nakov [at]

telerik.com Web site / Blog: http://nakov.com 11

Page 12: C# Programming Course – Part I

Trainers Team (2) Nikolay Kostov

Technical Trainer @ Telerik Corp. Student in Sofia University

Computer Science Contestant in the IT and

Informatics competitions Graduate from the second season of

Telerik Software Academy Email: nikolay.kostov [at]

telerik.com Blog: http://nikolay.it

Page 13: C# Programming Course – Part I

Trainers Team (3) Doncho Minkov

Technical Trainer @ TelerikSoftware Academy

Student in Sofia University Software Engineering

Contestant in the Informatics competitions

Graduate from the first season of Telerik Software Academy

Email: doncho.minkov [at] telerik.com

Blog: http://minkov.it

Page 14: C# Programming Course – Part I

George Georgiev Technical Trainer @ Telerik Corp. Informatics and IT competitions

contestant and winner Student in Sofia University

Software engineering Graduate from the third season of

Telerik Software Academy E-mail: georgi.georgiev [at]

telerik.com Blog: http://itgeorge.net

Trainers Team (4)

Page 15: C# Programming Course – Part I

Volunteer Assistants 50+ volunteer teaching assistants

Students from Telerik Academy (Sep 2012)

Top results in all programming exams

15

Page 16: C# Programming Course – Part I

C# Programming Course – More

Details Duration, Languages, Technologies

Page 17: C# Programming Course – Part I

Training Duration – C# Part I

Lectures: ~ 15 hours (@ YouTube) Practical exercises: ~ 24 hours Homework: ~ 50-100 hours Test: 1 hour Exam: 6 hours

Allocation Timeframe: April 2013 – June 2013 Exam: end of June 2013

17

Page 18: C# Programming Course – Part I

Why C# and .NET Framework?

Microsoft is very strong industry leader .NET Framework and C# are the

primary development technologies in the MS ecosystem

The C# language Modern object-oriented language Widespread and very popular Easy to learn

Most Telerik products target the .NET platform

18

Page 19: C# Programming Course – Part I

Why English? Why the slides are in English?

English is the native languageof the software engineers

Just learn it! Specific terminology should

be in English Translations are

inaccurate and funny

19

Page 20: C# Programming Course – Part I

C# Part I ExamsTest & Examination

Criteria

Page 21: C# Programming Course – Part I

Exams @ Software Academy

Exams measure the individual performance Serve as filter for the most skillful

people Score formed by many components:

Test and exam results, forums activity, homework, lectures attendance, etc.

21

Page 22: C# Programming Course – Part I

Scoring System for C# Part I

Test – 15% Serves as primary pass / fail criteria

Exam – 50% Serves as pass / pass with excellence

criteria Homework + evaluation – 10% + 10% Team work – 15% Forums activity – bonus up to 10% Helping the other students – bonus

up to 10% Knowledge sharing / blogging – bonus

up to 10%

22

Page 23: C# Programming Course – Part I

C# Part I Exams C# Programming Test

30 questions for 1 hour Choose the correct among few

answers Best students pass to the practical

(real) exam Practical Programming Exam

3-5 practical problems for 6 hours Covers all learned topics up to the

moment Automated judge system & real-

time feedback Solutions are evaluated for

correctness only

23

Page 24: C# Programming Course – Part I

Homework Peer Reviews

Everyone will get feedback for their homework

Everyone will give feedback for few random homework submissions Students submit homework

anonymously Please exclude your name from the

submissions! For each homework submitted

Students evaluate 3 random homeworks

From the same topic, after the deadline

Give written feedback, at least 200 characters

Low-quality feedback report for punishment

24

Page 25: C# Programming Course – Part I

C# Test – Sample Question

You are given the following C# code:

What will be the output?

25

static void Main(){ int n = 5; int m = 7; int result = n / m * 3; Console.WriteLine(result);}

a)3 b)2.142857 c)0

e)compilation error f) runtime error

d)4.2

Page 26: C# Programming Course – Part I

Pass / Fail / Excellence Criteria

C# Part I – pass / fail / excellence criteria: Test

Very low results fail (course not taken)

Average results pass (course taken) High results practical exam

Practical exam Low results pass High results pass with excellence

26

Page 27: C# Programming Course – Part I

C# Exam – Sample Problem

Write a program that enters a positive integer number N from the console and prints two symmetric triangles of size N separated by a vertical line, just like in the examples below:

27

N = 2

| * | *** | **

N = 3

| * | * ** | ***** | ***

N = 5

| * | * ** | ** *** | *** **** | ********* | *****

N = 1

|* | *

Page 28: C# Programming Course – Part I

The Judge System at the Exam

All exams will be tested automatically Through our online judge system (

BG Coder) During the exam preparation you

will practice how to use the automated judge system

You can register at any time to practice

How the testing (judge) system works? You submit your C# source code It tests your solution against

predefined tests For each test passed you get some

score

28

Page 29: C# Programming Course – Part I

Homework Assignments Doing your homework is very important! Programming can only be

learned through a lot of practice! After each lecture there are few exercises Try to solve them in class The rest are your homework

Homework assignments are due in 2 weeks after each lecture

Submission will be accepted through the student's system: telerikacademy.com

29

Page 30: C# Programming Course – Part I

ResourcesWhat We Need in Addition to this

Course Content?

Page 31: C# Programming Course – Part I

The C# Textbook

The official textbook for the course

“Introduction to Programming with C#”, Nakov S. and his team, 2010

Freely downloadable from: www.introprogramming.info

31

The C# programming tracks follows the book

C# Part I chapters 1..6 (up to Loops)

Page 32: C# Programming Course – Part I

Course Web Site & Forums

Register for the "Telerik Academy Forums":

Discuss the course exercises with your colleagues

Find solutions for the exercises Share source code / discuss ideas

The C# Part I official web site:32

forums.academy.telerik.com/csharp-fundamentals

http://telerikacademy.com/Courses/Courses/Details/81

Page 33: C# Programming Course – Part I

Telerik IntegratedLearning System (TILS)

The Telerik Integrated Learning System (TILS) www.telerikacademy.com Important resource for all students Homework submissions Reports about your results Presence cards (barcodes) Calendar, team work Etc. 33

Page 34: C# Programming Course – Part I

Required Software Software needed for this course:

Microsoft Windows (XP / Win7 / Win8)

Microsoft Visual Studio 2012 or Visual Studio Express 2012 (free version of VS 2012)

.NET Framework 4.5 (included in Visual Studio)

Visual Studio 2005, 2008 or 2010 is also OK

34

Page 35: C# Programming Course – Part I

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезанияASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET

курсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

Николай Костов - блог за програмиранеC# курс, програмиране, безплатно

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

C# Programming Course – Part I

http://academy.telerik.com

Page 36: C# Programming Course – Part I

Free Trainings @ Telerik Academy

Fundamentals of C# ProgrammingTrack of Courses csharpfundamentals.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com