High-Quality Programming Code Construction Course Introduction Svetlin Nakov Telerik Corporation www.telerik.com Table of Contents About Telerik Academy About the Course Requirements Course Curriculum The Trainers Team Course Schedule Assessment Certification and Awards Recommended Books 2 About Telerik 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 With offices in USA, Germany, Australia, India More than 500 employees – mostly developers Employer #1 in Bulgaria for 2010 Microsoft Gold Certified Partner 4 About Telerik Academy Telerik Academy is an initiative Telerik for training of young software engineers Software Academy .NET Essentials, QA Academy, Dev-Support Student Courses School Academy Algo Academy Kids Academy Contests and other free initiatives 5 Academy at a Glance Kids Academy University Courses School Academy Algo Academy Software Academy C# Fundamentals .NET Essentials QA Academy Job at Telerik Developer Support Another Job 6 Free Courses for Students Courses for Students @ Telerik Academy High-Quality Code (starting 5 March) Mobile Development (starting October) Web Design with HTML5 (starting 13 and 15 March) Web Applications with ASP.NET MVC (starting October) Cloud Development (starting 14 March) Windows 8 Development (starting October) 7 About the Course High-quality programming code course objectives Fundamental principles and practices for building high-quality software Focus on the source code What is high-quality code? Easy-to-read Easy-to-understand Easy-to-modify Correct behavior 8 Requirements to the Students Computer programming skills At least one of the following languages: C#, Java, C++ or PHP Object-oriented programming Abstraction, encapsulation, inheritance, polymorphism, exceptions handling English language All training materials are in English (intentionally, Telerik Academy policy) Registration 9 Registration All students should register for the course at: http://codecourse.telerik.com Registration is important! Registration allows the trainers contact you regarding the course projects, exams, etc. Registered students are assigned to work on one of the course projects On the link you can find all the materials, videos, homework, etc. 10 Course Curriculum Curriculum 1. Course Overview. Introduction to High-Quality Programming Code. Entrance Project (05.03.2012) 2. Fundamentals of Software Engineering (19.03.2012) 3. Naming Identifiers in the Source Code. Naming Classes, Methods, Variables, Parameters and Other Elements of the Code (12.03.2012) 4. Designing High-Quality Classes and Class Hierarchies. Best Practices in the Object-Oriented Design High-Quality Methods. Strong Cohesion and Loose Coupling (26.03.2012) 12 Curriculum (2) 5. Using Variables, Data, Expressions and Constants Correctly Using Control Structures, Conditional Statements and Loops Correctly (02.04.2012) 6. Correctly Formatting the Code Code Documentation, Comments and SelfDocumenting Code. Code Conventions (09.04.2012) 7. Software Quality Assurance Testing and Debugging Unit Testing. Test-Driven Development (23.04.2012) 13 Curriculum (3) 8. Defensive Programming. Using Exceptions. Performance Tuning and Code Optimization Refactoring Existing Code to Improve Its Quality Code Integration (07.05.2012) 9. Development Tools. IDEs. Change Management Systems. Code Analysis Tools. Automated Testing Tools. Automated Build Tools. Continuous Integration Tools (14.05.2012) 10. Test Covering the All Studied Topics (21.05.2012) 11. Course Projects: Assignment, Guidelines and Discussion (28.05.2012) 14 Trainers Team Trainers Team Svetlin Nakov, PhD Manager Technical Training Telerik Corporation 21 years software development experience Author of 6 books Speaker of hundreds of events E-mail: svetlin.nakov [at] telerik.com Web site: www.nakov.com 16 Trainers Team (2) Nikolay Kostov Technical Trainer Telerik Corporation Telerik Academy 3rd year student in FMI E-mail: nikolay.kostov [at] telerik.com Web site: www.nikolay.it 17 Trainers Team (3) Doncho Minkov Technical Trainer Telerik Corporation Telerik Academy 4th year student in FMI E-mail: doncho.minkov [at] telerik.com Web site: www.minkov.it 18 Trainers Team (4) Alexander Vakrilov Software Engineer, Telerik Corporation Email: alexander.vakrilov [at] telerik.com Twitter: http://twitter.com/ufsa 19 Trainers Team (5) Yordan Dimitrov Team Leader, Team Pulse, Telerik Corporation, www.telerik.com E-mail: yordan.dimitrov [at] telerik.com Blog: http://blogs.telerik.com/jordandimitrov/ 20 Trainers Team (6) Tsvyatko Konov Software engineer Telerik Corporation, www.telerik.com E-mail: tsvyatko.konov [at] telerik.com Blog: http://tsvyatkokonov.blogspot.com/ 21 Trainers Team (7) Ilian Iliev Software engineer, Telerik Corporation, www.telerik.com Email: ilian [at] ilievdev.net Blog: http://ilievdev.net 22 Trainers Team (8) Anton Angelov Software engineer, Web Team Telerik Corporation, www.telerik.com Email: anton.angelov [at] telerik.com 23 Course Schedule Course Schedule Telerik Academy Every Monday, 19:00-22:00, Telerik Academy Hall Start: 5th March 2012 Wedding Mall, 2nd floor Capacity: 250 places Located in: Mladost 1A, Alexander Malinov blvd. 31 25 Assessment Exams and Grades Assessment Entrance project 0 … 10 score Small assignment in C#, PHP, Java or C++ Checked for correctness only Homework 0 … 15 score Test (theory) 0 … 20 score 40 questions (theory) Final project 0 … 55 score Refactoring and unit testing of low-quality code The same language as the entrance project 27 Entrance Projects Entrance projects aim to check the entrance level of all course attendees Simple programs to be developed at home Console applications, no GUI / Web interface Allowed languages: C#, PHP, Java and C++ Evaluation: Projects will be checked for correctness only Do not care for code quality Do not create GUI 28 Sample Entrance Projects Project #1 Tic-tac-toe Game 2 players play in the console Project #2 Bulls and Cows Game 2 players play in the console Project #3 Hang-Man Game 2 players play in the console (no visualization) 29 Certification and Awards Certification and Awards Best students will get certification and awards Certificate of achievement Up to 10% of the students will get a certificate Issued by Telerik Academy Signed by the trainers team Awards Sponsor: Remarkable results Top 5-10 students 31 Recommended Books Recommended Books Code Complete, 2nd Edition, Steve McConnell, ISBN 0735619670, http://www.cc2e.com Refactoring: Improving the Design of Existing Code, Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, ISBN 0201485672, http://martinfowler.com/ Test Driven Development: By Example, Kent Beck, ISBN 0321146530 33 Contact us If you have any questions you can contact us: academy@telerik.com You can write in our forum: http://forums.academy.telerik.com Other students may help you You may help other students We will answer you, too 34 High-Quality Programming Code Construction Questions? http://codecourse.telerik.com