High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University

Slides:



Advertisements
Similar presentations
JavaScript Basics Course Introduction SoftUni Team Technical Trainers Software University
Advertisements

Software Quality Assurance QA Engineering, Testing, Bug Tracking, Test Automation Software University Technical Trainers SoftUni Team.
 Dimitar Ivanov Introduction to programming with microcontrollers.
Software University Curriculum, Courses, Exams, Jobs SoftUni Team Technical Trainers Software University
PHP Basics Course Introduction SoftUni Team Technical Trainers Software University
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Advanced JavaScript Course Introduction SoftUni Team Technical Trainers Software University
Programming Basics Course Introduction SoftUni Team Technical Trainers Software University
Software Testing Lifecycle Exit Criteria Evaluation, Continuous Integration Ivan Yonkov Technical Trainer Software University.
Teamwork and Personal Skills Course Introduction Software University SoftUni Team Technical Trainers.
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
High-Quality Programming Code Code Correctness, Readability, Maintainability, Testability, Etc. SoftUni Team Technical Trainers Software University
Course Program, Evaluation, Exams
Svetlin Nakov Technical Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding SoftUni Team Technical Trainers Software University
JavaScript Basics Course Introduction Svetlin Nakov Technical Trainer Software University
Trainers Team Ivan Yonkov Rated in the top 7% at Stack Overflow
OOP Course Program, Evaluation, Exams, Resources Telerik Software Academy Object-Oriented Programming.
C# Basics Course Introduction Svetlin Nakov Technical Trainer Software University
Web Fundamentals (HTML and CSS) Course Introduction SoftUni Team Technical Trainers Software University
Jekyll Static Site Generator Template-Based Site Generation Svetlin Nakov Technical Trainer Software University
Web Fundamentals (HTML and CSS) Course Introduction Svetlin Nakov Technical Trainer Software University
Web Fundamentals (HTML and CSS)
Advanced C# Course Introduction SoftUni Team Technical Trainers Software University
Object-Oriented Programming Course Introduction Svetlin Nakov Technical Trainer Software University
JavaScript Applications Course Introduction SoftUni Team Technical Trainers Software University
Mocking with Moq Tools for Easier Unit Testing SoftUni Team Technical Trainers Software University
Data Structures Curriculum, Trainers, Evaluation, Exams SoftUni Team Technical Trainers Software University
Mocking Unit Testing Methods with External Dependencies SoftUni Team Technical Trainers Software University
Test-Driven Development Learn the "Test First" Approach to Coding Svetlin Nakov Technical Trainer Software University
Programming for Beginners Course Introduction SoftUni Team Technical Trainers Software University
JavaScript Applications Course Introduction SoftUni Team Technical Trainers Software University
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
PHP Basics Course Introduction Svetlin Nakov Technical Trainer Software University
Software Technologies Course Overview SoftUni Team Technical Trainers Software University
Programming Fundamentals Course Introduction SoftUni Team Technical Trainers Software University
Doctrine The PHP ORM SoftUni Team Technical Trainers Software University
Team Work and Personal Skills Course Introduction Angel Georgiev Part-time Trainer Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
ASP.NET MVC Course Program, Trainers, Evaluation, Exams, Resources SoftUni Team Technical Trainers Software University
Inheritance Class Hierarchies SoftUni Team Technical Trainers Software University
Advanced JavaScript Course Introduction SoftUni Team Technical Trainers Software University
Stacks and Queues Processing Sequences of Elements SoftUni Team Technical Trainers Software University
Generics SoftUni Team Technical Trainers Software University
C# OOP Advanced Course Introduction SoftUni Team Technical Trainers Software University
Java OOP Advanced Course Introduction SoftUni Team Technical Trainers Software University
JavaScript Advanced Course Overview SoftUni Team Technical Trainers Software University
High-Quality Programming Code Code Correctness, Readability, Maintainability, Testability, Etc. SoftUni Team Technical Trainers Software University
Software Technologies
Programming Fundamentals (Extended)
Databases basics Course Introduction SoftUni Team Databases basics
Data Structures Course Overview SoftUni Team Data Structures
PHP MVC Frameworks Course Introduction SoftUni Team Technical Trainers
PHP Fundamentals Course Introduction SoftUni Team Technical Trainers
C# Database Fundamentals with Microsoft SQL Server
JavaScript Applications
JavaScript Applications
C# Databases Advanced with Microsoft SQL Server
Software Technologies
Databases advanced Course Introduction SoftUni Team Databases advanced
JavaScript Fundamentals
JavaScript Fundamentals
C# Advanced Course Introduction SoftUni Team C# Technical Trainers
Databases Advanced Course Introduction SoftUni Team Databases Advanced
C# Web Development Basics
Web Fundamentals (HTML and CSS)
C# Advanced Course Introduction SoftUni Team C# Technical Trainers
Course Overview, Trainers, Evaluation
JavaScript Fundamentals
JavaScript Frameworks & AngularJS
Presentation transcript:

High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University

Table of Contents 1.Course Objectives 2.Course Program 3.Trainers Team 4.Examination 5.Learning Resources 2

SoftUni Diamond Partners

4 SoftUni: Levels, Modules, Schedule Programming Basics 2 months Programming Fundamentals 6 months Teamwork and Personal Skills Object-Oriented Programming High-Quality Code Java Basics Advanced C# Web Front-End 6 months JavaScript Frameworks JavaScript Basics Advanced JavaScript JavaScript Applications HTML + CSS + WordPress Back-End ASP.NET MVC Web Development Database Applications Web Services and Cloud PHP Web Development Databases 6 credits 36 credits

High Quality Code Course Objectives & Program

High-Quality Code Course Program What Will Be Covered in the Course?

7 1.Course Overview. Introduction to High-Quality Programming Code. 2.Correctly Naming Identifiers in the Code (Classes, Properties, Methods, Parameters, Variables, etc.) 3.Formatting the Code Correctly. Code Documentation and Comments 4.Using Variables, Data, Expressions and Constants. Using Control Structures - Conditional Statements and Loops 5.High-Quality Methods, Cohesion and Coupling. High-Quality Classes and Class Hierarchies The Course Program

8 6.Defensive Programming and Exceptions. Performance Tuning and Code Optimization 7.Unit Testing 8.Workshop: Find Your Way in a Big Project 9.Mocking. Test-Driven Development 10.SOLID Principles, DRY, YAGNI, KISS, DIP, … Debugging Techniques 11.Refactoring 12.Lab: Refactoring, Unit Testing and Mocking The Course Program (2)

9 13.Exam Preparation 14.Teamwork Project Defense 15.Design Patterns: Creational 16.Design Patterns: Structural and Behavioral 17.Lab: Design Patterns 18.Practical Exam The Course Program (3)

The Trainers Team

11  Ivan Yonkov  Rated in the top 7% at Stack OverflowStack Overflow  4 years of programming experience mainly with Java and PHP  Solid experience as QA engineer  Top performing student from the Software University (2014)  Atanas Rusenov  Software University  Top performing student at the Software University (2014) Trainers Team

High-Quality Code Course: More Details Duration, Languages, Technologies

13  Lectures: ~ 48 hours (onsite + YouTube videos)  Homework: ~ hours  Teamwork: ~ hours  Exam preparation: ~ 20 hours  Exam: 6 hours  Schedule: 21 Dec – 7 Feb 2016  Exam date: February 7, 2016 Course Duration

14  Why the slides are in English?  English is the native language of software engineers  Specific terminology should be in English  Translations are inaccurate and funny  Just learn English!  No excuses Why English?

High-Quality Code Course Evaluation Criteria

16  Exam: 80%  Labs: 10% (onsite students)  Teamwork: 10%  Homework + evaluation: 5 % + 5 %  Presence in class: 5% (onsite students)  Bonuses: up to 10 % Scoring System for the Course

17  P ractical refactoring and unit testing for 6 hours:  You are given an existing C# project – bad code  Find and fix the bugs  Refactor the code to improve its quality  Write unit tests  Find performance bottlenecks  Document the code The Exam

18  Doing your homework is very important!  Programming can only be learned through a lot of practice!  You should write code every day!  Each lecture is followed by a few exercises  Try to solve them in class  The rest are your homework  Homework assignments are due in 1 week after each lecture  Submission will be accepted through our web site: softuni.bgsoftuni.bg Homework Assignments

19  Give feedback to a 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  Everyone will get feedback for their homework Homework Peer Reviews

Resources What Do We Need Additionally?

21  The course official website:  Register for the "Software University Forum":  Discuss the course exercises with your colleagues  Find solutions for all course exercises  Share source code / discuss ideas / help each other Course Web Site & Forums

22  All lecture slides, videos, homework assignments, projects and other resources are open content, available for free  Visit the course web site to access the course resources Slides and Videos

23  Software University Learning System (SULS)   Important resource for students  Homework submissions  Homework check-up  Exams and results  Reports about your progress  … Software University Learning System (SULS)

? ? ? ? ? ? ? ? ? HQC – Course Introduction httpshttps://softuni.bg/courses/oop/

License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International 25  Attribution: this work may contain portions from  "Fundamentals of Computer Programming with C#" book by Svetlin Nakov & Co. under CC-BY-SA licenseFundamentals of Computer Programming with C#CC-BY-SA  "C# Part I" course by Telerik Academy under CC-BY-NC-SA licenseC# Part ICC-BY-NC-SA

Free Software University  Software University Foundation – softuni.orgsoftuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg softuni.bg  Software Facebook  facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity  Software YouTube  youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bgforum.softuni.bg