Announcement: How to Think Like a Computer Scientist -- Interactive Edition

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Brad Miller-9
Hello,

As part of my Sabbatical this past year I've been working on a new edition of How to Think Like a Computer Scientist (by Elkner et. al) with my colleague David Ranum.  The idea behind this new edition is to make it interactive, to encourage students to learn by doing and to explore.  The three main features we've added to previous editions are:
  • Videos:  Each section has (or will have) a 5-10 minute screencast explaining the written concepts verbally.
  • Interactive Python interpreter.  Using Skulpt -- an open source javascript implementation of Python.
  • Codelens code visualizer -- Based on the Online Python Tutor by Philip Guo this element allows students to step forward and backward through the code and to see the values of variables
To make it easy to add these features I wrote 3 new sphinx directives, so adding the interactive code features is not onerous.  When we finish our last pass through the book, we'll make all the code available on bitbucket.

We'll be using this book in our introductory course this fall at Luther, and adding more videos as we move through the semester.  

You can take a look at our work here:  http://thinkcspy.appspot.com

You'll need a gmail account to access the book. You'll also need a modern browser that supports html5, the interactive features rely heavily on Javascript and the canvas element.  (Safari, Firefox 6, Chrome) The reason is that the interactive code allows you to save your changes and reload them again later.  I've added an administrative back-end to the book so that we can have students do homework right in the browser.  I'd love to hear your feedback and ideas for other interactive features.

Brad

-- 
Brad Miller
Associate Professor, Computer Science
Luther College


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Carl Cerecke-4
Looks good. Nice work.

How about exercises in a similar style to codingbat.com? That would be really valuable I think.

Cheers,
Carl.

On 27 August 2011 02:23, Brad Miller <[hidden email]> wrote:
Hello,

As part of my Sabbatical this past year I've been working on a new edition of How to Think Like a Computer Scientist (by Elkner et. al) with my colleague David Ranum.  The idea behind this new edition is to make it interactive, to encourage students to learn by doing and to explore.  The three main features we've added to previous editions are:
  • Videos:  Each section has (or will have) a 5-10 minute screencast explaining the written concepts verbally.
  • Interactive Python interpreter.  Using Skulpt -- an open source javascript implementation of Python.
  • Codelens code visualizer -- Based on the Online Python Tutor by Philip Guo this element allows students to step forward and backward through the code and to see the values of variables
To make it easy to add these features I wrote 3 new sphinx directives, so adding the interactive code features is not onerous.  When we finish our last pass through the book, we'll make all the code available on bitbucket.

We'll be using this book in our introductory course this fall at Luther, and adding more videos as we move through the semester.  

You can take a look at our work here:  http://thinkcspy.appspot.com

You'll need a gmail account to access the book. You'll also need a modern browser that supports html5, the interactive features rely heavily on Javascript and the canvas element.  (Safari, Firefox 6, Chrome) The reason is that the interactive code allows you to save your changes and reload them again later.  I've added an administrative back-end to the book so that we can have students do homework right in the browser.  I'd love to hear your feedback and ideas for other interactive features.

Brad

-- 
Brad Miller
Associate Professor, Computer Science
Luther College


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig



_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

kirby urner-4
On Fri, Aug 26, 2011 at 7:07 PM, Carl Cerecke <[hidden email]> wrote:
> Looks good. Nice work.
>

+1

Blogged a link:

http://worldgame.blogspot.com/2011/08/how-to-think-like-computer-scientist.html

Great contribution to computer lit.

Kirby

>> Hello,
>> As part of my Sabbatical this past year I've been working on a new edition
>> of How to Think Like a Computer Scientist (by Elkner et. al) with my
>> colleague David Ranum.  The idea behind this new edition is to make it
>> interactive, to encourage students to learn by doing and to explore.  The
>> three main features we've added to previous editions are:
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Phil Wagner-2
In reply to this post by Brad Miller-9
Wow Brad, I'm so glad you are keeping up this project. It was the tutorial that got me started on Python, what I provide to all of my students, and my top recommendation on my blog. To have additional resources and support for teachers will be wonderful. Thank you so much. 

Looking through this, makes me feel like a new standard has been set for online textbooks!

As far as feedback, is it possible that the video could be in widescreen? I'm not sure how it was recorded but it squishes everything in.

The code boxes are brilliant, but I ran an infinite while loop in one and it froze up the page. Not a big deal in Chrome since each window runs independently of each other and I just closed it. I could see this happening 20 seconds into a course. Could be a feature not a bug and I am certainly not advocating for "locking it down" but thought I would mention it.

Thanks again! Your resources are making a huge impact and opening doors for people who might not otherwise have discovered the joys of programming.

--

www.brokenairplane.com (Ed-Tech Blog, Tutorials, and Resources)
Connect with me on: TwitterLinkedIn, and Google+



_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Laura Creighton-2
Wow Brad, this is really cool.  Have you given any thought to making
this work with Google Translate so that people whose native language
is not English can just use the thing?

Laura

_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Nicolas Pettiaux-2
Thank you very much Brad.

As a native French speaking python teacher, I had the same question as
Laura. How to best adapt your lessons and efforts to other languages ?
Quite evidently, the recorded lectures have to be subtitled (for
example with universal subtitles - see
http://www.universalsubtitles.org/) or recorded again in these other
languages, but again for these, the transcription that would be in
http://www.universalsubtitles.org/ would be very useful.

Nicolas

2011/8/27 Laura Creighton <[hidden email]>:
> Wow Brad, this is really cool.  Have you given any thought to making
> this work with Google Translate so that people whose native language
> is not English can just use the thing?
>
> Laura
>


--
Nicolas Pettiaux, dr. sc  - lepacte.be - hetpact.be -
À l'Ère Libre - « promouvoir les libertés numériques en Belgique »  -
alerelibre.be
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Brad Miller-9
Thanks for the encouraging words everyone!

I will look into the Google Translate option, its something I haven't investigated before.

David and I have this idea for the videos that it would be really cool to get a whole collection of them hosted as part of this book.  Different languages would be great, and of course it might be very interesting for the students as different people are going to explain the concepts in different ways.  The way I explain something may not click with a particular student but the way of you you explains it might.

Phil:  I'm looking into some kind of a timer for the Skulpt environment that may solve the infinite loop problem.  For now we'll just rely on closing the tab or refreshing the page.

Carl:  Exercises akin to codingbat.com are already on my todo list.

This is definitely just a first iteration, I think there are lots of interesting things yet to come.

Brad
-- 
Brad Miller
Associate Professor, Computer Science
Luther College

On Saturday, August 27, 2011 at 1:50 AM, Nicolas Pettiaux wrote:

Thank you very much Brad.

As a native French speaking python teacher, I had the same question as
Laura. How to best adapt your lessons and efforts to other languages ?
Quite evidently, the recorded lectures have to be subtitled (for
example with universal subtitles - see
http://www.universalsubtitles.org/) or recorded again in these other
languages, but again for these, the transcription that would be in
http://www.universalsubtitles.org/ would be very useful.

Nicolas

2011/8/27 Laura Creighton <[hidden email]>:
Wow Brad, this is really cool.  Have you given any thought to making
this work with Google Translate so that people whose native language
is not English can just use the thing?

Laura


--
Nicolas Pettiaux, dr. sc  - lepacte.be - hetpact.be -
À l'Ère Libre - « promouvoir les libertés numériques en Belgique »  -
alerelibre.be
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Sarina Canelake-2
In reply to this post by Carl Cerecke-4
Hi Carl,

I am a master's student, and for my project I am building an interactive Python tutor system, hopefully with 150-250 problems, as well as embedded video. Some of my inspirations have been the Khan Academy and codingbat. 

I'm beta testing the tutor in a course I teach over MIT's IAP period (January term) and I hope to be releasing it as a free product through MIT's Open CourseWare by next summer.

Currently the problems are for Python 2.7.x, as that's what we use in the EECS department here. If it seems like more people are transitioning to Python 3, I can potentially release a second version of the tutor that uses a Python 3 interpreter. 

Regards,
Sarina

On Fri, Aug 26, 2011 at 10:07 PM, Carl Cerecke <[hidden email]> wrote:
Looks good. Nice work.

How about exercises in a similar style to codingbat.com? That would be really valuable I think.

Cheers,
Carl.

On 27 August 2011 02:23, Brad Miller <[hidden email]> wrote:
Hello,

As part of my Sabbatical this past year I've been working on a new edition of How to Think Like a Computer Scientist (by Elkner et. al) with my colleague David Ranum.  The idea behind this new edition is to make it interactive, to encourage students to learn by doing and to explore.  The three main features we've added to previous editions are:
  • Videos:  Each section has (or will have) a 5-10 minute screencast explaining the written concepts verbally.
  • Interactive Python interpreter.  Using Skulpt -- an open source javascript implementation of Python.
  • Codelens code visualizer -- Based on the Online Python Tutor by Philip Guo this element allows students to step forward and backward through the code and to see the values of variables
To make it easy to add these features I wrote 3 new sphinx directives, so adding the interactive code features is not onerous.  When we finish our last pass through the book, we'll make all the code available on bitbucket.

We'll be using this book in our introductory course this fall at Luther, and adding more videos as we move through the semester.  

You can take a look at our work here:  http://thinkcspy.appspot.com

You'll need a gmail account to access the book. You'll also need a modern browser that supports html5, the interactive features rely heavily on Javascript and the canvas element.  (Safari, Firefox 6, Chrome) The reason is that the interactive code allows you to save your changes and reload them again later.  I've added an administrative back-end to the book so that we can have students do homework right in the browser.  I'd love to hear your feedback and ideas for other interactive features.

Brad

-- 
Brad Miller
Associate Professor, Computer Science
Luther College


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig



_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig




--
Sarina Canelake
MIT EECS


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Kirby Urner-6
On Sat, Aug 27, 2011 at 8:31 AM, Sarina Canelake <[hidden email]> wrote:
Hi Carl,

I am a master's student, and for my project I am building an interactive Python tutor system, hopefully with 150-250 problems, as well as embedded video. Some of my inspirations have been the Khan Academy and codingbat. 


Heads up re talk at OSCON this year by Scott Gray (full disclosure:  I work for the guy) ranting against several categories of interactive courseware, but namely "watch a video then play the match game with canned quiz show type questions".  There's no "making with tools", no "apprenticeship".  Anyway, just saying there's a spectrum.

This isn't about passing judgment on any particular system, either.  Our Python Track has lots of "no brainer" quiz questions for student reinforcement.  It's not like this doesn't feel like a school (though more asynchronous and with less emphasis on externally imposed deadlines). The projects tend to be Python modules, or pairs, with one unit testing the other.  Teachers provide feedback. 

Any time you see complete automation on the back end, I say you have a competitive edge if you add a human touch.  Our testing instruments are all hand graded, and projects come with real advisers, albeit not in real time (it's an asynchronous UI).

Kirby


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Sarina Canelake-2
Hi Kirby,

Thanks for the feedback. I've enjoyed reading your posts on the list, and the specific concerns you address are well worth considering. If you don't mind, I'd like to give some background on my project. 

The tutor system is being developed for use in conjunction with - not as a substitute for - a few MIT courses. I am a TA for 6.00 (ref: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/) which is Python geared for non-EECS majors; I'm testing the system with 6.189, a course I've developed for January term (ref: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/). 6.01, "Introduction to EECS", is already utilizing a beta version of the tutor. I think the tutor will work best in conjunction with a class, primarily for students who feel left behind by the instruction. I became a CS major late in the game - my junior year of college - and I struggled with the coursework, as I felt there weren't enough practice problems at the introductory level. The given homework problems often tested advanced understanding of the material, while I struggled to understand the basics. 

Like I said, this is being developed for internal MIT use, but I believe that if I spend effort developing this that it should be released openly. Yes, the tutor we have developed is entirely automated. I have spent the summer primarily working on the problems, but as the fall progresses and we work towards developing a partnership with OCW, I hope it will be possible to make the system adaptable for educator use. Perhaps we will be able to enable administrative accounts, or allow educators to mirror the system fully so they can add problems (including non-auto graded ones, which would enable input of open-ended essay or coding questions) as they please, as well as view their students' solutions. I don't know the technical limitations of OCW as of yet, so I can't say what we'll do.

At the very least, I hope to provide practice problems to my students who feel left behind, who often email me desperately asking me for places they can go for simple problems to practice their Python before exams. One thing I hope to do with videos is to provide ones that, after a solution is submitted for a problem, walks through a few different ways of approaching it. I notice that my students often lack a good way of approaching a problem, but when we work through it a second time, they have an easier time grasping what they ought to have looked for and anticipated. I notice students who are willing to spend the time to reconsider their work on an earlier problem often become better, more analytical programmers.

Finally, I fully recognize that everyone learns differently. I have minor dyslexia and thus have a tough time self-teaching from books. If the system I develop helps even a handful of kids, I'll be pretty happy to have made a difference.

Thanks again,
Sarina

On Sun, Aug 28, 2011 at 1:23 AM, Kirby Urner <[hidden email]> wrote:
On Sat, Aug 27, 2011 at 8:31 AM, Sarina Canelake <[hidden email]> wrote:
Hi Carl,

I am a master's student, and for my project I am building an interactive Python tutor system, hopefully with 150-250 problems, as well as embedded video. Some of my inspirations have been the Khan Academy and codingbat. 


Heads up re talk at OSCON this year by Scott Gray (full disclosure:  I work for the guy) ranting against several categories of interactive courseware, but namely "watch a video then play the match game with canned quiz show type questions".  There's no "making with tools", no "apprenticeship".  Anyway, just saying there's a spectrum.

This isn't about passing judgment on any particular system, either.  Our Python Track has lots of "no brainer" quiz questions for student reinforcement.  It's not like this doesn't feel like a school (though more asynchronous and with less emphasis on externally imposed deadlines). The projects tend to be Python modules, or pairs, with one unit testing the other.  Teachers provide feedback. 

Any time you see complete automation on the back end, I say you have a competitive edge if you add a human touch.  Our testing instruments are all hand graded, and projects come with real advisers, albeit not in real time (it's an asynchronous UI).

Kirby


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig




--
Sarina Canelake
MIT EECS


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

kirby urner-4
On Sat, Aug 27, 2011 at 11:20 PM, Sarina Canelake <[hidden email]> wrote:
> Hi Kirby,
> Thanks for the feedback. I've enjoyed reading your posts on the list, and
> the specific concerns you address are well worth considering. If you don't
> mind, I'd like to give some background on my project.

I'm glad you found your way to this list Sarina as it's definitely an
apropos place to archive details about your project, the thinking
behind it and so forth.

Python got a big boost when MIT started to become more Python-centric
in its courseware, some of which is free and open source.

Speaking for myself (not any of my co-workers) I have no objections to
automated grading / scoring as an option.

The Python interpreter is itself automatic and a great source of
impersonal (non-judgmental) feedback.

Some students respond better in anonymous automatic situations as they
do not feel judged by another human who might know them (an invasion
of privacy).

The thing Scott wants to combat is too much passivity in the culture.

It's a generic problem with a lot of schooling, when it becomes an
extension of spectator sports, with the learner the passive spectator.

No one technology or learning experience can be singled out.  Even
television may inspire lots of activity -- especially if you make it,
don't just watch it.

That sense of "hard fun" where you struggle with a program, and don't
just have to fill in the blanks or do multiple choice, has to be
developed somewhere.

Automated feedback services have their role.

The mathematics curriculum I write about and implement / field test
where feasible (quite a few opportunities) has people actually biking
around town hauling vegetables in trailers.

Down the road, our work will involve the placement of sensors,
environmental monitors, here there and everywhere, again using bikes
sometimes (sometimes going on foot, sometimes kayaks or canoes).

MIT has been an inspiration for some of this thinking.  This web site
for example:  http://web.mit.edu/newsoffice/2010/landman-report.html

Also the movie 'Gasland'.

Kirby
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Announcement: How to Think Like a Computer Scientist -- Interactive Edition

Brad Miller-9
In reply to this post by Carl Cerecke-4
Carl,

I just added another sphinx extension that takes a step in the direction you are talking about.

I created an exercise extension.  At a minimum it creates an editor with controls to run, save and load.  You can see these in place for chapters 1-3 now.

Optionally you can provide the student with some scaffolding code.  For example in a temperature conversion problem  The exercise might open up with the following code already in place.

def c2f(degC):
    # your code here

assert c2f(0) == 32
assert c2f(100) == 212


You could also make use of the simple test function provided in the original book as well rather than rely on assert.

It doesn't have the nice graphics of codebat for giving you feedback, but that could all be added down the road.

Brad

-- 
Brad Miller
Associate Professor, Computer Science
Luther College

On Friday, August 26, 2011 at 9:07 PM, Carl Cerecke wrote:

Looks good. Nice work.

How about exercises in a similar style to codingbat.com? That would be really valuable I think.

Cheers,
Carl.

On 27 August 2011 02:23, Brad Miller <[hidden email]> wrote:
Hello,

As part of my Sabbatical this past year I've been working on a new edition of How to Think Like a Computer Scientist (by Elkner et. al) with my colleague David Ranum.  The idea behind this new edition is to make it interactive, to encourage students to learn by doing and to explore.  The three main features we've added to previous editions are:
  • Videos:  Each section has (or will have) a 5-10 minute screencast explaining the written concepts verbally.
  • Interactive Python interpreter.  Using Skulpt -- an open source javascript implementation of Python.
  • Codelens code visualizer -- Based on the Online Python Tutor by Philip Guo this element allows students to step forward and backward through the code and to see the values of variables
To make it easy to add these features I wrote 3 new sphinx directives, so adding the interactive code features is not onerous.  When we finish our last pass through the book, we'll make all the code available on bitbucket.

We'll be using this book in our introductory course this fall at Luther, and adding more videos as we move through the semester.  

You can take a look at our work here:  http://thinkcspy.appspot.com

You'll need a gmail account to access the book. You'll also need a modern browser that supports html5, the interactive features rely heavily on Javascript and the canvas element.  (Safari, Firefox 6, Chrome) The reason is that the interactive code allows you to save your changes and reload them again later.  I've added an administrative back-end to the book so that we can have students do homework right in the browser.  I'd love to hear your feedback and ideas for other interactive features.

Brad

-- 
Brad Miller
Associate Professor, Computer Science
Luther College


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig




_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig