Teaching Students to Learn to Learn Mobile Phone Programming. Jonathan Sprinkle

21  Download (0)

Full text

(1)

Teaching Students to Learn to Learn

Mobile Phone Programming

(2)

Electrical and Computer Engineering

Hot or not?

Rate

me

(3)

Electrical and Computer Engineering

Hot or not?

Rate

me

(4)

Electrical and Computer Engineering

An old chestnut...

Catch a fish for a man, Feed him for a day.

David P. Murdock

Professor of Physics, TTU

Teach a man to fish, and he will ask, “Will salmon eggs be on the final?”

(5)

Electrical and Computer Engineering

How People Learn

How people learn: Brain, mind, experience, and school. J. Bransford, National Academies Press, 2000.

• Essence: people learn differently

– Visual, oral, kinesthetic

– Different teaching methods work differently on different students

• Recommendation: Reflection

• Interestingly, lately:

– Some research shows that a pure approach to

only kinesthetic, visual, etc., learning, does not improve learning for people specifically tuned to that learning style

(6)

Electrical and Computer Engineering

Implications:

• Without reflection, deep learning is not really possible

• Focus for engineering education is on lifelong learning habits

• Consider then the following two strategies:

1. Anchor 4th year undergraduates to phone programming, in order to prepare them for potential careers in phone programming. Use a

course steeped in tutorials and demonstrations in order to allow them to understand the complex APIs and platform details, and to deliver a full-fledged application within the confines of a single term course. 2. Treat 4th year software engineering as a traditional software

engineering course, focused on the development and delivery of requirements, validated through design, test, and validation of

applications developed on the mobile phone platform of the student’s choice. Students are responsible for learning the details of their device and its APIs on their own.

(7)

Electrical and Computer Engineering

To Tutorial, or To Not To Tutorial

• A tutorial-based course is also hard for this reason:

$

Oh wait...that’s not right...

(8)

Electrical and Computer Engineering

To Tutorial, or To Not To Tutorial

• A tutorial-based course is also hard for this reason:

Why would anyone want to go to your lecture,

when Stanford’s are “free” on iTunes University?

(9)

Electrical and Computer Engineering

Other downsides of a tutorial approach

• Which phone platform are you going to pick?

– Tutorials take time to produce

– You absolutely do not have time to do tutorials for more than one device, while still covering enough academic topics to satisfy course requirements – What about next year, when all the APIs change?

– What about all the students who drop your course, because they have passionate feelings about one platform or another?

• Which computing platform will your students have?

– You need an Intel Mac to do iOS programming--period.

– You need a Windows (at least VMWare) machine to do Windows Phone – Android runs on (almost) everything

• Which phone platform will your students have?

– Your students will have a variety of phones, and you cannot constrain them to all run the same OS, so that all of your examples will work, even if they *did* all have the same Android/iOS/Windows platform.

(10)

Electrical and Computer Engineering

Learning how to learn: Why it works for the course

• If students are required to learn on their own how to develop the

specific details of their devices, then they have a higher sense of pride in their apps

• There are fewer artificial “expectations” gathered from seeing examples in class

– Hot shot students exercise their abilities to the max

– Students who are doing acceptable work are still able to produce applications that meet all requirements laid out

• Less of a temptation to clone instructor code

It pays off!

A deeper understanding of the technology, for job interviews

Do not underestimate the power of holding a phone on your job interview, and showing it to a potential employer with your app on it!

(11)

Electrical and Computer Engineering

Back)by)popular)demand.)

Course Details: ECE 473-573 @ UA

• Offered yearly since the 90’s

• Titled, “Software Engineering Concepts”

• Since Spring 2010, the focus of the project has been mobile phones

– No need to get a new course through administrative bureaucracy

– No major issues if another faculty is tasked to teach the class, but is not interested in mobile phone programming

• Traditional syllabus for academic concepts

– Requirements specification, software lifecycle, testing, etc.

• Enrollment (at start of term) in last 4 offerings: Undergrad/Grad

– 2008: 9/3 (Autonomous Vehicles) – 2009: 5/3 (Mozilla Plugins)

– 2010: 12/12 (Mobile Phones) – 2011: 27/12 (Mobile Phones)

(12)

Electrical and Computer Engineering

Projects: Focus on Novelty

• Undergrads: goal is to develop something interesting (but maybe already done before)

– Teams of 3

– Work with instructor to refine ideas, and get advice on algorithms and validation criteria

– Avoid developing a game, as requirements are difficult to validate with tests

Good project examples:

Text and Drive Detector, Sheet Music Developer (with piano entry/MIDI Playback), Yelp-like localization engine, Nontraditional Campus Routing

(13)

Electrical and Computer Engineering

Graduate Projects: Focus on Research and Novelty

• Grads: Goal is to have novel idea, and novel approach

– Teams of 1 (to scale difficulty)

– Work with instructor to approve idea, responsible on their own for determining algorithms, literature review, market for application, etc.

– Focus on using sensors/information of the phone as the driver (again, not so much with games)

– Good project examples:

• Integrated GPS/IMU, Smart Thermostat Monitoring, Rapid Facial Recognition

(14)

Electrical and Computer Engineering

(15)

Electrical and Computer Engineering

Requirements

• Teams must produce requirements for their application, which are approved, and which become the contract for their grade

• Two tiers of requirements:

– B-requirements: satisfaction allows a maximum grade of “90” for project implementation

– A-requirements: satisfaction allows a maximum grade of “100” for project requirements

If there is no test for a requirement, then the requirement is considered unmet!!!

– This is why games are terrible ideas for software engineering courses! – How do you test, “fun to play, with great graphics” ??

(16)

Electrical and Computer Engineering

Change in requirements

• Instructor can modify requirements at any time during the semester • Encourages regression testing, and modular design

(17)

Electrical and Computer Engineering

(18)

Electrical and Computer Engineering

(19)

Electrical and Computer Engineering

Course Results:

• Most students choose Android over iOS

– Undergrads: 6 (Android) vs. 3 (iOS) teams

– Grads: 6 (Android) vs. 2 (iOS) teams (note: in 2011 teams were 1 person) – This is additionally because, in a team environment, everyone must be

capable of running the same phone IDE -- rules out iOS for almost all teams, unless students are passionate about that OS

• (these below data points not verified by the instructor, but based on student feedback)

• Approximate a half-dozen students have informed that this course was instrumental in their getting an interview or a job

• Several students tell that they used their mobile phone app while on their interview to show an example of the things they did in their

coursework

• Approximately 12-15 apps developed by course students have been deployed to the app store for either iOS or Android

(20)

Electrical and Computer Engineering

Conclusions

• The lure of fame and shiny objects can make this course very popular • Resist the temptation to dive into phone development, at the cost of

abandoning classical SW ENGG topics

• Students demonstrate an ability to rise to the occasion when challenged to learn, which will pay off for them in later life

Thanks to Hussain Al-Helal, who served as TA for the Spring 2011 offering, and met frequently with students during the term in order to solve technical problems and offer advice on project topics, as well as provide various lectures on phone architectures and app lifecycles.

(21)

We are always looking for good graduate students.

Figure

Updating...

References

Related subjects :