730 likes | 853 Views
An “enjoyable” introduction to Programming. Dr. Jeyakesavan Veerasamy The University of Texas at Dallas, USA Email: jeyv@utdallas.edu Alice 2.2 Software: www.alice.org Examples: www.utdallas.edu/~jeyv/alice. What is programming?. Developing applications & games
E N D
An “enjoyable” introduction to Programming Dr. Jeyakesavan Veerasamy The University of Texas at Dallas, USA Email: jeyv@utdallas.edu Alice 2.2 Software: www.alice.org Examples: www.utdallas.edu/~jeyv/alice
What is programming? • Developing applications & games • Software is not limited to PC • most complex systems run software • smart phones, game devices, even DVD players
Programming … • is NOT a boring or repetitive activity • does NOT require you to sit in dark room and type in computer all day! • does NOT involve complex Math • requires logical thinking – technical common sense • write minimal code & combine with existing components to build new applications • Solve customers’ problems & improves quality of life for every one.
Why learn programming? • Software Engineers get great pay! • Less stressful compared to several other high paying jobs • Automation continues… • Computer touches our lives more & more every day… • More component based programming always room for simple programs to do large tasks!
Learning to ride bicycle • Difficulties for beginners: • Difficulties for experienced folks:
Learning to ride bicycle • Difficulties for beginners: • Learning to balance & go forward together • Difficulties for experienced folks: • None.
Solution for beginners • Training wheels • Helmet • Makes learning enjoyable and safe! • Similar difficulties are there while learning to program in a computer.
Learning to program:Difficulties for beginners • Syntax errors • struggle for hours to fix syntax errors • Loose confidence • Frustrating experience • Run away & never come back if possible! 2. Logic errors Not a serious issue.
Difficulties for experienced programmers Logic errors Continuous learning
Learning to program • Most students try to learn syntax and logic together, waste lot of hours and get confused & frustrated. • Indian students resort to memorization of programs. US students run away from programming & CS major. Both are NOT good • It is possible to do much better!
Solution • Visual Programming Tools to teach programming concepts without encountering syntax errors. • Focus on the logic first & build confidence.
A few examples • Recipe to make your favorite food • Assembly instructions for a toy • Coming to college from home What is common about these activities?
A few examples • Recipe to make your favorite food • Assembly instructions for a toy • Coming to college from home What is common about these activities? Sequence
Programming concepts:Sequence structure instruction 1; instruction 2; instruction 3; …
A few more examples • Study at home or play cricket with friends? • Eat Parotta or Poori? • Go to Vijay’s movie or Karthik’s movie? • Go to job or go for higher studies? What is the common thing here?
A few more examples • Study at home or play cricket with friends? • Eat Parotta or Poori? • Go to Vijay’s movie or Karthik’s movie? • Go to job or go for higher studies? What is the common thing here? Selection
Selection structure IF condition is true THEN do this; ELSE do that; ENDIF
A few more examples • Eat chips from a packet • Go on a shopping spree with lot of cash! • Take an exam that has several questions What is the common thing here?
A few more examples • Eat chips from a packet • Go on a shopping spree with lot of cash! • Take an exam that has several questions What is the common thing here? Repetition
Repetition structure WHILE (more items to process) process the next item; ENDWHILE FOR month = 1 to 12 do monthly processing ENDFOR
Programming Concepts • Structures: Sequence, Selection & Repetition • Foundation for Programming • Every complex program is only a combination of these structures.
More things we do… • Use a box to move lots of things from one room to another • Carry a pack of candies to class on your birthday! • What is the common thing here?
More things we do… • Use a box to move lots of things from one room to another • Carry a pack of candies to class on your birthday! • What is the common thing here? Collection / Arrays
Arrays • enable us to store data of similar type together. • enables us to handle varying size data. • Lines of code do not increase with more data! FOR each item in array add item to total ENDFOR
Even more things we do… • Get phone call when you are driving a car • Friend knocks on the door when you are watching a movie • What is the common thing here?
Even more things we do… • Get phone call when you are driving a car • Friend knocks on the door when you are watching a movie • What is the common thing here? Interrupts / events
Event driven programming • Suspend current processing to process the event, or process it in parallel. • “Regular” processing flow & separate processing routine for each event.
Object Oriented Programming (OOP) • Models the real-world better • Concepts learned from the manufactoring industry
Hands-on Introduction to Alice It is a good idea to save each program separately so that you can go back and review later.
Purpose of Alice • Enjoyable introduction to Programming • Natural introduction to OOP • Learning to program with training wheels • Stepping stone to learn more serious languages (C/C++/Java)
Alice environment • World • Gallery • Scene Setup • Adding objects • Working with objects • Similar to Scene setup in move-making • Every object needs to be in starting position
Methods & Actions • You are welcome to play along with me. • Add one object • Test out various movements (moves in 6 directions, turns in 4 ways & roll in 4 ways) • Add one more object • Test out relative movements
Program #1: Choose your favorite object from the gallery and test various methods. 10 minutes?
Our first program! • Sequence structure • do a few interesting actions!
Program #2: Make your object do a few funny actions! 10 minutes?
Program #3 • Introduce multiple objects • do a few interesting actions!
Program #3: Make your objects do a few funny actions! 15 minutes?
Program #4 • Use DO TOGETHER structure • Add realism & sophistication!
Program #4: Use DO TOGETHER to do multiple things at same time! 15 minutes?
Program #5 • Add Vehicles/Seaplane from local gallery. • Make it do loop the loop. • Use DO TOGETHER structure • seaplane move forward • seaplane turn backward • seaplane’s propeller roll right • Use “style = abruptly” to make the motion smooth
Program #5: Use DO TOGETHER to make the plane do loop the loop! 20 minutes?
Program #6 • Introduce repetition – counted loop • do a few interesting actions!
Program #6: Make your objects do a few funny actions multiple times! 10 minutes?
Program #7 • How to do realistic walking? • Leg & body movements • Better to do with a human object from “People/Walking People” • Write your own methods.
Program #7: Practice human walking/running animation 15 minutes?