Presentation is loading. Please wait.

Presentation is loading. Please wait.

Workshop for Programming And Systems Management Teachers

Similar presentations


Presentation on theme: "Workshop for Programming And Systems Management Teachers"— Presentation transcript:

1 Workshop for Programming And Systems Management Teachers
Chapter 1 Introduction to Programming Georgia Institute of Technology

2 Georgia Institute of Technology
Learning Goals Understand at a conceptual level What is a computer? What is a program? Why learn to program? What is hard about learning to program? What is hard about teaching programming? Strategies for teaching programming Georgia Institute of Technology

3 Georgia Institute of Technology
What is a Computer? A device that performs high-speed mathematical and/or logical operations or that assembles, stores, correlates, or otherwise processes information. The first computers were people who did computations The picture shows the Harvard Computers which were women who did astronomical computations at Harvard University. See See See and for some of the history of computers See for a history of computers. See for some computers you may not be familiar with. Also see Georgia Institute of Technology

4 Georgia Institute of Technology
What is Programming? Creating detailed instructions that a computer can execute to accomplish some task. Like writing a recipe for your favorite dish Or giving someone directions to your house Or making a robot do what you want Put your favorite recipe on the coweb ( See if someone else can follow the directions. Write down the directions to your house. See if someone else can follow them to find it. Use LEGO Mindstorms RIS to build a robot and use Robocode to program it. Georgia Institute of Technology

5 Georgia Institute of Technology
Early Programming Early computers required the programmer to set switches and move wires Which represented a series of 1’s and 0’s Later computers were programmed using punched cards The punch cards had first been used to program looms for weaving see For a short history of programming see Georgia Institute of Technology

6 Georgia Institute of Technology
Language Evolution Early languages were based on how to do instructions on each machine 1’s and 0’s to add, subtract, read, store, etc Assembler allowed you to write programs using names for instructions and memory But still translated into machine language Higher-level languages Are compiled into machine language or virtual machine language Georgia Institute of Technology

7 Georgia Institute of Technology
Java Developed at Sun in the early 1990s Invented by James Gosling Similar to C++ in syntax but easier to use Java is C++ -- Cross-platform, object-oriented language Used in business, science, and education One of the fastest adopted technologies of all time For more information on Java see See for a sample program. See for Sun’s Java web site. It has documentation and tutorials. See for more on James Gosling. Georgia Institute of Technology

8 Georgia Institute of Technology
Which Language? All high-level languages are eventually translated into machine language You can write the same program in any language The computer doesn’t care what high-level language you use The language matters to the programmer How long does it take to write the program? How hard is it to change the program? How long does it take to execute? Georgia Institute of Technology

9 Why Don’t We Just Use English?
English is good for communication between two intelligent humans Even then we sometimes don’t understand Computers are very stupid They basically know how to add, compare, store, and load Programs are very detailed instructions Everything must be precise and unambiguous Georgia Institute of Technology

10 Georgia Institute of Technology
Programming Exercise Write down instructions for how to make a sandwich Have another group read the directions and do the actions stop anytime anything isn’t clear and ask for clarification Try doing other direction exercises. Write down directions for how to get to a classroom in the school. Write down directions for how to use a computer program. Georgia Institute of Technology

11 Georgia Institute of Technology
Why Learn to Program? Alan Perlis, first head of Carnegie Mellon's Computer Science Department, made the claim in 1961 that computer science, and programming explicitly, should be part of a liberal education Seymour Papert claimed in the 70’s and 80’s that learning to program is “learning to think, and debug one’s own thoughts.” If you learned to program, you learned to plan, to debug, to handle complexity, etc. Twenty years of research found that that is simply not true. Most people don’t learn to program One reason given for studying computer programming is to teach high-level thinking skills. See and for information on Alan Perlis. See for information on Seymour Papert. Georgia Institute of Technology

12 What CS Education Research Tells Us
Most people don’t learn to program in one semester Alan Perlis, “Most people find the concept of programming obvious, but the doing impossible.” Many people find CS classes boring and irrelevant Most people can’t transfer what they learn in programming Students have a hard time putting statements together to accomplish a task Students learn much less than teachers think they will Studies at Yale and Georgia Tech show most people can’t write a program to read numbers, total them and average them after one semester. Soloway, Guzdial, McCracken et al., 2001 The most common problem with computer science classes today is that they’re viewed as irrelevant (Margolis & Fisher, AAUW). Study of Basic programmers in 80’s asked students to print the numbers 1 to 10. They could figure out the things they would need but not how to put them together. Georgia Institute of Technology

13 Georgia Institute of Technology
So, Why Learn to Program? The computer is the most amazingly creative device that humans have ever conceived of. If you can imagine it, you can make it “real” on a computer. Computers will continue to have a major impact on modern life Movies, games, business, healthcare, science, education, etc Computers are used to do animation and special effects in movies. Computer gaming is a growing industry. Computers are used throughout the business world. Computers are used to improve healthcare and reduce errors. Computers are used to do simulations and calculations in science. There is a computer on the Mars Rover that controls it. Georgia Institute of Technology

14 Computers Are Commonplace
Computers, or at least processors, are in many common devices See for how cell phones work. Georgia Institute of Technology

15 Programming is Communicating
Alan Perlis, “You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.” Georgia Institute of Technology

16 What is Hard About Programming?
It is easier to write an incorrect program than understand a correct one – Alan Perlis Beginners have a hard time understanding some of the core concepts Boolean expressions with more than two items if (a < b) is okay if (a < b && c > d) is hard Iteration (loops) Beginners have a hard time putting statements together to accomplish a task Georgia Institute of Technology

17 Strategies for Teaching Programming
Do Live Programming Choose Depth over Breadth Assign Interesting Programs Use Pair Programming Start by Modifying Programs Have Lots of Small Projects Go from Concrete to Abstract Pair programming (programming with two people at the keyboard) really seems to help in CS1 (Laurie Williams) Georgia Institute of Technology

18 Georgia Institute of Technology
Do Live Programming Program in front of the students and talk about what you are doing and why you are doing it Programming is a new and strange activity for most people Talk through the algorithms and how to translate them to code Let them see you make mistakes and fix them Learn by example Programming can be very frustrating to new learners. By showing that you can also have trouble you will encourage them to keep trying. By showing them how to think through the task you are modeling problem solving skills. By showing them how you program you provide an example of how to program. Georgia Institute of Technology

19 Choose Depth over Breadth
Cover difficult topics in depth Cover topics in more than one way Try to get people to connect the concept to something they already know to reduce “brittle knowledge” “Brittle knowledge” is learning something for a class and then forgetting it right after. Georgia Institute of Technology

20 Assign Interesting Programs
A basic problem is that students find programming projects irrelevant Use motivating, relevant examples and projects Games, digital video special effects, animation, graphics, pictures, sound, web pages, simulations Most computer science textbooks start out with math based projects such as a temperature converter, sales tax calculator, or factorial calculation. These assignments aren’t motivating for most students and can frighten away the math phobic ones. You don’t just learn to program. You learn to program “something”. By making the thing you are learning to program interesting you can make it more likely that they will learn it. Georgia Institute of Technology

21 Georgia Institute of Technology
Use Pair Programming Have two students work together on programs They can explain what they are thinking to each other Learn from each other One may be better at typing Reducing frustration In many high school programming classes the students are not required to take typing and it is not even offered in many high schools. Studies have shown pair programming to be a good way to increase learning and reduce errors. It can take more time to get started and there can be personality problems. Georgia Institute of Technology

22 Start by Modifying Programs
Students won’t have to remember everything at once Just focus on the part they are trying to understand Less daunting than starting with nothing Just getting the syntax right is time consuming Reading code is a valuable skill The given code provides a sample of good coding practice Teach by example Gives advanced students something to learn from Georgia Institute of Technology

23 Georgia Institute of Technology
Lots of Small Projects Programming is a skill It takes practice Getting the program to work Is frustrating while you are working on it Rewarding when it works Students take much longer to program than teachers estimate Expert programmers are much, much faster than beginners Georgia Institute of Technology

24 Go from Concrete to Abstract
Use props, live demonstrations, role playing People learn better when you start with concrete things and later introduce abstract ideas Try to link concepts to students lives To make it relevant Reduce brittle knowledge Georgia Institute of Technology

25 Georgia Institute of Technology
Summary Computers are fairly simple machines Fancy calculators with lots of storage But incredibly fast Computers have changed modern life Programs are instructions to a computer to accomplish a task Programs written in high-level languages are translated to machine or assembly language by a compiler Programming is hard to learn But there are some ways to make it easier Georgia Institute of Technology


Download ppt "Workshop for Programming And Systems Management Teachers"

Similar presentations


Ads by Google