Post on 29-Dec-2015
INTEL ULTIMATE ENGINEERING EXPERIENCEBUILD AN APP
TEAM
Ashish Amresh Asst. Professor, College of Technology and Innovation,
ASU Game Design Software Design
Ryan Scott Senior Computer Science, ASU Game Development, App Development
Glenn Craver Senior Computer Science, ASU Game Development, App Development
SNAPSHOTWEEK 2
(June 11-15)
M T W TH F
8:00-9:00am /
1:00-2:00pm
Welcome / Week in review / What's Next
Introduction to OOP Objects Classes Inheritance Encapsulation
Lab: Simple XNA
game Update and
Draw Bouncing Balls
Introduction to
Cellular Automata Rules Grids
Lab:
Using C# and XNA
Add custom rules
Add custom features
Meet Your Mentors Team Activity
Design a real world phenomena
Develop the rules
Break down the roles and responsibilities
Learn App Up SDK
App Design and Development
App Submission and Demo
Project cleanup
Fix bugs/issues
Test the rules
Prepare App for submission
App demo
9:00-10:00am /
2:00-3:00pm
Talk with an Intel Engineer
10:00-11:00am /
3:00-4:00pm
Introduction to Programming
with C# Loops Control
structures Iteration Arrays and
structuresLab:
Visual studio set up
C# intro
Conway’s Game Of Life
Breakdown of the rules
Developing the algorithm
Creating new impressions
Lab: Canals
Framework Using C#
with Canals Creating a
custom automata from scratch
11:00-12:00pm /
4:00-5:00pm
TODAYWEEK 2
(June 11-15)
M T W TH F
8:00-9:00am /
1:00-2:00pm
Welcome / Week in review / What's Next
Introduction to OOP Objects Classes Inheritance Encapsulation
Lab: Simple XNA
game Update and
Draw Bouncing Balls
Introduction to
Cellular Automata Rules Grids
Lab:
Using C# and XNA
Add custom rules
Add custom features
Meet Your Mentors Team Activity
Design a real world phenomena
Develop the rules
Break down the roles and responsibilities
Learn App Up SDK
App Design and Development
App Submission and Demo
Project cleanup
Fix bugs/issues
Test the rules
Prepare App for submission
App demo
9:00-10:00am /
2:00-3:00pm
Talk with an Intel Engineer
10:00-11:00am /
3:00-4:00pm
Introduction to Programming
with C# Loops Control
structures Iteration Arrays and
structuresLab:
Visual studio set up
C# intro
Conway’s Game Of Life
Breakdown of the rules
Developing the algorithm
Creating new impressions
Lab: Canals
Framework Using C#
with Canals Creating a
custom automata from scratch
11:00-12:00pm /
4:00-5:00pm
INTRODUCTION
Objectives Learn programming with C# Learn to use XNA platform Learn how to develop simple Apps
What should you know How to use a computer Ability and open mind to learn new tools and technologies
What do you need (working at home) http://creators.xna.com/Resources/Essentials.aspx
You'll need XNA Game Studio Express(GSE), Visual C# Express Edition, and DirectX Software Development Kit(DirectX SDK).
A simple paint program: http://www.getpaint.net/index.html
LEARNING C#
What programming language is the best? Python, C#, Java, C++ Language differences Native vs. Managed
Why C# Managed code Easy to learn Object-oriented
Technical Requirements 32 or 64 bit Single or multi-core
HOW DOES A COMPUTER WORK
Hard Drive Data Storage / shelf Read and write
Memory (RAM) Shopping cart Temporary storage for all our actions
CPU Checkout machine Faster the processor the more it can crunch out
Motherboard Floor / store layout Good motherboard is necessary to maintain good flow between all components
Output/Graphics Card/Input Peripherals or accessories, access data and display it
VISUAL STUDIO: HELLO WORLD First open Visual Studio 2008 and
you will see a start page
Go to File -> New Project -> Visual C# -> "Console application“
Name it Tutorial1
VISUAL STUDIO: HELLO WORLD
Learning the basics of a program using System;using System.Collections.Generic;using System.Text; namespace Tutorial1{ class Program { static void Main(string[] args) { } }}The first thing you might notice is the different colors. Dark blue signifies a code/command that C# recognizes. Light blue indicates a class, while the regular text is for user defined names.
VISUAL STUDIO: HELLO WORLD
Program Components Namespace
Synonymous with a windows folder, a collection of classes used for grouping Class
Class is a more specific collection than namespace, it holds methods and variables. In C# everything we deal with resides in some class
Methods and Main Methods are the work horses that do all the crunching of data for your class.
The main is a specialized method that is run as soon as a program starts. Scope
The scope of a namespace, class or method is defined by the { }. It is important to know while programming which scope you are dealing with
Using Statements Using statements are useful to call other namespaces, so you can bring in
additional features that you need into your program.
VISUAL STUDIO: HELLO WORLD
Our first program:type this inside of the Main() scope Console.WriteLine("Hello World!");Console.ReadLine();
namespace Tutorial1{ class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadLine(); } }}
LEARNING C#: VARIABLES
Types Numbers
Int Float Double
Char Unicode
String Set of unicodes
Bool True or false
Void
namespace Tutorial1{ class Program { static void Main(string[] args) { int herohitpoints; string myname; bool isalive; } }}
LEARNING C#: VARIABLES
Declaration and Assignment
LEARNING C#: VARIABLES
Naming Conventions Use nouns Bools can have verbs Do not capitalize the
first letter Be descriptive Do not abbreviate Do not use prefixes
or suffixes
String yourName
Bool isBlackBool isActive
Int DNA
Int _hitPointsInt max_number
LEARNING C#: OPERATIONS
Operators
+
-
*
/
% (modulus) 5%2 =1 or 30 % 3.5 = 2
namespace Tutorial1{ class Program { static void Main(string[] args) { double x, y; x = 30.0; y = 3.5; Console.WriteLine(x % y); Console.ReadLine(); } }}
LEARNING C#: OPERATIONS
Operator shorthand
X += Y is equal to X = X+Y
X -= Y is equal to X = X - Y
X *= Y is equal to X = X * Y
X /= Y is equal to X = X / Y
X++ is equal to X = X +1
X- - is equal to X = X -1
Debugging
Use the short hand, and use the Debugger to step in to the code by setting break points.
Runtime vs. buildtime errors
LEARNING C#: USING VARIABLES/OPERATIONS
LEARNING C#: CONDITIONALS
Operators < is less than > is greater than <= is less than or equal to >= is greater than or equal to == is equal to != is not equal to && logical “and” ||logical “or”
Example: ((X>3)&&(X<6))hitPoints == 3
LEARNING C#: LOOPS
do/while loop
LEARNING C#: CONDITIONALS
The "if" Statement
static void Main(string[] args)
{
int x;
x=20;
if (x > 0)
{
x -= 1;
Console.WriteLine(x);
}
}
LEARNING C#: CONDITIONALS
The "if" Statement
LEARNING C#: CONDITIONALSSwitch Statement
static void Main(string[] args)
{
string favoriteColor;
Console.WriteLine("What if your favorite color?");
//Incase you were wondering the next statement is reading whatever
//is typed and assigning it to favorite color when enter is pressed
favoritecolor = Console.ReadLine();
//Just so you know I always type my cases and breaks prior to typing code.
//It just seems easier to me. Do whatever you like though
switch (favoriteColor)
{
case "blue":
case "Blue":
Console.WriteLine("Your favorite color is blue"); break; case "Red": case "red": Console.WriteLine("Your favorite color is red"); break; case "purple": case "Purple": Console.WriteLine("Your favorite color is purple"); break; case "1": Console.WriteLine("You were supposed to pick a color"); break; default: Console.WriteLine("Your favorite color isn't on my list."); break; } Console.ReadLine(); }
LEARNING C#: LOOPSFor Loop
namespace Tutorial1
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}
LEARNING C#: SIMPLE CALCULATOR
Task: Using loops and conditional statements create a simple calculator
application that will take command line inputs and operations (+ - * / %) and process the output.
The flow of the calculator will be as follows: Enter the first number Enter the operation Enter the second number Write the answer Ask if you would like to calculate another set of numbers
LEARNING C#: SIMPLE CALCULATOR static void Main(string[] args) { int number1, number2; string numb1,numb2,operrand; string choice; do { Console.WriteLine("Enter a Number"); numb1= Console.ReadLine(); Console.WriteLine("Enter an operator, ie +,-,*,/"); operrand = Console.ReadLine(); Console.WriteLine("Enter a second number"); numb2 = Console.ReadLine(); Console.WriteLine("The answer is: "); number1 = int.Parse(numb1); number2 = int.Parse(numb2); switch (operrand)
{ case "+": Console.WriteLine(number1 + number2); break; case "-": Console.WriteLine(number1 - number2); break; case "*": Console.WriteLine(number1 * number2); break; case "/": Console.WriteLine(number1 / number2); break; case "%": Console.WriteLine(number1 % number2); break; default: Console.WriteLine("I'm sorry, that wasn't a valid choice"); break; } Console.WriteLine("Do you want to calculate another set of numbers?"); choice = Console.ReadLine(); } while (choice != "n" && choice != "N"); }