Home > An Extremely Short Introduction to Computer Programming

An Extremely Short Introduction to Computer Programming

Page 1
1
An Extremely Short Introduction to Computer Programming
Mike Scott

Page 2
2
Who Am I?
• From St. Charles, Missouri • Attended Stanford University 1986 - 1990 • US Navy 1990 - 1998, Nuclear Submariner • Married 1997 to Kelly, A US Navy Nurse • Masters in CS, 1998, Rensselaer Polytechnic Institute, Troy, New York • Out of Navy 1998 (both of us), moved to Austin to work for Motorola (Worst 10 weeks of my life) • 2 years teaching CS at Round Rock High School • 8 years as a lecturer here at UTCS department

Page 3
3
Olivia and Isabelle

Page 4
4
Computer Programming

Page 5
5
Computer Science and Computer Programming
• There are many different fields of study in Computer Science • Robotics • Architecture • Graphics • Artificial Intelligence • Systems • And many, many more

Page 6
6
Where Does Programming Fit in?
• "Having surveyed the relationships of computer science with other disciplines, it remains to answer the basic questions: What is the central core of the subject? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline? My answer to these questions is simple -- it is the art of programming a computer. It is the art of designing efficient and elegant methods of getting a computer to solve problems, theoretical or practical, small or large, simple or complex. It is the art of translating this design into an effective and accurate computer program."
– C.A.R. Hoare, Essays in Computing Science
• Many different areas of Computer Science, computer programming is an important tool in almost all of those areas

Page 7
7
Algorithms and Computer Programs
• Algorithm, a set of detailed, exact instructions, to carry out some task or solve some problem • A computer program is the expression of an algorithm in a language a computer can understand • A high level programming language is something that is used to implement an algorithm
– suppose to be easy for humans to understand

Page 8
8
Computer Programs
• You interact with computer programs all the time. • Those programs were written by people. • The computer didn't know how to do it until someone wrote the program

Page 9
9
Programming Languages
• Many different programming languages
– Java, C, C++, Scheme, Haskell, Visual Basic, Perl, Python, Tcl/Tk, Pascal, Basic, Lisp, Prolog, Cobol, C#, Smalltalk, Eiffel, Fortran, Ada, Mathematica, MatLab, LabView
• These languages are divided into may different types
– Object Oriented, Procedural, Functional, Graphical
• many different ways to solve a problem

Page 10
10
What a Computer Does
• Programs must be converted into instructions the Central Processing Unit of a computer can understand • The CPU carries out simple operations. Addition, subtraction, multiplication, division on numbers • So what is the difference between a computer and a calculator?
The Big Difference is a computer can do calculations really fast
• Pentium 4 chip from 2001 can perform approximately 1,700,000,000 computations per second
If something can be represented numerically it can be stored on a computer and manipulated via the computer! pictures, images, video, music, text, DNA data, …

Page 11
11
Program Conversion
• high level programming languages are easier for humans to use • a CPU understands a limited set of instructions expressed in binary, 1s and 0s • the programs you write are translated or converted into a set of instructions the cpu can understand and carry out
– this is done by another program called a compiler

Page 12
12
Humans = Smart, Computers = Dumb
• Programming languages are just tools for writing programs • No one best programming language • LabVIEW -> do a lot of interesting stuff very quickly • Really good programmers know lots of languages and pick the right one for a particular task
– part of solving the problem, how to frame the solution

Page 13
13
Alice

Page 14
14
What is Alice?
• Alice is a visual programming language. • Alice is designed to teach someone how to program
– It is not used in the "real world" the way Java or C++ is
• The output of Alice programs are movies.

Page 15
15
Visual Programming
• Programming is done by pointing and clicking, dragging and dropping, selecting from menus, and some typing

Page 16
16
Object Tree World View Event Editor Details Panel Code Editor Control Primitives

Page 17
17
Alice Models
• Main programming data are 3d models • Many built in and more on web

Page 18
18
Output
• Output are 3d movies
– run the program, play a movie – can also add sound to programs
• A lot easier to recognize logic errors
– "Why do my ninja's arms keep flying away?"

Page 19
19
Sample Program - Bunny and Broccoli

Page 20
20
Sample Program
• Rolling a ball

Page 21
21
Sample Program
• Finding Nemo
– The charades scene
• Student interpretations

Page 22
22
LabVIEW

Page 23
23
LabView
• LabVIEW is a graphical programming language
– as opposed to a text based programming language such as Java or C++
– originally developed to collect and analyze data from instrumentation. – can be used as a general purpose programming language
• There are similarities
– must think about what the problem is – what is the program suppose to do? – must plan a solution – must implement and test the solution
• The difference is what you do when implementing solution.
– typing vs. working with icons

Page 24
24
LabView Program

Page 25
25
Java Program (Partial)
public void paintValue(Graphics g) { floath,s,b; intcol; Stringwks,outs; intred,green,blue; h = (float)hValue; s = (float)sValue; b = (float)bValue; col = Color.HSBtoRGB(h,s,b); g.setColor(new java.awt.Color(col)); g. fill3DRect(mainx, mainy+mainh+cy, mainw+cx+satw,cy*2, true); int wk = col/256/256/256; col = col - wk; red = col/256/256; green = (col-red*256*256)/256; blue = col-red*256*256-green*256; wks = Integer.toString(255+red,16); if (wks.length()==1) wks = "0" + wks; outs = wks; wks = Integer.toString(255+green,16); if (wks.length()==1) wks = "0" + wks; outs = outs + wks; wks = Integer.toString(255+blue,16); if (wks.length()==1) wks = "0" + wks; outs = outs + wks; g.clearRect(0, mainy+mainh+cy*3, size().width, 35); g.setColor(Color.black); g.drawString("Color value = " + outs.toUpperCase(), mainx+5, mainy+mainh+cy*3+25); }

Page 26
26
Result

Set Home | Add to Favorites

All Rights Reserved Powered by Free Document Search and Download

Copyright © 2011
This site does not host pdf,doc,ppt,xls,rtf,txt files all document are the property of their respective owners. complaint#nuokui.com
TOP