Fundamentals of C# Programming Course
Introduction
Svetlin Nakov
Telerik Software Academy academy.telerik.com
Manager Technical Training http://nakov.com
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
About Telerik What Makes Telerik so Successful?
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
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
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
Telerik Academy Free Trainings for Software Engineers
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
Telerik Software Academy What is It? How It Works? The Learning Track
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
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
Trainers Team
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
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
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
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
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
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
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
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
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)
C# Fundamentals: Course Contents What Topics Shall We Cover?
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
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
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
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
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
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
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
Exams Intermediate and
Final Exams
Exams
Exams measure individual performance
Serve as filter for skillful people
Half of the students pass forward
Exams are not the only filter!
31
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
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
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
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
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
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
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
Resources What We Need in Addition to this Course Content?
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
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
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
My Way to the Software Engineering Profession
Our Essay for the Software Academy Engineers
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
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
Requirements for All Trainees The Training Program Requires 100% Commitment!
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
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
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?
форум програмиране, форум уеб дизайн курсове и уроци по програмиране, уеб дизайн – безплатно
програмиране за деца – безплатни курсове и уроци безплатен 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
Introduce Yourself!
Now introduce yourself to the others
Who are you, what is your background, why
you came at the Telerik Software Academy, …?
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