Hands-on Introduction to Computer Science at the Freshman Level

advertisement
Hands-on Introduction to Computer
Science at the Freshman Level
Raghuraman Balasubramanian,
Zachary York, Matthew Doran, Aritra Biswas,
Timur Girgin, Karthikeyan Sankaralingam
Motivation
To enable students to get an end-to-end perspective on
computer system design by building one.
2
/28
This talk
1. What we did – hands-on projects in freshman
computer engineering course
2. Our implementation experience – in 2 semesters
3. How you can adopt this in your institution
3
/28
Hands-on projects
4
/28
Hobbyist computing in the 80’s
5
/28
Today computers are everywhere
6
/28
How we teach computer science
Maze navigation
Arrays
Lists
Struct…
Hardware
simulator
7
/28
What can we do differently?
 Enable students to build computing systems
 Expose to concepts in computer engineering
 In a fun way
 Not very disruptive to existing curriculum
8
/28
Arduino
Atmel chip, 14 digital input/output pins, 6 analog inputs, a 16 MHz
crystal oscillator, a USB connection, 32KB Flash, 2KB SRAM
9
/28
Arduino – Hardware++
Stackable and Extensible
10
/28
Arduino - Hardware
GPS
11
/28
Arduino – Software++
Intuitive software
12
/28
Arduino – Software
13
/28
5 projects built around the Arduino
Freshman course : CS 252 Introduction to Computer Engineering
14
/28
Twitter client
15
/28
Maze navigation
16
/28
Obstacle Avoidance
17
/28
Angry birds
Ultrasonic
distance
sensor
18
/28
Tic Tac Toe
19
/28
Instance 1 (Spring 2012)
 Extra credit – 5% of the course, Optional
 > 50% of the class participated
 15 had no prior software experience
 Got them all hardware required
 Pointers to getting-started software
20
/28
Instance 1 (Spring 2012)-8 weeks later
 All but one team completed!
 2 teams went way beyond what we expected
 3 teams wanted to keep their hardware
21
/28
Instance 1 (Spring 2012)-Feedback
22
/28
Instance 2 (Spring 2013) - Improvements
 Instructional webpages
 Detailed setup instructions
 Demo videos
 Step-by-step project plans
 Intentionally open-ended!
 Support from multiple “Undergrad TA’s”
 Online platform for collaborative discussions
23
/28
Instance 2 (Spring 2013) - Feedback
24
/28
Lessons Learnt
 Challenge : Diversity in student’s technical backgrounds
 Projects of different complexity
 Challenge : Improving student enthusiasm and uptake
 Instructional videos, open-ended projects
 Challenge : Too much information is bad!
 Intentionally vague how-tos
25
/28
Implementing this at your institution
 Concerns : Instructor background and training
 Familiarization in an hour
 Concern : Scaling to large classes
 Facilitate peer-to-peer learning
 Concern : Additional load on the “Undergrad TAs”
 Drops off after the first two weeks
http://pages.cs.wisc.edu/~karu/arduino
26
/28
Thanks to my incredible team
Zach
Matt
Raghu
Ari
Tim
Karu
27
/28
From the student feedbacks
 I wish it could have been worth more. This was much more interesting




than anything else we did in class and I wish we could expand on it
some.
We can start it at the beginning of the semester. So that we can add as
many features as we want.
This project was well organized, everything went smoothly. The only
thing I might change is possibly allow two person groups.
I thought it was great. It is a lot of fun, and we are still making
improvements on the robot every time we meet.
I already expressed my difficulty in understanding assembly, but
even though I didn't even know how to program in C-like languages
before a month ago, I picked up on the concepts much faster than I
did LC-3's pseudo-language. This makes me feel that (bar the
*concepts* gained in 252) the Arduino project was a much more
practical use of programming knowledge. I would also like to take this
opportunity to say thank you - this was a great experience that I would
not have had the opportunity to explore otherwise.
28 /28
http://pages.cs.wisc.edu/~karu/arduino
Download