An enjoyable introduction to Programming Dr. Jeyakesavan Veerasamy CS faculty, University of Texas at Dallas Website:

Slides:



Advertisements
Similar presentations
Homework Assignment. Assignment One Ready for the next challenge. Great! Time to pick an affiliate product to promote. Go to ClickBank.com and go to the.
Advertisements

How to Start a New Robofest Team. Starting a Robofest Team is much easier compared to other robotics competitions Robofest is affordable, only $50 to.
Engineering Adventures: Educator Workshop. By the end of this workshop, you will… Know what it feels like to engineer Understand what it means to lead.
Arrays Dr. Jey Veerasamy July 31 st – August 23 rd 9:30 am to 12 noon 1.
Programming Basics using Real-life examples Dr. Jeyakesavan Veerasamy CS faculty, UT Dallas, USA
Complex Systems Applications Dr. Jeyakesvan Veerasamy The University of Texas at Dallas, USA Good morning!
Higher studies, Jobs & Trends in Computer Science in USA Dr. Jeyakesavan Veerasamy
Lecture 0: Course Overview
Integrate STEM with Design, 3d Printing, Robotics, and Computer Programming Vinny Garrison Brian Perry Christopher Polizzi Nanuet School District.
Welcome to C++ Programming Workshop at The University of Texas at Dallas Presented by John Cole July 8-12, 2013.
Teaching with Greenfoot
An “enjoyable” introduction to Programming Dr. Jeyakesavan Veerasamy Senior Lecturer University of Texas at Dallas
Guest Lecture Series Professor Michael Sherris  Introduction to Guest lecture series  Becoming a Better Actuary and Actuarial Student: –Tips for Job.
Training Math Tutors To Tutor Developmental Math Students
The Harris County Library should have a coding program for kids Anna Xu 1.
Online Education is the future? Dr. Jeyakesavan Veerasamy The University of Texas at Dallas, USA.
An “enjoyable” introduction to Programming Dr. Jeyakesavan Veerasamy The University of Texas at Dallas, USA Alice.
Future of Online Education in USA
Embedded Programming and Robotics Introduction and Overview Presented by John Cole Senior Lecturer in Computer Science The University of Texas at Dallas,
Software Development – Thoughts & observations Dr. Jeyakesavan Veerasamy
Research Scholars: Shaping your future Dr. Jeyakesavan Veerasamy University of Texas at Dallas
Welcome to KGiSL Institute of Technology (KITE)! Dr. V. Jeyakesavan University of Texas at Dallas, USA
Virtual learning for Management education Dr. Jeyakesavan Veerasamy
How to Use App Inventor in Your Classroom Julie Friesen Piper Middle School Technology 6 th -8 th Grades Edmodo Group Code to Join for More Resources:
An “enjoyable” introduction to Programming using Khan Academy – Java Script Dr. Jeyakesavan Veerasamy CS faculty, The University of Texas at Dallas
Getting Started With Java Downloading and installing software Running your first program Dr. DwyerFall 2012.
Welcome to Computing. How is Computing assessed? AS Unit 1 Practical Theory of computation. Fundamentals of programming, data structures and algorithms.
 3D graphics environment  Focuses on Object Oriented Programming  Provides immediate feedback through program visualizations  Contains a drag-and-drop.
Williams Syndrome Explained A Guide for Young Children
Programming for Everyone How is Making Programming More Accessible, Meaningful, and Social Mitchel Resnick MIT Media Lab.
Integrating Business Education and Computer Science to Prepare Students for the 21 st Century Barbara Ericson Advanced.
Introduction CSE 1310 – Introduction to Computers and Programming
JavaScript Basics Course Introduction SoftUni Team Technical Trainers Software University
Final Year Projects Dr. Jeyakesavan Veerasamy Director of CS Senior Design Program University of Texas at Dallas, USA
* Discussion: DO YOU AGREE OR DISAGREE WITH THESE STATEMENTS? WHY OR WHY NOT? 1.The difficulty of a text depends mostly on the vocabulary it contains.
Simplicity First: Use of Tools in Undergraduate CS and IS Teaching By David Naugler and Ken Surendran Southeast Missouri State University Computer Science.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Programming Software from Carnegie Mellon Began at University of Virginia under the leadership of Dr. Randy Pausch (“The Last Lecture”)
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
By the end of this session you should be able to...
Game Programming in Java Dr. Jeyakesavan Veerasamy CS faculty, The University of Texas at Dallas Website:
Interspire Knowledge Manager (Formerly Interspire ActiveKB)
Your Roadmap for Success Alice: “Would you tell me, please, which way I ought to go from here?" Cat: "That's depends a good deal on where you want to get.
1 CS1100 Fall Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems CS100J:
School Wide Students and Families Survey in October NewStar Chinese School November 2013 The School Board of Directors.
Hour Two – what to do after the Hour of Code JULIE BAR AND MARTIN FUNK – NEW TRIER HIGH SCHOOL.
Passionate Programming & IT trends Dr. Jeyakeavan Veerasamy The University of Texas at Dallas, USA Web:
An “enjoyable” introduction to Programming Dr. Jeyakesavan Veerasamy CS faculty, The University of Texas at Dallas Website:
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
CSCI N201 Programming Concepts and Database 2 - STAIR Lingma Acheson Department of Computer and Information Science, IUPUI.
1 st PeriodAP Computer Science 2 nd PeriodComputer Science I 3 rd PeriodIntroduction to Programming 4 th PeriodComputer Science I/ Advanced Projects Lunch.
Introduction to the course Aug 30, Day 1 Object-oriented Programming thru Video Games TIDE 1840 Harry Howard Tulane University.
CS education: teaching computer science. Teaching programming Teaching computer science has become a huge industry: Huge job growth Not enough CS- trained.
DSMA 0393/1414 Comments of Students. Co-requisite Model Student Comments Students were given this request on their final examination: Write a statement.
Tel : About iCodeinc: iCode Inc is a state-of-the-art educational institution located in the Dallas area. iCode’s mission.
STUDY TIPS FOR COLLEGE SUCCESS CPCC TRiO STUDENT SUPPORT SERVICES PERSONAL DEVELOPMENT SERIES.
Introduction to Programming and App Inventor. Introduction What is a computer program? Introducing App Inventor Getting hands on with App Inventor.
MS. NANCY HARRIS LECTURER, DEPARTMENT OF COMPUTER SCIENCE CS 149 – Programming Fundamentals (Accelerated)
Introduction to CSCI 1311 Dr. Mark C. Lewis
Victory Lutheran college
Welcome to Computer Science
An “enjoyable” introduction to Programming
CSC207 Fall 2016.
CSC 221: Computer Programming I Spring 2010
CSC 221: Computer Programming I Fall 2005
Introduction to Programmng in Python
Introduction CSE 1310 – Introduction to Computers and Programming
Welcome to Computer Science
CS Problem Solving and Object Oriented Programming Spring 2019
Presentation transcript:

An enjoyable introduction to Programming Dr. Jeyakesavan Veerasamy CS faculty, University of Texas at Dallas Website:

Agenda Difficulties in attracting students to STEM careers & specifically CS - what can we do? Fundamental concepts in Programming Demos using Alice, Khan Academy, Scheme, and Greenfoot. Best ways to make learning enjoyable & efficient Future UT Dallas

Difficulties in attracting students to STEM careers in USA When was the last time you had Engineer check-up? STEM jobs have serious problem relating to. Children want to see the jobs in action! They see lots of others at work: Doctor, pilot, flight attendant, plumber, fire-fighter, painter, server, … rarely they see an Engineer at work! Only 4% of high school students enter STEM fields, in spite of low unemployment rate.

Issues specific to Computer Science Compared to other STEM areas, CS is harder to relate to! Myth – Programming uses tons of math! Myth – Programmer sits in front of computer all day! A typical school kid needs to say I hate math every day to keep the circle of friends Majority of girls seem to think Programming is 100% logic – breaking your head all day - it is hard to be passionate about! Programming is introduced in hap-hazard manner in schools complicating the scenario further.

Issues for College Freshmen in CS… Considerable % of students find 1 st programming course as painful experience. They loose confidence quickly and change majors – never come near CS building again – end up in low paying jobs! Reality – it is hard to learn Java/C/C++ directly, even with a great instructor. Wrong approach and mediocre instructor together turn away lots of students

A few bright spots in recent years Fear of outsourcing is slowly coming down. Finally, we have a few things that younger generation can relate to: – Mobile applications – Game development – Web applications

Issues with STEM education in India Parents advice: Doctor or Engineer or Doomed Good % of students in CS/Engg. because of parents! Majority of school students excel in memorization. Students take the path of least resistance & refuse to do logical thinking. Instead of dealing with syntax errors, they memorize 10 to 20 programs every semester and hope for 1 or 2 of them to be in the exam Lack of meaningful plans and qualified faculty

Why learn programming? It is really technical common sense! Software Engineers get great pay! Less stressful compared to several other high paying jobs - ok to do mistakes & learn from them Computer touches our lives more & more every day – it is good to know programming, even if you are in other fields. More component based programming always room for simple programs to do big tasks! Software design focuses more on integration now, than writing everything from scratch.

Analogy: Learning to ride bicycle Difficulties for beginners: – Learning to balance & go forward together Difficulties for experienced folks: – Nothing specific.

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 1.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

Solution Visual Programming Tools to teach programming concepts without encountering syntax errors. Focus on the logic first & build confidence.

Free Visual Programming Tools ToolProviderWeb-site Alice 2.3Carnegie Mellon University ScratchMITscratch.mit.edu Snap!UCBerkeleybyob.berkeley.edu Lego MindStormLegomindstorms.lego.com Several more…

A few bit advanced tools ToolProviderWeb-site Alice 3.1Carnegie Mellon University JavaScriptKhan Academywww.khanacademy.org/cs RacketUCBerkeleywescheme.org GreenfootUkentwww.greenfoot.org Several more…

Programming Concepts based on every day activities

A few examples Recipe to make favorite food Assembly instructions for a toy Getting ready in the morning to go to school What is common about these activities? Sequence

Programming concepts: Sequence structure instruction 1; instruction 2; instruction 3; …

A few more examples Go to movie or study? Eat salad or sandwich? Go to job or go for higher studies? What is the common thing here? Selection or IF statement

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? Repetition / Loops

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? 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? 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 manufacturing industry

Alice demo

Sample program in Snap 4.0

Program Output

KhanAcademy Demo

Greenfoot Demo

10 ways to make learning to program enjoyable & efficient!

1. Take time to learn! Each person may learn at different pace. Each person has a different learning style. Learning C/C++/Java directly is NOT recommended. What is the hurry? If everything looks cryptic, you are going too fast!

2. Utilize examples Instead of writing all the code from scratch, it is good to look at a few examples. Also, majority of the learners prefer to look at examples instead of reading a manual.

3. Use a good IDE IDE stands for Integrated Development Environment Examples: MS Visual Studio, NetBeans, Eclipse, jGRASP, DrJava, BlueJ, … Good IDE takes care of mundane things and makes programming enjoyable!

4. Plan before you code You can be slow and steady or race and burn It is common for experienced designers to do race and burn before reverting back to slow and steady Make a practice of writing high level pseudo code before coding – unfortunately, this is not insisted in most programming courses!

5. Learn with a friend Learning in a group setting is preferred, if not, try to learn with a friend. Discuss ideas and help each other when you get stuck. Enables you to work on a team assignment Self-paced learning alone is not for every one. It requires lot of self-discipline & it is not much fun!

6. Mimic an interesting game/feature It is easier to focus on implementation when functionality is clearly understand. It is easy to relate to.

7. Have a time-discipline I encourage you to fix the issues on your own, but do not spend >30 minutes on any one issue. Ask for help! If not, your frustration level will increase & confidence will go down.

8. Implement a useful app/game It increases your confidence level. You can be proud of your work.

9. Use video tutorials …

10. Participate in programming competitions ACM programming contest - uva.onlinejudge.org Infosys Aspirations 2020 US Computing Olympiad (feeds to International Olympiad in Informatics) –

What we UT Dallas? We offer the following courses/workshops for school kids: – Introduction to programming using Java – Advanced problem solving using Java – Enjoyable introduction to programming using Alice – CHAMPS problem solving camp using Alice – programming competitions I want to develop an array of courses to help the school students in our area.

Enjoyable … series of courses Enjoyable Introduction to Programming using Alice Scratch SNAP … Drawings Music Animation Robotics Games …

Next level programming courses Java C/C++ Python Mobile app development Game development

Advanced level Problem solving & algorithms Programming competitions Advanced game development Sophisticated Mobile app development

Suggested sequence Drag-and-drop programming (Alice or similar) Free-form typing (KA-JavaScript, …) Introductary course in C/C++/Java Advanced course in C/C++/Java

Important links My My web page: Alice workshop video tutorials: (or) tutorials.org (soon) JavaScript workshop video tutorials: (or) tutorials.org (soon) Thanks for listening! Ready for Questions & Answers