With all due respect, Karpathy is serious -- and funnily enough he implemented deep learning (convolutional neural nets) in Javascript[1]. Admittedly he did it mainly for fun + browser demos (it's on the front page of Stanford's Convolutional Neural Networks for Visual Recognition course[2], which he is an instructor for), but for learning about the concepts, it's a good enough language.
When the students understand the concepts and what they're interested in, then we can nudge them to focus on choice of languages. Even then it's a dangerous domain as there's so many options.
Deep learning and want to focus on algorithms or only previously had high level experience? Python with Theano is a good bet and can take advantage of the CPU or GPU. Even Python + numpy.
Replicating existing work in the literature and want to take advantage of the some of the existing libraries? Much of it is in Matlab.
Doing something crazy on the GPU? C for OpenCL ...
The list keeps going, but before getting to any or all of those details, the first step is understanding the concepts.
When the students understand the concepts and what they're interested in, then we can nudge them to focus on choice of languages. Even then it's a dangerous domain as there's so many options.
Deep learning and want to focus on algorithms or only previously had high level experience? Python with Theano is a good bet and can take advantage of the CPU or GPU. Even Python + numpy.
Replicating existing work in the literature and want to take advantage of the some of the existing libraries? Much of it is in Matlab.
Doing something crazy on the GPU? C for OpenCL ...
The list keeps going, but before getting to any or all of those details, the first step is understanding the concepts.
[1]: https://github.com/karpathy/convnetjs
[2]: http://cs231n.stanford.edu/