Object-oriented Programming and Quality Code academy.zariba.com Module Overview Lecture 1.

16
Object-oriented Programming and Quality Code academy.zariba.com Module Overview Lecture 1

Transcript of Object-oriented Programming and Quality Code academy.zariba.com Module Overview Lecture 1.

1

Object-oriented Programming and

Quality Code

academy.zariba.com

Module Overview Lecture

2

Lecture Content

1. Lecturer2. Previous Module Homework Notes3. Lectures Overview4. Evaluation, Timeline, Workshops etc.5. Champions from Introduction to

Programming with Games.

3

Lecturer

Martin Antonov

Co-Founder and Game Designer at Fractal GamesFounder of YoYoBulgaria and EfreetYoYoCompanyGraduated Mathematics at the University of WarwickStudied one year at the Telerik Software Academy

I like:Tennis, yoyos, computer games (DOTA anyone?), snowboard, billiards, table football etc.

4

Homework Notes

What is wrong with the following lines of code?

1. int a = 5;2. int a;3. int a,b,c; a = int.Parse(Console.ReadLine()); b = 5; ... c = 3;4. Program.cs, class Program5. Homework1.cs, Homework2.cs, Problem1.cs etc.6. if(bunnyIsAlive)

DoSomething();7. Math.Pow(x,2);8. devide, rectangule etc.

5

Homework Notes

What is wrong with the following code? The problem is to find the maximum of 2 values.

static void Main(){int firstNumber = int.Parse(Console.ReadLine());Int secondNumber = int.Parse(Console.ReadLine());

Console.WriteLine(Math.Max(firstNumber,secondNumber));}

6

Homework NotesWhat is wrong with the following code? This is an actual homework

copied 1:1.

Class Program{static void Main()

{int n = Convert.ToInt32(Console.ReadLine());//int n2=n;int i = 0;int y = 0;

while(i<n){

//n2+=n2;

int n2 = Convert.ToInt32(Console.ReadLine());y=y+n2;i++;

}Console.WriteLine(y);

}}

7

Homework Notes

Additional notes:

1. Name your solutions appropriately (“Homework 1” is bad naming).2. Name your projects inside the solution appropriately (do not just

put Homework1 or Problem1,2,3 etc.).3. Insert the description of the problem on top as a comment. You can

also insert the author. 4. Should not be using recursion on QuickSort and BinarySearch.5. Only 1 person made the 2048 game. Thus, it will be given as a

COMPULSORY homework after one of the lectures (made with OOP).

8

Object-oriented Programming and Quality Code

0. Module Introduction1. Exception Handling in C# (short)2. Defining Classes Part 1 (easy)3. Defining Classes Part 2 (harder)4. Extension methods, delegates, lambda, dynamic and LINQ (best)5. OOP Principles Part 1 (important)6. OOP Principles Part 2 (important)7. Common Type System in .Net (short)8. Quality Code – Proper Naming9. Quality Code – Proper OOP10. Quality Code – Principles and Design Patterns11. MonoGame/XNA – brief overview (short)12. Monopoly Architecture and Planning (short)13. Implementing Monopoly with MonoGame(2-3 lectures)

9

Workshops

1. EscapeFloor Game – exam solution2. SpacecraftWars – exam solution3. Some of the shorter lectures will also be done in

the workshops4. Questions from students

10

Evaluation

This Course will be evaluated as follows: • 20% Homework• 20% Test• 60% Teamwork Project

To successfully complete the course:• You must not skip lectures• You must present your homework on time• You MUST!!! participate in teamwork projects

11

Timeline

• 1.5 - 2 months• 2 times a week from 18:30 to 22:00• Optional Workshop on Saturday from 11:00 to

13:00• There will be 1 or 2 weeks without lectures after we

have covered the whole material. Those should be used to make your team projects.

12

The Teamwork Project

• For your teamwork projects you will have to create a game with the MonoGame engine.

• Evaluation of the team projects will emphasize on the quality of the code, architecture and design patterns used (same or similar to Monopoly). Roughly 40%

• The other 60% will be for game idea, graphics, gameplay, execution, playability, fun element etc.

• START EARLY! – you can start planning and discussing game ideas as early as lecture 2 when the teams will be announced. You can make your OOP structure after lecture 6. The last 1-2 weeks should be left for the graphics implementation, design patterns and quality code.

13

How to study

• Do your homework• Participate in lectures• Ask questions• Watch the videos online• Participate in teamwork• USE GOOGLE!

14

Champions from the Introduction Module

• Best Homework

• Best Teamwork Projects

• Best Exams

Petko Dimitrov – overallBogomil Tomov - 2048

1st PacMan – 342nd Space Game – 333rd The adventures of @ - 32

Group 1 – Ferah Sherifov 120% Max ScoreGroup 2 – Stefan Nedyalkov, Dimitrina Georgieva

15

References

16

Zariba Academy

Questions