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, …?