Upload
walter-walters
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
Introduction to C# ProgrammingVersion 1.1
Objectives
Help you learn to read and follow instructions
Look at how and why we write programs
Describe some things it takes to learn to be a programmer
Discuss some important programming tools
Investigate how the computer works as it executes a program
Describe the steps involved in creating and running a program
Course Materials
ScheduleSyllabusSlidesExample Programsetc.
ftp://cseftp.tc.uvu.educns/fairclde/Spring 2011/CS1400
C# is programming language
Programming languages allow us to communicate with the computer. Just as English is a verbal/written language to allow us to communicate with other people.
We can’t speak with computers, we can only write to them. This written language is called a PROGRAM!
C# programs are written in text then compiled (translated) from text to binary machine language that the computer understands.
Visual C# 2010 Express
Visual C# 2010 is a programming environment– Sophisticated Text Editor– Compiler– Lots of neat tools to help us!
Basic C# Program
static class Program{ static void main( ) { System.Console.WriteLine("Hello, world"); System.Console.Write("Press any key to
continue ..."); System.Console.ReadLine(); }}
Improved Basic C# Program
using System;static class Program{ static void main( ) {
Console.WriteLine("Hello, world"); Console.Write("Press any key to
continue ..."); Console.ReadLine(); }}
Compile and Run It!
Press F5 Button orGreen “Shazam” Button
Lab01
See how it works, see how Jack runs!
Now Zip it and Email it!Go to the project folder.
– Documents, Visual Studio 2010, Projects
Right click on lab01.– Send To, Compressed (Zipped)
Folder.– lab01.zip– Rename to lab01dafv1.0.zipd
Attach to email andEmail to [email protected]
– Subject: CS1400 lab01dafv1.0
Why would you want to learn to program?
• The sheer joy of making things – being creative • The pride in making something that is useful to other
people• The fascination of solving complex problems• Figuring out how to do something you’ve never done
before• Making a dumb machine do smart things• Earning a lot of money• This class is required …
Comment from a student …
“I want a career, not just a degree”
This is about $80k/yr
Robotics
Computer Graphics/Animation
Entertainment/Communication
Web Applications
Business/Finance
Engineering
Learning to program requires
• Time• Patience• Good language skills• The ability to think abstractly• Good math skills• The ability to solve problems• Practice – Program, program, program• A sense of curiosity
Learning to Program Takes Time
Researchers have shown that learning to do anything well(playing the piano, painting, playing tennis, etc) takes about 10 years. Learning to be a good programmer is nodifferent.
To become proficient at programming Practice Practice Practice …
The rise of mathematics is heating up the job market for luminary quant's, especially at the Internet powerhouses where new math grads land six-figure salaries and rich stock deals. Tom Leighton, an entrepreneur and applied math professor at Massachusetts Institute of Technology, says: "All of my students have standing offers at Yahoo! and Google. Top mathematicians are becoming a new global elite. It's a force of barely 5,000, by some guesstimates, but every bit as powerful as the armies of Harvard University MBAs who shook up corner suites a generation ago.
Math Skills are Important
Business Week Cover StoryJanuary 23, 2006
What do Programmers Do?
They talk to their customers They talk to their peersThey discuss problemsThey think a lotThey write a lotThey design solutions to problemsThey write codeThey debug codeThey refactor codeThey test codeThey document codeThey fix code. . .
Google Offices
Programming Tools
The computerThe operating systemThe code editorThe compilerThe debugger
IntegratedDevelopmentEnvironment
(IDE)
Problem solving skillsLanguage skills
The Computer
DataSegment
CodeSegment
Stack
Heap
Memory
Program Counter
Instruction Register
General Purpose Registers
Status Registers
Arithmetic andLogic Unit
CPU
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
General Purpose Register
Status Registers
Arithmetic andLogic Unit
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
General Purpose Register
Status Registers
Arithmetic andLogic Unit
Watch how the computer adds two numbers together …
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
60
addressThe program to be executed isstored in the code segment.The data is stored in the datasegment. The program counterpoints to the next instructionto be executed.
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
60
address
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
60
address
ld r1, 24
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
60
address
10
ld r1, 24
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
64
address
10
ld r1, 24
10
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
64
address
10
ld r1, 24
10
ld r2, 28
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
64
address
10
ld r2, 28
10
12
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
68
address
10
ld r2, 28
10
12
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
68
address
10
ld r2, 28
10
12
add r1, r2
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
68
address
10
add r1, r2
10
12
10
12
22
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
68
address
10
add r1, r2
10
12
22
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012--
242832
60646872
72
address
10
ld r1, 24
22
12
sto r1, 32
The Computer
DataSegment
CodeSegment
Stack
Heap
Program Counter
Instruction Register
Register r1
Arithmetic andLogic Unit
ld r1, 24ld r2, 28add r1, r2sto r1, 32
Register r2
1012
242832
60646872
72
address
10
sto r1, 32
22
12
22
The Operating System
Manages the memory in the computerManages how and when programs are executedManages the devices attached to the computer and lots of other stuff …
The code editor provides a way forThe programmer to create and edit thesource code text for his or her program.
Editors provide tools to cut and paste sourceCode text, move between source code files,and do many other editing tasks.
static void Main( ){ int a = 5; int b = 27; . . .
source codecompiler
The Compiler
XvnvyiLklil
98Hjfkkfol09Op kij
PlollkEtc…
IntermediateLanguage
source codecompiler
XvnvyiLklil
98Hjfkkfol09Op kij
PlollkEtc…
IntermediateLanguage
Interpreter
compilersource code
code segment
data segment
stack segment
.exe
reserved foroperating
system
program A
program B
the heapthe heap is left overmemory, not being usedby any program. It ismanaged by the O/S.
code segment
data segment
stack segment
loader
program C
Visual C# Express Edition is an
Integrated Development Environment (IDE).It includes
* a code editor * a compiler * a debugger * and other development tools
If you have not completed lab #1,be sure to complete it and turn it inper the course schedule.
Questions?