High Quality Code Course Introduction
High Quality Code Course Introduction
Course Introduction
Course Program, Evaluation, Exams, Resources
Table of Contents
Next step in Telerik Software Academy
The High-Quality Code Course Program
The Trainers Team
Teamwork Project
Exams and Evaluation
The Practical Exam
Recommended Books
Resources for the Course
2
High-Quality Code
The Next Module in the Software Academy
(Programming Track)
Next Step in Telerik Software
High-Quality Code
Continuation of OOP course
Quality coding, unit testing, refactoring,
software engineering, design patterns
Lectures once a week
The course exam?
Team work project
Practical exam
4
High-Quality Code
Course Program
What Will Be Cover in the Course?
The Course Program
1. Course Overview.
Introduction to High-Quality Programming Code.
Code Formatting
2. Correctly Naming Identifiers in the Code (Classes,
Properties, Methods, Parameters, Variables, etc.)
Code Documentation and Comments
3. Using Variables, Data, Expressions and Constants.
Using Control Structures, Conditional Statements
and Loops
4. High-Quality Methods. Cohesion and Coupling.
High-Quality Classes and Class Hierarchies
6
The Course Program (2)
5. Defensive Programming and Exceptions.
Performance Tuning and Code Optimization
6. Unit Testing. Mocking. Test-Driven Development
7. Code Refactoring. Refactoring Patterns.
Effective Debugging: Tools and Techniques
8. Development Tools. IDEs. Change Management
Systems. Code Analysis Tools. Automated Testing
Tools. Automated Build Tools. Continuous
Integration Tools. Team Collaboration Tools
9. Design Patterns: the Classical GoF Patterns
7
The Course Program (3)
10. Fundamentals of Software Engineering (Idea,
Architecture, Design, Implementation, Testing,
Deployment, Support). Development
Methodologies. Scrum. Project Management
11. Exam Preparation
12. Teamwork Projects
13. Teamwork Public Defense
14. Practical Exam
8
The Trainers Team
Trainers Team
Nikolay Kostov
Team Lead, Senior Developer
and Trainer @ Telerik Corp.
Student at Sofia University
Computer Science
IT and Informatics competitions contestant
Graduate from the second season of
Telerik Software Academy
Email: nikolay.kostov [at] telerik.com
Blog: http://nikolay.it
10
Trainers Team (2)
Doncho Minkov
Senior Technical Trainer
@ Telerik Software Academy
Student in Sofia University
Software Engineering
Contestant in the Informatics competitions
Graduate from the first season of
Telerik Software Academy
Email: doncho.minkov [at] telerik.com
Blog: http://minkov.it
Trainers Team (3)
Ivaylo Kenov
Junior Technical Trainer
@ Telerik Software Academy
Graduate from the fourth season
of Telerik Software Academy
Mathematical competitions contestant
E-mail: ivaylo.kenov [at] telerik.com
Champion in OOP and DSA
12
Evaluation Code
Thank God There Are Bonuses! Qua
lity
High-Quality Code – Evaluation
Evaluation components
Practical exam – 60%
Team work – 15%
Homework – 10%
Homework evaluation – 5%
Attendance in class – 10%
Bonuses
Forums activity – bonus up to 5%
14
Pass / Excellence / Fail Criteria
Criteria for pass / pass with excellence / fail
Pass with excellence
Very high exam results
or
High total results
Pass
Average total results
Fail
Low total results or 0 at the exam
15
Homework Peer Reviews
Everyone will get feedback for their homework
Everyone will give feedback for few random
homework submissions
Students submit homework anonymously
Please exclude your name from the submissions!
For each homework submitted
Students evaluate 3 random homeworks
From the same topic, after the deadline
Give written feedback, at least 200 characters
Low-quality feedback report for punishment
16
Teamwork Project
Teamwork project requirements
Teams of 3-5 students (balanced random)
Given a low-quality C# project
Refactor the code
Improve its quality and make it testable
Write unit tests (with high coverage) + docs
Use source control system
Each team member should have commits
during the whole assignment
Public project defense
17
Practical Exam
You will be given a C# interface
You need to implement it (write the code)
According to the documentation
Write unit tests
High code coverage
Catch all possible defects
Assessment
Unit tests will be automatically checked
Additional manual check
18
Use the Same Email!
Please use the same email address in:
http://telerikacademy.com
http://bgcoder.com
http://forums.academy.telerik.com
Otherwise your score could be incorrectly
calculated!
19
Recommended Books
The C# Textbook
telerikacademy.com/Courses/Courses/Details/174
25
Required Software
Software needed for this course:
Microsoft Windows (XP / Win7 / Win8)
Microsoft Visual Studio 2012/2013 or Visual
Studio Express 2012/2013 (free version of VS)
.NET Framework 4.5 (included in Visual Studio)
Visual Studio 2005, 2008 or 2010 is also OK
26
High-Quality Code:
Course Introduction
Questions?
http://academy.telerik.com
Free Trainings @ Telerik Academy
C# Programming @ Telerik Academy
csharpfundamentals.telerik.com
Telerik Software Academy
academy.telerik.com
Telerik Academy @ Facebook
facebook.com/TelerikAcademy
Telerik Software Academy Forums
forums.academy.telerik.com