Fundamentals of C# Fundamentals of C# Programming Programming
CourseCourseIntroductionIntroduction
Svetlin NakovSvetlin NakovTelerik Telerik
CorporationCorporationwww.telerik.www.telerik.comcom
Table of ContentsTable of Contents
1.1. About TelerikAbout Telerik
2.2. Course ObjectivesCourse Objectives
3.3. Course ContentsCourse Contents
4.4. ExamsExams
5.5. Next Level TrainingsNext Level Trainings
6.6. ResourcesResources
7.7. Requirements for All TraineesRequirements for All Trainees
2
About TelerikAbout TelerikWhat Makes Telerik so Successful?What Makes Telerik so Successful?
About TelerikAbout Telerik What Telerik does?What Telerik does?
Leading vendor of ASP.NET AJAX, Leading vendor of ASP.NET AJAX, Silverlight, WPF and Windows Forms Silverlight, WPF and Windows Forms components, ORM, Reporting, and components, ORM, Reporting, and CMS solutions and VS PluginsCMS solutions and VS Plugins
Headquartered in BulgariaHeadquartered in Bulgaria With offices in Boston and MunichWith offices in Boston and Munich
250 employees – mostly developers250 employees – mostly developers Employer #1 in Bulgaria for 2010Employer #1 in Bulgaria for 2010 Microsoft Gold Certified PartnerMicrosoft Gold Certified Partner
4
Why Telerik is Why Telerik is Successful?Successful?
Hard WorkHard Work Essential to the success of any Essential to the success of any
companycompany Constant ImprovementConstant Improvement
Adaptive to changesAdaptive to changes Open CommunicationOpen Communication
Everyday we get feedback and improve Everyday we get feedback and improve our products and work processesour products and work processes
Good PeopleGood People The greatest capital of the companyThe greatest capital of the company
5
Investing in PeopleInvesting in People Telerik is constantly investing in peopleTelerik is constantly investing in people
Everyday improvement of the employee’s Everyday improvement of the employee’s skillsskills
Mentoring / coaching programsMentoring / coaching programs
Microsoft certification programsMicrosoft certification programs Telerik strongly supports the communityTelerik strongly supports the community
Sponsors conferences for software Sponsors conferences for software engineers (PDC, DevDays, TechEd, engineers (PDC, DevDays, TechEd, DevReach, …)DevReach, …)
Sponsors books, contests and other eventsSponsors books, contests and other events
Supports few University coursesSupports few University courses6
Course ObjectivesCourse ObjectivesWhy We Teach This Course?Why We Teach This Course?
Telerik Academy Telerik Academy Training Program Training Program
ObjectivesObjectives Train young people in software Train young people in software
engineering with the .NET technologiesengineering with the .NET technologies Practical training with lots of practicePractical training with lots of practice
Cutting edge technologies from Cutting edge technologies from MicrosoftMicrosoft
Software engineering skillsSoftware engineering skills Supplement the University educationSupplement the University education Hire the best students in the Telerik Hire the best students in the Telerik
development teamsdevelopment teams Support the IT industry developmentSupport the IT industry development
8
Learning & Filtering Learning & Filtering ProcessProcess
9
Course ObjectivesCourse Objectives ““Fundamentals of C# Programming” Fundamentals of C# Programming”
course:course: Give the trainees the fundamental computer Give the trainees the fundamental computer
programming knowledge and skillsprogramming knowledge and skills
Establish the logical and algorithmic thinkingEstablish the logical and algorithmic thinking
Development of problems solving skillsDevelopment of problems solving skills
Learn basic data structures, algorithms and Learn basic data structures, algorithms and object-oriented programming (OOP) object-oriented programming (OOP) conceptsconcepts
Prepare for learning the technologiesPrepare for learning the technologies
Web, databases, SQL, ASP.NET, AJAX, WPF, Web, databases, SQL, ASP.NET, AJAX, WPF, etc.etc.
10
C# C# Fundamentals: Fundamentals:
Course Course ContentsContentsWhat Topics Shall We What Topics Shall We
Cover?Cover?
Course Topics – First Course Topics – First MonthMonth
1.1. Introduction to ProgrammingIntroduction to Programming
2.2. Primitive Data Types and VariablesPrimitive Data Types and Variables
3.3. Operators, Expressions and Operators, Expressions and StatementsStatements
4.4. Console Input / OutputConsole Input / Output
5.5. Conditional StatementsConditional Statements
6.6. LoopsLoops
7.7. ArraysArrays
8.8. Numeral SystemsNumeral Systems
9.9. MethodsMethods 12
Course Topics – Second Course Topics – Second MonthMonth
10.10.Intermediate ExamIntermediate Exam
11.11.Recursion and Recursive Recursion and Recursive AlgorithmsAlgorithms
12.12.Creating and Using ObjectsCreating and Using Objects
13.13.Exceptions HandlingExceptions Handling
14.14.Strings and Text ProcessingStrings and Text Processing
15.15.Defining ClassesDefining Classes
16.16.Text FilesText Files
17.17.Linear Data StructuresLinear Data Structures
18.18.Trees and GraphsTrees and Graphs 13
Course Topics – Third Course Topics – Third MonthMonth
19.19.Dictionaries, Hash Tables and SetsDictionaries, Hash Tables and Sets
20.20.Algorithms Complexity and Data Algorithms Complexity and Data StructuresStructures
21.21.Object-Oriented Programming Object-Oriented Programming FundamentalsFundamentals
22.22.High-Quality Programming CodeHigh-Quality Programming Code
23.23.Methodology of Problems SolvingMethodology of Problems Solving
24.24.Problems Solving Practice #1Problems Solving Practice #1
25.25.Problems Solving Practice #2Problems Solving Practice #2
26.26.Problems Solving Practice #3Problems Solving Practice #3
27.27.Final ExamFinal Exam 14
Training DurationTraining Duration LecturesLectures
37 hours (12 + 25)37 hours (12 + 25) Practical exercisesPractical exercises
55 hours (16 + 39)55 hours (16 + 39) HomeworkHomework
~ 108 hours (34 + 74)~ 108 hours (34 + 74) Exam: 2 x 6 hoursExam: 2 x 6 hours AllocationAllocation
Part I: 1 month @ 2 times weekly, 4 hoursPart I: 1 month @ 2 times weekly, 4 hours Part II: 2 months @ 2 times weekly, 4 Part II: 2 months @ 2 times weekly, 4
hourshours15
Why C# and .NET Why C# and .NET Framework?Framework?
Microsoft is one of the industry leadersMicrosoft is one of the industry leaders
.NET Framework and C# are the primary .NET Framework and C# are the primary development technologies in the MS development technologies in the MS ecosystemecosystem
The C# languageThe C# language
Contemporary object-oriented languageContemporary object-oriented language
Widespread and very popularWidespread and very popular
Easy to learnEasy to learn
All Telerik products target the .NET All Telerik products target the .NET platformplatform
16
Why English?Why English?
Why the slides are in English?Why the slides are in English? English is the native language of English is the native language of
the software engineersthe software engineers Forget about not to learning it!Forget about not to learning it! Specific terminology is better not to Specific terminology is better not to
be translatedbe translated
17
ExamsExamsIntermediate Intermediate
and Final and Final ExamExam
Intermediate ExamIntermediate Exam Exams measure individual performanceExams measure individual performance
Serve as filter for skillful peopleServe as filter for skillful people
Half of the students pass forwardHalf of the students pass forward
Exams are not the only filter!Exams are not the only filter! Intermediate examIntermediate exam
3-5 practical problems for 6 hours3-5 practical problems for 6 hours
Covers all learned topics to the momentCovers all learned topics to the moment
Solutions are evaluated for correctness Solutions are evaluated for correctness onlyonly
Best students continue in Part II of the Best students continue in Part II of the coursecourse
19
Final ExamFinal Exam The final exam is the ultimate filterThe final exam is the ultimate filter
4-5 practical problems for 6 hours4-5 practical problems for 6 hours Covers the entire course contentsCovers the entire course contents More complex problemsMore complex problems
Need of more skills and logical thinkingNeed of more skills and logical thinking Evaluation of the solutions:Evaluation of the solutions:
Correctness – are the solutions well Correctness – are the solutions well tested?tested?
Efficiency – are data structures used Efficiency – are data structures used efficiently?efficiently?
Quality of code – does it follow best Quality of code – does it follow best practices?practices? 20
The Next Level The Next Level TrainingsTrainingsWhat Happens after the Course?What Happens after the Course?
22
115 people
60 people 15-20 people
Telerik Academy Telerik Academy Learning TrackLearning Track
5-10 people
5-10 people
ResourcesResourcesWhat We Need in Addition to this What We Need in Addition to this
Course?Course?
The TextbookThe Textbook
The official textbook for this courseThe official textbook for this course ““Introduction to Programming Introduction to Programming
with C#”, Nakov S. and his team, with C#”, Nakov S. and his team, 20102010
Freely downloadable from: Freely downloadable from: www.introprogramming.infowww.introprogramming.info
24
The entire course strictly follows The entire course strictly follows the book contentsthe book contents
The book is still under The book is still under developmentdevelopment http://tiny.cc/intro-cs-nov-2010http://tiny.cc/intro-cs-nov-2010
Our Discussion GroupOur Discussion Group Please subscribe to "Telerik Please subscribe to "Telerik
Academy" discussion group in Academy" discussion group in Google Groups:Google Groups: http://groups.google.com/group/http://groups.google.com/group/
telerikacademytelerikacademy
Download the lecture materials and Download the lecture materials and the demonstration examplesthe demonstration examples
Discuss the course exercises with Discuss the course exercises with your colleaguesyour colleagues
Share source codeShare source code and ideasand ideas25
Required SoftwareRequired Software Software needed for this course:Software needed for this course:
Microsoft WindowsMicrosoft Windows
Microsoft Visual Studio 2010 or Microsoft Visual Studio 2010 or Visual C# 2010 Express Edition (free Visual C# 2010 Express Edition (free version of VS 2010)version of VS 2010)
.NET Framework 4.0.NET Framework 4.0
26
The TrainersThe Trainers The principal trainer The principal trainer
Svetlin NakovSvetlin Nakov
Manager Technical Training,Manager Technical Training, Telerik Corporation Telerik Corporation
15 years experience as software15 years experience as software engineer, consultant and trainer engineer, consultant and trainer
Author of 6 books about computer Author of 6 books about computer programmingprogramming
Winner in tens of programmingWinner in tens of programming Olympiads and contests Olympiads and contests
PhD in Computer SciencePhD in Computer Science 27
The Trainers (2)The Trainers (2) Assistant trainerAssistant trainer
Doncho MinkovDoncho Minkov
Junior Technical Trainer at TelerikJunior Technical Trainer at Telerik
Graduated the Telerik AcademyGraduated the Telerik Academy
Student in Sofia UniversityStudent in Sofia University
Formal contestant in the National Formal contestant in the National Olympiads in InformaticsOlympiads in Informatics
28
Requirements for All Requirements for All TraineesTraineesThe Training Program Requires 100% The Training Program Requires 100% Commitment!Commitment!
Requirements for All Requirements for All TraineesTrainees
Basic computer skillsBasic computer skills
We don’t teach computer literacyWe don’t teach computer literacy
EnglishEnglish
Ability to read technical Ability to read technical documentation in English is enoughdocumentation in English is enough
Long-term commitmentLong-term commitment
8 hours / day (average)8 hours / day (average)
30
Full CommitmentFull Commitment Key factors for succeeding in the Key factors for succeeding in the
Telerik Academy Training ProgramTelerik Academy Training Program Solid motivationSolid motivation
““Wise guysWise guys”” are not welcome are not welcome
Serious attitudeSerious attitude
Willingness for really hard workWillingness for really hard work
All your timeAll your time
50% in class (for the lectures and 50% in class (for the lectures and exercises)exercises)
50% at home (for the homework)50% at home (for the homework) 31
Invest in Yourself!Invest in Yourself!
Invest in yourself!Invest in yourself! Invest in your Invest in your
training!training! Invest in your skills Invest in your skills
development!development!
32
… … Unless you consider yourself Unless you consider yourself a bad investment. Do you?a bad investment. Do you?
QuestionsQuestions??
QuestionsQuestions??
Fundamentals of C# Fundamentals of C# Programming CourseProgramming Course
http://academy.telerik.com