52
Fundamentals of C# Programming Course Introduction Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training http://nakov.com

0. Programming Course Introduction - C# Fundamentals

Embed Size (px)

DESCRIPTION

C# Programming Fundamentals Course @ Telerik Academy http://academy.telerik.com Introduction to the course, the training team and the subject matter (C# object oriented programming language) and your future in the industry.

Citation preview

Page 1: 0. Programming Course Introduction - C# Fundamentals

Fundamentals of C# Programming Course

Introduction

Svetlin Nakov

Telerik Software Academy academy.telerik.com

Manager Technical Training http://nakov.com

Page 2: 0. Programming Course Introduction - C# Fundamentals

Table of Contents

1. About Telerik

2. Telerik Academy

3. Software Academy

4. Trainers Team

5. Course Contents

6. Exams

7. Teaching Resources

8. The Software Engineering Essay

9. Requirements for All Trainees 2

Page 3: 0. Programming Course Introduction - C# Fundamentals

About Telerik What Makes Telerik so Successful?

Page 4: 0. Programming Course Introduction - C# Fundamentals

About Telerik

What Telerik does?

Leading vendor of ASP.NET AJAX, Silverlight,

WPF, Window Phone 7 and ASP.NET MVC

components, ORM, Reporting, and CMS

solutions and Visual Studio plugins

Headquartered in Bulgaria

Offices in USA, Canada, UK, Germany, Australia

450 employees – mostly developers

Employer #1 in Bulgaria for 2010

Microsoft Gold Certified Partner 4

Page 5: 0. Programming Course Introduction - C# Fundamentals

Why Telerik is Successful?

Hard Work

Essential to the success of any company

Constant Improvement

Adaptive to changes

Open Communication

Everyday we get feedback and improve our

products and work processes

Good People

The greatest capital of the company 5

Page 6: 0. Programming Course Introduction - C# Fundamentals

Investing in People

Telerik is constantly investing in people

Everyday improvement of the employee’s skills

Mentoring / coaching programs

Microsoft certification programs

Telerik strongly supports the community

Sponsors conferences for software engineers

(PDC, DevDays, TechEd, DevReach, …)

Sponsors books, contests and other events

Supports few University courses 6

Page 7: 0. Programming Course Introduction - C# Fundamentals

Telerik Academy Free Trainings for Software Engineers

Page 8: 0. Programming Course Introduction - C# Fundamentals

About Telerik Academy

Telerik Academy is an initiative for Telerik for training of young software engineers

Four main streams

Software Academy

.NET Essentials

QA Academy

Developer Support

School Academy

Kids Academy

Student Courses 8

Page 9: 0. Programming Course Introduction - C# Fundamentals

Telerik Software Academy What is It? How It Works? The Learning Track

Page 10: 0. Programming Course Introduction - C# Fundamentals

Software Academy Training Program Objectives

Train young people in software engineering

with the .NET technologies

Practical training with lots of practice

Cutting edge technologies from Microsoft

Software engineering skills

Supplement the University education

Hire the best students in the Telerik

development teams

Support the IT industry development 10

Page 11: 0. Programming Course Introduction - C# Fundamentals

Telerik Academy Learning Track

11

C# Fundamentals (part II)

C# Fundamentals (part I)

Dev Academy (part I)

QA Academy DS Academy

Dev Academy (short course)

Dev Academy (parts II-XI)

300 attendees 180 attendees 120 attendees

30 att.

40 att.

70 att.

20 att.

30 att.

20 att.

~ 20-25 graduates hired ~ 10-12 graduates hired ~ 10-15 graduates hired

C# Fundamentals (part III)

Support Basics

1 month

1 week 4 months

2-3 months

Page 12: 0. Programming Course Introduction - C# Fundamentals

Trainers Team

Page 13: 0. Programming Course Introduction - C# Fundamentals

Trainers Team

Svetlin Nakov, PhD

Manager Technical Training, Telerik Corp., Telerik Academy

20 years software development experience

10+ years experience as trainer

Author of 6 books

Speaker of hundreds of events

E-mail: svetlin.nakov [at] telerik.com

Web site / Blog: http://nakov.com 13

Page 14: 0. Programming Course Introduction - C# Fundamentals

Trainers Team (2)

Doncho Minkov

Technical Trainer, Telerik Corp, Telerik Academy

Student in Sofia University

Software Engineering

Contestant in the Informatics competitions

Graduate of the first season of Telerik Software Academy

Email: doncho.minkov [at] telerik.com

Blog: http://minkov.it

Page 15: 0. Programming Course Introduction - C# Fundamentals

Trainers Team (3)

Nikolay Kostov

Technical Trainer, Telerik Corp.

Student in Sofia University

Computer Science

Contestant in the IT and Informatics competitions

Graduate of the second season of Telerik Software Academy

Email: nikolay.kostov [at] telerik.com

Blog: http://nikolay.it

Page 16: 0. Programming Course Introduction - C# Fundamentals

Trainers Team (4) Alon Rotem

Senior .NET developer, Sitefinity CMS, Telerik Corp

Member of Telerik's Telerockers

Working in the IT industry since 1996

Experienced with .NET technologies since 2006

Industrially experienced with

C#, C++, Visual Basic and VBA, Delphi, classic ASP and ASP.NET, all frontend and backend development

Email: alon.rotem [at] telerik.com

Blog: http://alonintheworld.blogspot.com/ 16

Page 17: 0. Programming Course Introduction - C# Fundamentals

Ilian Iliev

Software Engineer, Telerik Corp.

Stream Company Co-Founder

Student in Technical University

Computer Systems and Technologies

Contestant in Mathematics competitions

Graduate of the second season of Telerik Software Academy

Email: ilian [at] ilievdev.net

Blog: http://ilievdev.net

Trainers Team (5)

17

Page 18: 0. Programming Course Introduction - C# Fundamentals

Dimitar Dimitrov

Software Developer,

Sitefinity CMS, Telerik Corp

Student in Technical University

Computer Science

Graduate of the second season of

Telerik Software Academy

Email: dimitar.dimitrov [at] telerik.com

Trainers Team (6)

18

Page 19: 0. Programming Course Introduction - C# Fundamentals

Antonio Stoilkov

Developer Trainee, Telerik Corp.

Student in New Bulgarian University

Informatics

Contestant in the IT competitions

Graduate of the second season of Telerik Software Academy

Email: antonio.stoilkov [at] gmail.com

Trainers Team (7)

19

Page 20: 0. Programming Course Introduction - C# Fundamentals

Trainers Team (8)

George Atanasov

WPF/Silverlight Developer, Telerik Corp.

Student in Sofia University

Software Engineering

3.5 years software development experience

3 years experience at 3D & graphic design

Contestant in the IT competitions

E-mail: gogo.atn [at] gmail.com 20

Page 21: 0. Programming Course Introduction - C# Fundamentals

George Georgiev

Informatics and IT competitions contestant

AcademyZ trainer

C++, OpenGL, C#

Student in Sofia University

Software engineering

Third season of Telerik Software Academy trainee

E-mail: georgi.stef.georgiev [at] gmail.com

Trainers Team (9)

Page 22: 0. Programming Course Introduction - C# Fundamentals

C# Fundamentals: Course Contents What Topics Shall We Cover?

Page 23: 0. Programming Course Introduction - C# Fundamentals

Course Objectives

Fundamentals of C# Programming course:

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

Prepare for learning the technologies

Web, databases, SQL, ASP.NET, XAML, etc.

23

Page 24: 0. Programming Course Introduction - C# Fundamentals

Course Topics: First Month

1. Introduction to Programming

2. Primitive Data Types and Variables

3. Operators, Expressions and Statements

4. Console Input / Output

5. Conditional Statements

6. Loops

7. Intermediate Exam #1

8. Arrays

9. Numeral Systems

10. Methods 24

Page 25: 0. Programming Course Introduction - C# Fundamentals

Course Topics: Second 2 Months

11. Recursion and Recursive Algorithms

12. Creating and Using Objects

13. Exceptions Handling

14. Strings and Text Processing

15. Defining Classes

16. Text Files

17. Intermediate Exam #2

18. Linear Data Structures

19. Trees and Graphs

20. Dictionaries, Hash Tables and Sets 25

Page 26: 0. Programming Course Introduction - C# Fundamentals

Course Topics: Last 2 Months

21. Algorithms Complexity and Data Structures

22. Object-Oriented Programming Fundamentals

23. Lambda Expressions and LINQ

24. High-Quality Programming Code

25. Methodology of Problems Solving

26. Problems Solving Practice #1

27. Problems Solving Practice #2

28. Problems Solving Practice #3

29. Final Exam

26

Page 27: 0. Programming Course Introduction - C# Fundamentals

Training Duration

Lectures: 39 hours (11 + 9 + 19)

Practical exercises: 55 hours (13 + 17 + 25)

Homework: ~ 108 hours (38 + 60 + 74)

Exams: 3 x 6 hours

Allocation

Part I: ~ 1 month @ 2 times weekly, 4 hours

Part II: ~ 1.5 months @ 2 times weekly, 4 hours

Part III: ~ 2 months @ 2 times weekly, 4 hours 27

Page 28: 0. Programming Course Introduction - C# Fundamentals

Why C# and .NET Framework?

Microsoft is one of the industry leaders

.NET Framework and C# are the primary

development technologies in the MS ecosystem

The C# language

Contemporary object-oriented language

Widespread and very popular

Easy to learn

Most Telerik products target the .NET platform

28

Page 29: 0. Programming Course Introduction - C# Fundamentals

Why English?

Why the slides are in English?

English is the native language of the software

engineers

Forget about not learning it!

Specific terminology is better

not to be translated

29

Page 30: 0. Programming Course Introduction - C# Fundamentals

Exams Intermediate and

Final Exams

Page 31: 0. Programming Course Introduction - C# Fundamentals

Exams

Exams measure individual performance

Serve as filter for skillful people

Half of the students pass forward

Exams are not the only filter!

31

Page 32: 0. Programming Course Introduction - C# Fundamentals

Intermediate Exams

Intermediate exam #1

3-5 practical problems for 6 hours

Covers all learned topics up to the moment

Solutions are evaluated for correctness only

Best students continue in Part II of the course

Intermediate exam #2

Similar to intermediate exam #1

Best students continue in Part III of the course

32

Page 33: 0. Programming Course Introduction - C# Fundamentals

Final Exam

The final exam is the ultimate filter

4-5 practical problems for 6-8 hours

Covers the entire course content

More complex problems

Need of more skills and logical thinking

Evaluation of the solutions:

Correctness – are the solutions well tested?

Efficiency – are data structures used efficiently?

Quality of code – does it follow best practices?

33

Page 34: 0. Programming Course Introduction - C# Fundamentals

The Exams Testing System

All exams will be tested automatically

Through our online judge system

You will be able to test working with the system

right before the exam

How the Testing (Judge) System works?

You submit C# files

It tests your solution with predefined tests

34

Page 35: 0. Programming Course Introduction - C# Fundamentals

Homework Assignments

Homework assignments are due in 1 week after each lecture

Submission instructions will be published at the course Web site

Expect this week a form for homework submission

The C# Game

Submit your everyday work progress in our web form on the course web site

35

Page 36: 0. Programming Course Introduction - C# Fundamentals

Scoring System for Exam #1

For the intermediate exam #1

Exam – 75%

Essay – 10%

Homework + C# Game – 15%

Forums activity – bonus up to 10%

Measured as percentage of the total discussions

Helping the other students – bonus up to 10%

Each student's points who is helped him

Bug submissions in the Book – bonus up to 10% 36

Page 37: 0. Programming Course Introduction - C# Fundamentals

Scoring System for Exam #2

For the intermediate exam #2

Exam – 80%

Homework + C# Game – 20%

Forums activity – bonus up to 10%

Bug submissions in the Book – bonus 10%

Helping the other students – bonus up to 10%

Translation of some chapter of the Book

Bonus up to 10%

Application with cover letter 37

Page 38: 0. Programming Course Introduction - C# Fundamentals

Scoring for the Final Exam

For the final exam

Exam – 80%

Homework + C# Game – 20%

Bug submissions in the Book – bonus 10%

All problems from the Book – bonus 10%

Solved with detailed description (by template)

Forums activity – bonus up to 10%

Helping the other students – bonus up to 10%

Translation of some chapter of the Book

38

Page 39: 0. Programming Course Introduction - C# Fundamentals

Resources What We Need in Addition to this Course Content?

Page 40: 0. Programming Course Introduction - C# Fundamentals

The Textbook

The official textbook for this course

“Introduction to Programming with

C#”, Nakov S. and his team, 2010

Freely downloadable from:

www.introprogramming.info

40

The entire C# fundamentals course strictly follows the book contents

Page 41: 0. Programming Course Introduction - C# Fundamentals

Web Site & Discussion Group

Please subscribe to "Telerik Academy"

discussion group in Google Groups:

Discuss the course exercises with your colleagues

Find solutions to the exercises

Share source code and ideas

The C# Fundamentals course official web site:

41

http://csharpfundamentals.telerik.com

http://groups.google.com/group/telerikacademy

Page 42: 0. Programming Course Introduction - C# Fundamentals

Required Software

Software needed for this course:

Microsoft Windows

Microsoft Visual Studio 2010 or Visual C# 2010 Express Edition (free version of VS 2010)

.NET Framework 4.0

42

Page 43: 0. Programming Course Introduction - C# Fundamentals

My Way to the Software Engineering Profession

Our Essay for the Software Academy Engineers

Page 44: 0. Programming Course Introduction - C# Fundamentals

Essay Objective

Answer some questions about yourself

Is the "software engineer" profession right for me?

Am I motivated enough to become a software engineer?

Am I ready to spent enough time to master the profession?

What makes a software engineer capable and successful professional?

To realize what to expect and to motivate yourself or to just leave the course

44

Page 45: 0. Programming Course Introduction - C# Fundamentals

Essay Objective (2)

Write the essay on yourself

This is what you think of the profession, your

what is your motivation and passion to become

or not a software engineer?

Don't cheat, you will be caught!

Use the template and answer the questions

with your own words

Expected length: 5 to 10 pages

Deadline: 2 weeks after this presentation 45

Page 46: 0. Programming Course Introduction - C# Fundamentals

Requirements for All Trainees The Training Program Requires 100% Commitment!

Page 47: 0. Programming Course Introduction - C# Fundamentals

Requirements for All Trainees

Basic computer skills

We don’t teach computer literacy

English

Ability to read technical documentation in English is enough

Very serious attitude

Long-term commitment

8 hours / day (average)

47

Page 48: 0. Programming Course Introduction - C# Fundamentals

Full Commitment

Key factors for succeeding in the Telerik Academy Training Program

Solid motivation

“Wise guys” are not welcome

Serious attitude

Willingness for really hard work

All your time

50% in class (for the lectures and exercises)

50%-500% at home (for the homework)

48

Page 49: 0. Programming Course Introduction - C# Fundamentals

Invest in Yourself!

Invest in yourself!

Invest in your training!

Invest in your skills

development!

49

… Unless you consider yourself a bad investment. Do you?

Page 50: 0. Programming Course Introduction - C# Fundamentals

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

програмиране за деца – безплатни курсове и уроци безплатен 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, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране Николай Костов - блог за програмиране

C# курс, програмиране, безплатно

Fundamentals of C# Programming Course

http://academy.telerik.com

Page 51: 0. Programming Course Introduction - C# Fundamentals

Introduce Yourself!

Now introduce yourself to the others

Who are you, what is your background, why

you came at the Telerik Software Academy, …?

Page 52: 0. Programming Course Introduction - C# Fundamentals

Free Trainings @ Telerik Academy

Fundamentals of C# Programming

Course

csharpfundamentals.telerik.com

Telerik Software Academy

academy.telerik.com

Telerik Academy @ Facebook

facebook.com/TelerikAcademy

Telerik Software Academy Forums

forums.academy.telerik.com