Fundamentals of C# Programming - Course Introduction

advertisement
Fundamentals of C#
Programming Course
Introduction
Svetlin Nakov
Telerik Corporation
www.telerik.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
C# Fundamentals
(part I)
C# Fundamentals
(part II)
300 attendees
180 attendees
1 month
4 months
30
att.
1 week
~ 20-25 graduates hired
120 attendees
Dev Academy
(part I)
30
att.
Dev Academy
(parts II-XI)
C# Fundamentals
(part III)
Support Basics
20
att.
QA Academy
Dev Academy
(short course)
70
att.
40
att.
2-3 months
DS Academy
20
att.
~ 10-12 graduates hired ~ 10-15 graduates hired
11
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
Trainers Team (5)
 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
17
Trainers Team (6)
 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
18
Trainers Team (7)
 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
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
Trainers Team (9)
 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
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.
2.
3.
4.
Introduction to Programming
Primitive Data Types and Variables
Operators, Expressions and Statements
Console Input / Output
Conditional Statements
6. Loops
7. Intermediate Exam #1
8. Arrays
9. Numeral Systems
10. Methods
5.
24
Course Topics: Second 2 Months
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Recursion and Recursive Algorithms
Creating and Using Objects
Exceptions Handling
Strings and Text Processing
Defining Classes
Text Files
Intermediate Exam #2
Linear Data Structures
Trees and Graphs
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
 The entire C# fundamentals course strictly
follows the book contents
40
Web Site & Discussion Group
 Please subscribe
to "Telerik Academy"
discussion group in Google Groups:
http://groups.google.com/group/telerikacademy
 Discuss the course exercises with your colleagues
 Find solutions to the exercises
 Share source code and ideas
 The C# Fundamentals course official web site:
http://csharpfundamentals.telerik.com
41
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!
… Unless you consider yourself a bad
investment. Do you?
49
Fundamentals of C#
Programming Course
Questions?
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, …?
Download