Awesome List Updates on Jan 19 - Jan 25, 2015
22 awesome lists updated this week.
🏠 Home · 🔍 Search · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor
1. Awesome Bigdata
Data Visualization
- D3Plus - A fairly robust set of reusable charts and styles for d3.js.
2. Awesome Projects Boilerplates
IDE
- Yasnippet (⭐2.6k) A template system for Emacs.
3. Awesome Computer Vision
Computer Vision
- Computer Vision: Models, Learning, and Inference - Simon J. D. Prince 2012
- Computer Vision: Theory and Application - Rick Szeliski 2010
- Computer Vision: A Modern Approach (2nd edition) - David Forsyth and Jean Ponce 2011
- Multiple View Geometry in Computer Vision - Richard Hartley and Andrew Zisserman 2004
- Computer Vision - Linda G. Shapiro 2001
- Vision Science: Photons to Phenomenology - Stephen E. Palmer 1999
- Visual Object Recognition synthesis lecture - Kristen Grauman and Bastian Leibe 2011
- Visual Object and Activity Recognition - Alexei A. Efros and Trevor Darrell (UC Berkeley)
- Computer Vision - Steve Seitz (University of Washington)
- Language and Vision - Tamara Berg (UNC Chapel Hill)
- Convolutional Neural Networks for Visual Recognition - Fei-Fei Li and Andrej Karpathy (Stanford University)
- Computer Vision - Rob Fergus (NYU)
- Computer Vision - Derek Hoiem (UIUC)
- Computer Vision: Foundations and Applications - Kalanit Grill-Spector and Fei-Fei Li (Stanford University)
- High-Level Vision: Behaviors, Neurons and Computational Models - Fei-Fei Li (Stanford University)
- The Three R's of Computer Vision - Jitendra Malik (UC Berkeley) 2013
- Applications to Machine Vision - Andrew Blake (Microsoft Research) 2008
OpenCV Programming
- Learning OpenCV: Computer Vision with the OpenCV Library - Gary Bradski and Adrian Kaehler
Machine Learning
- Pattern Recognition and Machine Learning - Christopher M. Bishop 2007
- Neural Networks for Pattern Recognition - Christopher M. Bishop 1995
- Probabilistic Graphical Models: Principles and Techniques - Daphne Koller and Nir Friedman 2009
- Pattern Classification - Peter E. Hart, David G. Stork, and Richard O. Duda 2000
- Machine Learning - Tom M. Mitchell 1997
- Learning From Data- Yaser S. Abu-Mostafa, Malik Magdon-Ismail and Hsuan-Tien Lin 2012
- Neural Networks and Deep Learning - Michael Nielsen 2014
- Introduction To Bayesian Inference - Christopher Bishop (Microsoft Research) 2009
- Support Vector Machines - Chih-Jen Lin (National Taiwan University) 2006
Computational Photography
- Image Manipulation and Computational Photography - Alexei A. Efros (UC Berkeley)
- Computational Photography - Alexei A. Efros (CMU)
- Computational Photography - Derek Hoiem (UIUC)
- Computational Photography - James Hays (Brown University)
- Digital & Computational Photography - Fredo Durand (MIT)
- Computational Camera and Photography - Ramesh Raskar (MIT Media Lab)
- Courses in Graphics - Stanford University
- Computational Photography - Rob Fergus (NYU)
- Introduction to Visual Computing - Kyros Kutulakos (University of Toronto)
- Computational Photography - Kyros Kutulakos (University of Toronto)
- Reflections on Image-Based Modeling and Rendering - Richard Szeliski (Microsoft Research) 2013
- Photographing Events over Time - William T. Freeman (MIT) 2011
- Old and New algorithm for Blind Deconvolution - Yair Weiss (The Hebrew University of Jerusalem) 2011
- A Tour of Modern "Image Processing" - Peyman Milanfar (UC Santa Cruz/Google) 2010
- Topics in image and video processing Andrew Blake (Microsoft Research) 2007
- Computational Photography - William T. Freeman (MIT) 2012
Machine Learning and Statistical Learning
- Learning from Data - Yaser S. Abu-Mostafa (Caltech)
- Statistical Learning - Trevor Hastie and Rob Tibshirani (Stanford University)
- Statistical Learning Theory and Applications - Tomaso Poggio, Lorenzo Rosasco, Carlo Ciliberto, Charlie Frogner, Georgios Evangelopoulos, Ben Deen (MIT)
- Statistical Learning - Genevera Allen (Rice University)
- Practical Machine Learning - Michael Jordan (UC Berkeley)
Optimization
- Convex Optimization I - Stephen Boyd (Stanford University)
- Convex Optimization II - Stephen Boyd (Stanford University)
- Convex Optimization - Stephen Boyd (Stanford University)
- Optimization at MIT - (MIT)
- Convex Optimization - Ryan Tibshirani (CMU)
- Optimization Algorithms in Machine Learning - Stephen J. Wright (University of Wisconsin-Madison)
- Convex Optimization - Lieven Vandenberghe (University of California, Los Angeles)
Conference papers on the web
- CVPapers - Computer vision papers on the web
- SIGGRAPH Paper on the web - Graphics papers on the web
- NIPS Proceedings - NIPS papers on the web
- Annotated Computer Vision Bibliography - Keith Price (USC)
3D Computer Vision
- 3D Computer Vision: Past, Present, and Future - Steve Seitz (University of Washington) 2011
Internet Vision
- The Distributed Camera - Noah Snavely (Cornell University) 2011
- Planet-Scale Visual Understanding - Noah Snavely (Cornell University) 2014
- A Trillion Photos - Steve Seitz (University of Washington) 2013
Learning and Vision
- Where machine vision needs help from machine learning - William T. Freeman (MIT) 2011
- Learning in Computer Vision - Simon Lucey (CMU) 2008
- Learning and Inference in Low-Level Vision - Yair Weiss (The Hebrew University of Jerusalem) 2009
Object Recognition
- Generative Models for Visual Objects and Object Recognition via Bayesian Inference - Fei-Fei Li (Stanford University)
Graphical Models
- Graphical Models for Computer Vision - Pedro Felzenszwalb (Brown University) 2012
- Graphical Models - Zoubin Ghahramani (University of Cambridge) 2009
- Machine Learning, Probability and Graphical Models - Sam Roweis (NYU) 2006
- Graphical Models and Applications - Yair Weiss (The Hebrew University of Jerusalem) 2009
Deep Learning
- A tutorial on Deep Learning - Geoffrey E. Hinton (University of Toronto)
- Deep Learning - Ruslan Salakhutdinov (University of Toronto)
- Scaling up Deep Learning - Yoshua Bengio (University of Montreal)
- ImageNet Classification with Deep Convolutional Neural Networks - Alex Krizhevsky (University of Toronto)
- The Unreasonable Effectivness Of Deep Learning Yann LeCun (NYU/Facebook Research) 2014
General Purpose Computer Vision Library
Feature Detection and Extraction
Multiple-view Computer Vision
- OpenGV - geometric computer vision algorithms
Low-level Vision / Optical Flow
Low-level Vision / Image Completion
Low-level Vision / Alpha Matting
Low-level Vision / Edge-preserving image processing
Contour Detection and Image Segmentation / Edge-preserving image processing
Camera calibration / Edge-preserving image processing
Object Detection / Localization & Mapping:
Visual Tracking / Nearest Neighbor Field Estimation
Songs / Image Deblurring
4. Awesome Material
Animation
- JavaScript
- Waves (⭐3.5k) — Click effect inspired by Google's Material Design.
- material-design-hamburger (⭐93) — Android's Material Design hamburger animation built in CSS.
- Material-Preloader (⭐375) — A jQuery plugin that recreates the Material Design pre-loader (as seen on inbox).
- Google-material-design-ripple-effect (⭐13) — jQuery plugin recreates ripple and focus effect.
Other
- material_design_zh (⭐3.1k) — Material Design Collaborative Chinese translation
5. Awesome Coldfusion
Documentation
- CFScript Reference (⭐100) - CFScript Documentation by Adam Cameron
6. Awesome Erlang
Websites
- Planet Erlang - Planet site/RSS feed of blog posts covering topics across the Erlang ecosystem.
7. Awesome Nodejs
Packages / Weird
- cat-names (⭐270) - Get popular cat names.
- dog-names (⭐124) - Get popular dog names.
8. Awesome Lua
Resources / Hardware and Embedded Systems
- eLua - Lua, extended with optimizations and specific features for efficient and portable embedded software development.
9. Awesome Android Ui
Layout
Name: Slidr (⭐2.7k)
License: Apache License V2
Demo:
Progress
Name: Android-RoundCornerProgressBar (⭐2.2k)
License: Apache License V2
Demo:
Menu
Name: Side-Menu.Android (⭐5.2k)
License: Apache License V2
Demo:
Name: Context-Menu.Android (⭐3.8k)
License: Apache License V2
Demo:
10. Awesome Deep Learning
Table of Contents / Videos and Lectures
- Unsupervised Deep Learning - Stanford by Andrew Ng in Stanford (2011)
Table of Contents / Papers
Table of Contents / Tutorials
Researchers / Websites
Researchers / Datasets
Researchers / Frameworks
Researchers / Miscellaneous
11. Awesome Laravel
Videos / Third-party Service Integration
12. Awesome Dojo
Bootstraps and boilerplates
- dojo.js (⭐15) - Minimalistic boilerplate to start your dojo with Jasmine and Gulp.
13. Awesome Dotnet
Machine Learning and Data Science
- Accord.NET - Machine learning framework combined with audio and image processing libraries (computer vision, computer audition, signal processing and statistics).
- AForge.NET - Framework for developers and researchers in the fields of Computer Vision and Artificial Intelligence (image processing, neural networks, genetic algorithms, machine learning, robotics).
14. Awesome Zsh Plugins
dotzsh / superconsole - Windows-only
- Clone new plugins into
.zsh.local/modules
15. Guides
Programming Languages / Go
16. Awesome Ripple
Official
Books / Docs / Videos
Gateways / Bridges
- ShapeShift: Buy Coins Instantly, No Account Needed
Code
- rippled (⭐4.2k): Ripple peer-to-peer network daemon
- ripple-python (⭐49): Python Lib
- rubblelabs/ripple (⭐89): Go packages to interact with the Ripple protocol
- ripple-client (⭐1.3k): Web client
- ripple-client-desktop (⭐118): Desktop client
- ripplecharts (⭐33): RippleCharts.com Charting Website
- Ripple Go: Ripple Go is a set of Go packages and a ripple client.
- Snow: Digital currency exchange engine written in node.js.
- gatewayd: Ripple gateway software automation framework
- ripple-blobvault (⭐36): Server for storing persistent data for Ripple clients
- ripple-authd: Ripple peer-assisted key derivation server
- rippled-historical-database (⭐91): SQL database as a canonical source of historical data in Ripple
- federation-python (⭐4): Python module for a simple federation endpoint.
- rubblelabs/tx (⭐18): Tool for executing transactions on the Ripple network
Hosted Tools
- Ripple Trade: Official Ripple client developed by Ripple Labs
Codius
17. Awesome Canvas
Resources / Websites and Tutorials
- Draw Particles using HTML5 Canvas - Shortcut tutorial shows how create simple and colorful particles.
18. Awesome Ruby
Code Analysis and Metrics
- Coverband (⭐2.5k) - Rack middleware to help measure production code coverage.
DevOps Tools
- Centurion (⭐1.7k) - A mass deployment tool for Docker fleets.
Money
- Monetize (⭐424) - A library for converting various objects into Money objects.
ORM/ODM Extensions
- Import
- ActiveRecord Import (⭐4k) - a library for bulk inserting data using ActiveRecord.
- bulk_insert (⭐818) - A little ActiveRecord extension for helping to insert lots of rows in a single insert statement.
- data_miner (⭐301) - Download, pull out of a ZIP/TAR/GZ/BZ2 archive, parse, correct, and import XLS, ODS, XML, CSV, HTML, etc. into your ActiveRecord models.
- ferry (⭐244) - A ruby gem for easy data transfer.
19. Awesome Elixir
Markdown
- Markdown (⭐87) - Implemented entirely as a NIF binding to the Hoedown library.
Websites
- Benjamin Tan - Learnings & Writings - A blog consisting of mostly Elixir posts.
20. Awesome Perl
Class Builder / DSP
- Mo - Micro Objects. Mo is less.
- Moo - Class builder supporting meta programming.
Database / DSP
- DBIx::Sunny - Useful DBI Wrapper
Date & Time / NoSQL Databases
Exception Handling / NoSQL Databases
- autodie - Replace functions with ones that succeed or die with lexical scope
- Exception::Class - A module that allows you to declare real exception classes in Perl
- Throwable - a role for classes that can be thrown
- Try::Tiny - minimal try/catch with proper preservation of $@
File Manipulation / NoSQL Databases
- File::Util - Easy, versatile, portable file handling.
Images / NoSQL Databases
Network / NoSQL Databases
- DOCSIS::ConfigFile - Decodes and encodes DOCSIS config files
- NetAddr::MAC - Handle MAC addresses
Processes and Threads / NoSQL Databases
- Parallel::ForkManager - A simple parallel processing fork manager
- Parallel::Prefork - A simple prefork server framework
- Proclet - Minimalistic supervisor, a Perl port of foreman (⭐6k)
Profiling / NoSQL Databases
- Devel::NYTProf - Code profiler.
Protocol / NoSQL Databases
- LWP::UserAgent - Popular HTTP(S) Client
REST Frameworks / NoSQL Databases
- Catalyst::Action::REST - Automated REST Method Dispatching
- Dancer2::Plugin::REST - A plugin for writing RESTful apps with Dancer2
- Raisin - a REST API micro framework for Perl
- Squatting - A Camping-inspired Web Microframework for Perl
Template Engines / NoSQL Databases
- Template::Alloy - TT2/3, HT, HTE, Tmpl, and Velocity Engine
- Template::Toolkit - Very Popular Template Processing System
- Text::Template - Templates with embedded perl
- Text::Xslate - Faster template engine with XS. Supports multiple syntaxes.
- Template::Magic - Magic merger of runtime values with templates.
Tools / Coverage
- Data::Printer - Colored pretty-print of Perl data structures and objects.
- Reply - Read-eval-print-loop(REPL) command-line tool.
- Toolbox::Simple - Simplfy some common tasks in Perl.
- Script::Toolbox - Framework for the daily business scripts.
- Devel::Kit- Handy toolbox of things to ease development/debugging.
- Config::Tiny - Read/Write .ini style files with as little code as possible
Web Frameworks / Coverage
- Catalyst - Overflowing with features. Very popular.
- Gantry - Web application framework for mod_perl, cgi, etc.
- Kossy - A Web framework with simple interface.
- Mojolicious - An all in one framework.
- Poet - a modern Perl web framework for Mason developers
Web Frameworks / Middlewares
- Gazelle - Preforked Plack Handler for performance freaks
- Plack - PSGI server implementation and utilities for Web applications.
- Server::Starter - Process manager with the "graceful restart" feature.
- Starlet - High-performance PSGI Server
- Starman - High-performance preforking PSGI/Plack web server
- Twiggy - Event-driven PSGI application server
Web Frameworks-Like / Middlewares
- Embperl - Building dynamic Websites with Perl (sort of like Perl crossed with PHP)
- Mason - Powerful, high-performance templating for the web and beyond
Reverse Engineering / Middlewares
21. Awesome Gametalks
GDC Talks / Table of Contents
- [2014] Narrative Legos: Ken Levine (Irrational Games)
- [2014] Preserving a Sense of Discovery in the Age of Spoilers: James Crawford (Twinbeard Studios)
- [2014] Animation Bootcamp: An Indie Approach to Procedural Animation: David Rosen (Wolfire Games)
- [2013] Designing Journey: Jenova Chen (thatgamecompany)
- [2013] AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe: Daniel Brewer, Alex Cheng, Richard Dumas, Aleissia Laidacker (Panel)
- [2012] Attention, Not Immersion: Making Your Games Better with Psychology and Playtesting, the Uncharted Way: Richard Lemarchand (Naughty Dog)
- [2012] Creating a Sequel to a Game That Doesn't Need One: Chet Faliszek, Erik Wolpaw (Valve)
- [2011] Design in Detail: Tuning the Muzzle Velocity of the Plasma Rifle Bolt on Legendary Difficulty Across the HALO Franchise: Jaime Griesemer (Bungie)
- [2011] Life and Death and Middle Pair: Go, Poker and the Sublime: Frank Lantz (Zynga)
- [2009] Helping Your Players Feel Smart: Puzzles as User Interface: Randy Smith (Tiger Style)
Other Talks / TED Talks
- [2014, Indievelopment] Attempting Deep Work, Surviving Long Projects: Jonathan Blow (Number None, Inc.)
- [2011, Berkeley] Programming Aesthetics Learned From Making Independent Games: Jonathan Blow (Number None, Inc.)
22. Awesome Courses
Courses / Systems
- CS 107 Computer Organization & Systems Stanford University
- CS107 is the third course in Stanford's introductory programming sequence. The course will work from the C programming language down to the microprocessor to de-mystify the machine. With a complete understanding of how computer systems execute programs and manipulate data, you will become a more effective programmer, especially in dealing with issues of debugging, performance, portability, and robustness.
- Lecture Videos
- Assignments
- CS 140 Operating Systems Stanford University
- This class introduces the basic facilities provided in modern operating systems. The course divides into three major sections. The first part of the course discusses concurrency. The second part of the course addresses the problem of memory management. The third major part of the course concerns file systems.
- Lecture Notes
- Assignments
- CS 241 Systems Programming (Spring 2016) Univ of Illinois, Urbana-Champaign
- System programming refers to writing code that tasks advantage of operating system support for programmers. This course is designed to introduce you to system programming. By the end of this course, you should be proficient at writing programs that take full advantage of operating system support. To be concrete, we need to fix an operating system and we need to choose a programming language for writing programs. We chose the C language running on a Linux/UNIX operating system (which implements the POSIX standard interface between the programmer and the OS).
- Assignments
- Labs
- Github Page
- Crowd Sourced Book (⭐5.3k)
- CS 452 Real-Time Programming University of Waterloo
- Write a real-time OS microkernel in C, and application code to operate a model train set in response to real-time sensor information. The communication with the train set runs at 2400 baud so it takes about 61 milliseconds to ask all of the sensors for data about the train's possible location. This makes it particularly challenging because a train can move about 3 centimeters in that time. One of the most challenging and time-consuming courses at the University of Waterloo.
- Assignments
- Lecture notes
- CS 4414 Operating Systems University of Virginia
- A course (that) covers topics including: Analysis process communication and synchronization; resource management; virtual memory management algorithms; file systems; and networking and distributed systems. The primary goal of this course is to improve your ability to build scalable, robust and secure computing systems. It focuses on doing that by understanding what underlies the core abstractions of modern computer systems.
- Syllabus
- Lectures
- CS 5412 Cloud Computing Cornell University
- Taught by one of the stalwarts of this field, Prof Ken Birman, this course has a fantastic set of slides that one can go through. The Prof's book is also a gem and recommended as a must read in Google's tutorial on Distributed System Design
- Slides
- CSCE 3613 Operating Systems University of Arkansas (Fayetteville) - An introduction to operating systems including topics in system structures, process management, storage management, files, distributed systems, and case studies.
- CSCI 360 Computer Architecture 3 CUNY Hunter College
- A course that covers cache design, buses, memory hierarchies, processor-peripheral interfaces, and multiprocessors, including GPUs.
- CSCI 493.75 Parallel Computing CUNY Hunter College
- The course is an introduction to parallel algorithms and parallel programming in C and C++, using the Message Passing Interface (MPI) and the OpenMP application programming interface. It also includes a brief introduction to parallel architectures and interconnection networks. It is both theoretical and practical, including material on design methodology, performance analysis, and mathematical concepts, as well as details on programming using MPI and OpenMP.
- PODC Principles of Distributed Computing ETH-Zurich
- Explore essential algorithmic ideas and lower bound techniques, basically the "pearls" of distributed computing in an easy-to-read set of lecture notes, combined with complete exercises and solutions.
- Book
- Assignments and Solutions
- SPAC Parallelism and Concurrency Univ of Washington
- Technically not a course nevertheless an awesome collection of materials used by Prof Dan Grossman to teach parallelism and concurrency concepts to sophomores at UWash
- 6.824 Distributed Systems MIT
- MIT's graduate-level DS course with a focus on fault tolerance, replication, and consistency, all taught via awesome lab assignments in Golang!
- Assignments - Just do
git clone git://g.csail.mit.edu/6.824-golabs-2014 6.824
- Readings
- 15-440 Distributed Systems Carnegie-Mellon University
- Introduction to distributed systems with a focus on teaching concepts via projects implemented in the Go programming language.
- Assignments
- 15-749 Engineering Distributed Systems Carnegie-Mellon University
- A project focused course on Distributed Systems with an awesome list of readings
- Readings
Courses / Programming Languages / Compilers
- CIS 194 Introduction to Haskell Penn Engineering
- Explore the joys of functional programming, using Haskell as a vehicle. The aim of the course will be to allow you to use Haskell to easily and conveniently write practical programs.
- Previous semester also available, with more exercises
- COS 326 Functional Programming Princeton University
- Covers functional programming concepts like closures, tail-call recursion & parallelism using the OCaml programming language
- Lectures
- Assignments
- CS 164 Hack your language! UC Berkeley
- Introduction to programming languages by designing and implementing domain-specific languages.
- Lecture Videos
- Code for Assignments
- CS 173 Programming Languages Brown University
- Course by Prof. Krishnamurthi (author of HtDP) and numerous other awesome books on programming languages. Uses a custom designed Pyret programming language to teach the concepts. There was an online class hosted in 2012, which includes all lecture videos for you to enjoy.
- Videos
- Assignments
- CS 240h Functional Systems in Haskell Stanford University
- Building software systems in Haskell
- Lecture Slides
- 3 Assignments: Lab1, Lab2, Lab3
- CS 421 Programming Languages and Compilers Univ of Illinois, Urbana-Champaign Course that uses OCaml to teach functional programming and programming language design.
- CS 4610 Programming Languages and Compilers University of Virginia
- Course that uses OCaml to teach functional programming and programming language design. Each assignment is a part of an interpreter and compiler for an object-oriented language similar to Java, and you are required to use a different language for each assignment (i.e., choose 4 from Python, JS, OCaml, Haskell, Ruby).
- Lecture Notes
- Assignments
- CS 5470 Compilers University of Utah
- If you're a fan of Prof Matt's writing on his fantastic blog you ought to give this a shot. The course covers the design and implementation of compilers, and it explores related topics such as interpreters, virtual machines and runtime systems. Aside from the Prof's witty take on cheating the page has tons of interesting links on programming languages, parsing and compilers.
- Lecture Notes
- Projects
Courses / Algorithms
- CS 2150 (⭐102) Program & Data Representation University of Virginia
- This data structures course introduces C++, linked-lists, stacks, queues, trees, numerical representation, hash tables, priority queues, heaps, huffman coding, graphs, and x86 assembly.
- Lectures
- Assignments
- CSCI 135 Software Design and Analysis I
CUNY Hunter College
- It is currently an intensive introduction to program development and problem solving. Its emphasis is on the process of designing, implementing, and evaluating small-scale programs. It is not supposed to be a C++ programming course, although much of the course is spent on the details of C++. C++ is an extremely large and complex programming language with many features that interact in unexpected ways. One does not need to know even half of the language to use it well.
- Lectures and Assignments
- CSCI 235 Software Design and Analysis II CUNY Hunter College
- Introduces algorithms for a few common problems such as sorting. Practically speaking, it furthers the students' programming skills with topics such as recursion, pointers, and exception handling, and provides a chance to improve software engineering skills and to give the students practical experience for more productive programming.
- Lectures and Assignments
- CSCI 335 Software Design and Analysis III
CUNY Hunter College
- This includes the introduction of hashes, heaps, various forms of trees, and graphs. It also revisits recursion and the sorting problem from a higher perspective than was presented in the prequels. On top of this, it is intended to introduce methods of algorithmic analysis.
- Lectures and Assignments
- ECS 122A Algorithm Design and Analysis UC Davis
- Taught by Dan Gusfield in 2010, this course is an undergraduate introduction to algorithm design and analysis. It features traditional topics, such as Big Oh notation, as well as an importance on implementing specific algorithms. Also featured are sorting (in linear time), graph algorithms, depth-first search, string matching, dynamic programming, NP-completeness, approximation, and randomization.
- Syllabus
- Lecture Videos
- Assignments
- ECS 222A Graduate Level Algorithm Design and Analysis UC Davis
- This is the graduate level complement to the ECS 122A undergraduate algorithms course by Dan Gusfield in 2011. It assumes an undergrad course has already been taken in algorithms, and, while going over some undergraduate algorithms topics, focuses more on increasingly complex and advanced algorithms.
- Lecture Videos
- Syllabus
- Assignments
Courses / CS Theory
- CIS 500 Software Foundations University of Pennsylvania
- An introduction to formal verification of software using the Coq proof assistant. Topics include basic concepts of logic, computer-assisted theorem proving, functional programming, operational semantics, Hoare logic, and static type systems.
- Lectures and Assignments
- Textbook
- CS 103 Mathematical Foundations of Computing Stanford University
- CS103 is a first course in discrete math, computability theory, and complexity theory. In this course, we'll probe the limits of computer power, explore why some problems are harder to solve than others, and see how to reason with mathematical certainty.
- Links to all lectures notes and assignments are directly on the course page
- CS 173 Discrete Structures Univ of Illinois Urbana-Champaign
- This course is an introduction to the theoretical side of computer science. In it, you will learn how to construct proofs, read and write literate formal mathematics, get a quick introduction to key theory topics and become familiar with a range of standard mathematics concepts commonly used in computer science.
- Textbook Written by the professor. Includes Instructor's Guide.
- Assignments
- Exams
- CS 276 Foundations of Cryptography UC Berkeley
- This course discusses the complexity-theory foundations of modern cryptography, and looks at recent results in the field such as Fully Homomorphic Encryption, Indistinguishability Obfuscation, MPC and so on.
- CS 374 Algorithms & Models of Computation (Fall 2014) University of Illinois Urbana-Champaign
- CS 498 section 374 (unofficially "CS 374") covers fundamental tools and techniques from theoretical computer science, including design and analysis of algorithms, formal languages and automata, computability, and complexity. Specific topics include regular and context-free languages, finite-state automata, recursive algorithms (including divide and conquer, backtracking, dynamic programming, and greedy algorithms), fundamental graph algorithms (including depth- and breadth-first search, topological sorting, minimum spanning trees, and shortest paths), undecidability, and NP-completeness. The course also has a strong focus on clear technical communication.
- Assignments/Exams
- Lecture Notes/Labs
- Lecture videos
- CSCE 3193 Programming Paradigms University of Arkansas (Fayetteville)
- Programming in different paradigms with emphasis on object oriented programming, network programming and functional programming. Survey of programming languages, event driven programming, concurrency, software validation.
- Syllabus
- Notes
- Assignments
- Practice Exams
Courses / Introduction to CS
- CS 10 The Beauty and Joy of Computing UC Berkeley
- CS10 is UCB's introductory computer science class, taught using the beginners' drag-and-drop language. Students learn about history, social implications, great principles, and future of computing. They also learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests.
- Snap*!* (based on Scratch by MIT).
- Curriculum
- CS 101 Computer Science 101 Stanford University
- CS101 teaches the essential ideas of Computer Science for a zero-prior-experience audience. Participants play and experiment with short bits of "computer code" to bring to life to the power and limitations of computers.
- Lectures videos will available for free after registration.
- CS 106A Programming Methodology Stanford University
- This course is the largest of the introductory programming courses and is one of the largest courses at Stanford. Topics focus on the introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Programming Methodology teaches the widely-used Java programming language along with good software engineering principles.
- Lecture Videos
- Assignments
- All materials in a zip file
- CS 106B Programming Abstractions Stanford University
- This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java.
- Lectures
- Assignments
- All materials in a zip file
- CSCE 2004 Programming Foundations I University of Arkansas (Fayetteville)
- Introductory course for students majoring in computer science or computer engineering. Software development process: problem specification, program design, implementation, testing and documentation. Programming topics: data representation, conditional and iterative statements, functions, arrays, strings, file I/O, and classes. Using C++ in a UNIX environment.
- Syllabus
- Notes
- Assignments
- Practice Exams
- 6.001 Structure and Interpretation of Computer Programs MIT
- Teaches big-picture computing concepts using the Scheme programming language. Students will implement programs in a variety of different programming paradigms (functional, object-oriented, logical). Heavy emphasis on function composition, code-as-data, control abstraction with continuations, and syntactic abstraction through macros. An excellent course if you are looking to build a mental framework on which to hang your programming knowledge.
- Lectures
- Textbook (epub (⭐4.1k), pdf (⭐4.1k))
- IDE
Courses / Computer Graphics
- CIS 581 Computer Vision and Computational Photography University of Pennsylvania
- An introductory course in computer vision and computational photography focusing on four topics: image features, image morphing, shape matching, and image search.
- Lectures
- Assignments
Courses / Misc
- CS 75 Introduction to Game Development Tufts University
- The course taught by Ming Y. Chow teaches game development initially in PyGame through Python, before moving on to addressing all facets of game development. Topics addressed include game physics, sprites, animation, game development methodology, sound, testing, MMORPGs and online games, and addressing mobile development in Android, HTML5, and iOS. Most to all of the development is focused on PyGame for learning principles
- Text Lectures
- Assignments
- Labs
- CS 100 (⭐456) Open Source Software Construction UC Riverside
- This is a course on how to be a hacker. Your first four homework assignments walk you through the process of building your own unix shell. You'll be developing it as an open source project, and you will collaborate with each other at various points.
- Github Page (⭐456)
- Assignments (⭐456)
- CS 223A Introduction to Robotics Stanford University
- The purpose of this course is to introduce you to basics of modeling, design, planning, and control of robot systems. In essence, the material treated in this course is a brief survey of relevant results from geometry, kinematics, statics, dynamics, and control.
- CS 411 Software Architecture Design Bilkent University
- This course teaches the basic concepts, methods and techniques for designing software architectures. The topics include: rationale for software architecture design, modeling software architecture design, architectural styles/patterns, architectural requirements analysis, comparison and evaluation of architecture design methods, synthesis-based software architecture design, software product-line architectures, domain modeling, domain engineering and application engineering, software architecture implementation, evaluating software architecture designs.
- CSE 154 Web Programming University of Washington
- This course is an introduction to programming for the World Wide Web. Covers use of HTML, CSS, PHP, JavaScript, AJAX, and SQL.
- Lectures
- Assignments
- ESM 296-4F GIS & Spatial Analysis UC Santa Barbara
- Taught by James Frew, Ben Best, and Lisa Wedding
- Focuses on specific computational languages (e.g., Python, R, shell) and tools (e.g., GDAL/OGR, InVEST, MGET, ModelBuilder) applied to the spatial analysis of environmental problems
- GitHub (includes lecture materials and labs)
- ICS 314 Software Engineering University of Hawaii
- Taught by Philip Johnson
- Introduction to software engineering using the "Athletic Software Engineering" pedagogy
- Readings
- Experiences
- Assessments
- IGME 582 Humanitarian Free & Open Source Software Development Rochester Institute of Technology
- This course provides students with exposure to the design, creation and production of Open Source Software projects. Students will be introduced to the historic intersections of technology and intellectual property rights and will become familiar with Open Source development processes, tools and practices.
- I485 / H400 Biologically Inspired Computation Indiana University
- Course taught by Luis Rocha about the multi-disciplinary field algorithms inspired by naturally occurring phenomenon. This course provides introduces the following areas: L-systems, Cellular Automata, Emergence, Genetic Algorithms, Swarm Intelligence and Artificial Immune Systems. It's aim is to cover the fundamentals and enable readers to build up a proficiency in applying various algorithms to real-world problems.
- Lectures
- Assignments
- Open Sourced Elective: Database and Rails Intro to Ruby on Rails University of Texas
- An introductory course in Ruby on Rails open sourced by University of Texas' CS Adjunct Professor, Richard Schneeman.
- Lectures
- Assignments
- Videos
- Prev: Jan 26 - Feb 01, 2015
- Next: Jan 12 - Jan 18, 2015