5:25
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/72hal4Cp_2I/0.jpg)
Explanation and example of Simple Recursion
Explanation and example of Simple Recursion
This short video walks you through a simple example of a recursive function in Python.
24:32
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/qE9Iw-dlBpo/0.jpg)
Reusing Thunks for Recursive Data Structures in Lazy Functional Programs - Yasunao TAKANO
Reusing Thunks for Recursive Data Structures in Lazy Functional Programs - Yasunao TAKANO
Lazy evaluation helps programmers write clear programs. However, it has significant run-time overheads for building many as-yet unevaluated expressions, or thunks. Because thunk allocation is a time- and space-consuming task, it is important to reduce the number of thunks in order to improve the performance of a lazy functional program. We propose static analysis algorithms that achieve the thunk reuse technique. Thunk generation is suppressed by reusing and updating an already allocated thunk at the tail of a list, on the condition that the thunk is singly referred, ie, pointed to only from the tail field of a cons cell. This method guarantees that reused thunks definitely satisfy this singly referred condition on the basis of a static analysis with program transformations. We are implementing our method in the Glasgow Haskell Compiler by modifying the code generation and the runtime system. In this workshop, we will talk about the current status of our implementation and the results of some benchmarks. From the Haskell Implementors Workshop 2011: www.haskell.org
0:54
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/MIcNHDsx4kA/0.jpg)
i2pi JD-4200E
i2pi JD-4200E
How to count down from 5000 in under one minute: A Tale of Tail Recursion
51:46
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/onKR7ICXacQ/0.jpg)
Lecture 20 | Programming Paradigms (Stanford)
Lecture 20 | Programming Paradigms (Stanford)
Lecture by Professor Jerry Cain for Programming Paradigms (CS107) in the Stanford University Computer Science department. Prof. Cain continues lecturing on the functional paradigm and the Scheme programming language by using the flatten function as an example. Programming Paradigms (CS107) introduces several programming languages, including C, Assembly, C++, Concurrent Programming, Scheme, and Python. The class aims to teach students how to write code for each of these individual languages and to understand the programming paradigms behind these languages. Complete Playlist for the Course: www.youtube.com CS 107 Course Website: www.CS107.stanford.edu Stanford University: www.stanford.edu Stanford University Channel on YouTube: www.youtube.com
0:39
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/xKZAhztgAJA/0.jpg)
Multithreaded Sorting
Multithreaded Sorting
One of the advantages to QuickSort and Mergesort is that they can be multithreaded nicely. QuickSort is tail recursive, meaning each step does some work, then passes it on to the next step, and MergeSort is head recursive, where it has the next step do the work, then adds it's work to it. Both are very efficient sorting algorithms with great multithreading capabilities. QuickSort does suffer if it makes a poor pivot choice (I use median of first, last, and middle value). Where MergeSort has to deal with array copying. Both visualizations are very heavially multithreaded, more so than would generally be practical in most impelmentations as the threads are not running at full speed. The visualization has 10240 point split among up to 512 threads.
6:02
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/LxVG58m8Xew/0.jpg)
Team Updates - Day 2, Update #2
Team Updates - Day 2, Update #2
In our second team update, we catch up with a bunch of programming teams to bring you the best so far of GameJam 2012. They are: JUNGLE BOYZ RECURSION TEAM WHACKING DAY BRAIN FINGERS CANYON JEFF CHASING TAIL Shot by Ange Graf and David Molloy. Produced, Directed & Edited by Ange Graf. Music: 'Pure Progression' by Digimode. [Licenced under Creative Commons for commercial use.]
1:09
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/B0gpK0zxs5s/0.jpg)
3D Dragon Curve Animation
3D Dragon Curve Animation
Recursive dragon curve. The classic curve is 2 dimension, but I have added a third dimension by increasing elevation based on the level of recursion. Created using the POVRAY program.
2:52
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/FD9ncQ543Sk/0.jpg)
Slot Racer Game
Slot Racer Game
I wrote this slot racer game for a coursework assignment during my MSc in Computer Graphics Programming at the University of Hull in 2008. It's written in C++ (some bits in C), uses OpenGL and the OpenGL Shading Language (GLSL). Low frequency fBm (perlin noise basis) was used to displace vertices of a regular grid to create the terrain mesh, and the higher frequencies of the same fBm was used to generate a normal map for the terrain. My particle system was used for fire, smoke, tail-light trails and a rather unconvincing water splash effect. Recursive render-to-texture can be seen on the big screen, implemented using framebuffer objects with a fallback to glCopyTexSubImage2D when FBOs are not supported. The scenery is completed with billboarded trees and a multi-layer skydome with procedural fBm clouds. The bulk of the graphics code for this coursework was written in a reusable manner in the form of a minimal 3D engine called "henge". You can download the henge source code ( svn://nuclear.dnsalias.com/pub/henge ), and use it freely under the terms of the GNU LGPL v3 (or later).
48:05
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/UhBjMws1H10/0.jpg)
Advanced Templates for Ext JS
Advanced Templates for Ext JS
In this session you'll learn how to go beyond basic templating and harness the power of XTemplate to create complex, data-bound HTML. We'll show you how to use XTemplate in ways you didn't think were possible. Among other topics, we'll look at Javascript member functions, recursive templates, subtemplates, and layouts for lists. Presented by James Brantly.
8:20
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/7RfihcLJLeo/0.jpg)
sudo rm -rf / in OS X
sudo rm -rf / in OS X
This is what happens when you invoke sudo rm -rf / in Terminal.app as Mac OS X is actively running. Some unusual behavior occurs as the OS swallows its own tail which can be seen toward the end of the video.
52:38
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/uL2D3qzHtqY/0.jpg)
A JVM Does That?
A JVM Does That?
Google Tech Talk (more info below) March 29, 2011 Presented by Cliff Click, Azul Systems. ABSTRACT Just what the heck is a JVM *supposed* to do? JVMs already provide a host of services. The 'J' part definitely slants the service selection and the 'V' part means that underneath the illusion there's a lot of really cruddy stuff. The success of these illusions has led to the real popularity of JVMs. In particular, JVMs are probably the most popular way to distribute ready-to-use GC technology to the masses, and the 2nd most popular way to distribute ready-to-use compilation technology (just behind "gcc" I'm guessing). Just what are these illusions? The illusion that bytecodes are fast and have a reasonable cost model : (machine code generation, profiling, JIT'ing). The illusion that you can quickly change the program at any time (dynamic class loading, deoptimization, re-JIT'ing). The illusion of infinite memory (Garbage Collection). The illusion of a consistent threading and memory model (the JMM, volatiles, locks). The illusion of quick time access (ie Intel's "rdtsc" is mostly useless for time). The illusion that these other illusions all work on all sorts of machines from cell phones to 1000-cpu mainframes (it's kinda sorta mostly true). But these are not enough! The People cry out for more illusions! The illusion of an Infinite Stack (tail recursion), the illusion that running-code-is-data (closures), the illusion that Integers are as cheap as 'ints' (autoboxing <b>...</b>
63:02
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/DCub3iqteuI/0.jpg)
Lecture 6B | MIT 6.001 Structure and Interpretation, 1986
Lecture 6B | MIT 6.001 Structure and Interpretation, 1986
Streams, Part 2 Despite the copyright notice on the screen, this course is now offered under a Creative Commons license: BY-NC-SA. Details at ocw.mit.edu Subtitles for this course are provided through the generous assistance of Henry Baker, Hoofar Pourzand, Heather Wood, Aleksejs Truhans, Steven Edwards, George Menhorn, and Mahendra Kumar.
70:43
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/SLcZXbyGC3E/0.jpg)
Lecture 9B | MIT 6.001 Structure and Interpretation, 1986
Lecture 9B | MIT 6.001 Structure and Interpretation, 1986
Explicit-control Evaluator Despite the copyright notice on the screen, this course is now offered under a Creative Commons license: BY-NC-SA. Details at ocw.mit.edu Subtitles for this course are provided through the generous assistance of Henry Baker, Hoofar Pourzand, Heather Wood, Aleksejs Truhans, Steven Edwards, George Menhorn, and Mahendra Kumar.
80:33
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/vK_q-C-kXhs/0.jpg)
Lec 4 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005
Lec 4 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005
Lecture 04: Quicksort, Randomized Algorithms View the complete course at: ocw.mit.edu License: Creative Commons BY-NC-SA More information at ocw.mit.edu More courses at ocw.mit.edu
66:57
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/a2Qt9uxhNSM/0.jpg)
Lecture 6A | MIT 6.001 Structure and Interpretation, 1986
Lecture 6A | MIT 6.001 Structure and Interpretation, 1986
Streams, Part 1 Despite the copyright notice on the screen, this course is now offered under a Creative Commons license: BY-NC-SA. Details at ocw.mit.edu Subtitles for this course are provided through the generous assistance of Henry Baker, Hoofar Pourzand, Heather Wood, Aleksejs Truhans, Steven Edwards, George Menhorn, and Mahendra Kumar.
51:53
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/QgwSUtYSUqA/0.jpg)
Crockford on JavaScript - Scene 6: Loopage
Crockford on JavaScript - Scene 6: Loopage
Software development is hampered by a specific set of design mistakes that were made in the first programming languages and repeated in everything that has been done since. And, somewhat miraculously, JavaScript is going to make it right, radically transforming the way we write applications. Again. In the Loop of History, it has all happened before, but it has never happened like this. This is why you should care about the emergence of server-side JavaScript and the excitement around projects like Node.js -- not because they're at the sharp end of a trend, but because they're paving the road toward the next big revolution in software.
57:19
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/UTEqr0IlFKY/0.jpg)
Crockford on JavaScript - Level 7: ECMAScript 5: The New Parts
Crockford on JavaScript - Level 7: ECMAScript 5: The New Parts
In Level 7 of the Crockford on JavaScript series, Yahoo! JavaScript architect Douglas Crockford outlines the changes made to the language in the 5th edition of the ECMAScript standard.
63:47
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/hQVTIJBZook/0.jpg)
JavaScript: The Good Parts
JavaScript: The Good Parts
Google Tech Talks Web Exponents presented by Doug Crockford February 27, 2009 blog post: google-code-updates.blogspot.com JavaScript is a language with more than its share of bad parts. It went from non-existence to global adoption in an alarmingly short period of time. It never had an interval in the lab when it could be tried out and polished. JavaScript has some extraordinarily good parts. In JavaScript there is a beautiful, highly expressive language that is buried under a steaming pile of good intentions and blunders. The best nature of JavaScript was so effectively hidden that for many years the prevailing opinion of JavaScript was that it was an unsightly, incompetent abomination. This session will expose the goodness in JavaScript, an outstanding dynamic programming language. Within the language is an elegant subset that is vastly superior to the language as a whole, being more reliable, readable and maintainable. Speaker: Douglas Crockford Douglas Crockford is a product of our public education system. A registered voter, he owns his own car. He has developed office automation systems. He did research in games and music at Atari. He was Director of Technology at Lucasfilm. He was Director of New Media at Paramount. He was the founder and CEO of Electric Communities/Communities.com. He was founder and CTO of State Software, where he discovered JSON. He is interested in Blissymbolics, a graphical, symbolic language. He is developing a secure programming language. He <b>...</b>
6:55
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/T3PlS52kuIM/0.jpg)
The Guild - S4 Ep 6: Weird Respawn
The Guild - S4 Ep 6: Weird Respawn
Buy Season 4 on DVD: amzn.to -- Season 5 coming Summer 2011! -- Zaboo struggles to deal with his mother's new attitude; Codex juggles work and gaming. BUY GUILD STUFF: watchtheguild.com English: Daniela Figueiredo, reviewed by Krystian Aparta. Italian: Francesco Spreafico Polish: Krystian Aparta Portuguese: Daniela Figueiredo CONNECT WITH THE GUILD: twitter.com facebook.com watchtheguild.com Official Fan Podcast http
102:09
![](http://web.archive.org./web/20120425074816im_/http://i.ytimg.com/vi/JxAXlJEmNMg/0.jpg)
Crockford on JavaScript - Volume 1: The Early Years
Crockford on JavaScript - Volume 1: The Early Years
Douglas Crockford puts the JavaScript programming language in its proper historical context, tracing the language's structure and conventions (and some of its quirks) back to their roots in the early decades of computer science.