While you may not yet be able to communicate with computers using only the powers of your frontal cortex, that is absolutely no excuse to sit on your kiester and not make stuff. Today, we have piles of tools at our disposal that will allow us to create, from scratch, just about anything that our imagination and credit limits are capable of. In this section we explore the skills and tools that will help us build better technologies ranging from websites and apps to entire in-home factories.
Educational Resources
Introduction to Computer Science (Harvard) – iTunes
Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, encapsulation, data structures, databases, memory management, software development, virtualization, and websites. Languages include C, PHP, and JavaScript plus SQL, CSS, and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. Designed for majors and non-majors alike, with or without prior programming experience.
Introduction to Algorithms (MIT) – iTunes – MIT OCW
This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing. The textbook for this course is: Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. 2nd ed. Cambridge, MA: MIT Press. ISBN: 0262032937.
Programming Methodology (Stanford) – iTunes
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. Emphasis is on good programming style and the built-in facilities of the Java language. The course is explicitly designed to appeal to humanists and social scientists as well as hard-core techies. In fact, most Programming Methodology graduates end up majoring outside of the School of Engineering.
Programming Abstractions (Stanford) – iTunes
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. If you’ve taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, Programming Abstractions may be an appropriate course for you to start with, but often Programming Abstractions (Accelerated) is a better choice. Programming Abstractions assumes that you already have familiarity with good programming style and software engineering issues (at the level of Programming Methodology), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction.
Programming Paradigms (Stanford) – iTunes
Advanced memory management features of C and C++; the differences between imperative and object-oriented paradigms. The functional paradigm (using LISP) and concurrent programming (using C and C++). Brief survey of other modern languages such as Python, Objective C, and C#.
Podcasts
Pragmatic Podcasts – iTunes
Pragmatic interviews, news, techniques, and more from the Pragmatic Bookshelf.
Going Linux – iTunes
Going Linux is a podcast for computer users who just want to use Linux to get things done.
The Big Web Show – iTunes
The Big Web Show features special guests and topics like web publishing, art direction, content strategy, typography, web technology, and more. It’s everything web that matters. Hosted by Jeffrey Zeldman.
PHP
PHP (Rock Valley) – iTunes
PHP is still the #1 web developing language in the world! This PHP Course is based off of an web based site for the PHP Course I teach at Rock Valley College. Please note the podcast will mention dates and submission items that may not pertain to this course. This an introduction to PHP and I have created all the weekly exercises to reinforce topics of importance to PHP.
Building Dynamic Websites (Harvard) – iTunes
Today’s websites are increasingly dynamic. Pages are no longer static HTML files but instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today’s most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course explores issues of security, scalability, and cross-browser support and also discusses enterprise-level deployments of websites, including third-party hosting, virtualization, colocation in data centers, firewalling, and load-balancing.
Mobile Development
Coding Together: Apps for iPhone and iPad (Stanford) – iTunes
Based on Paul Hegarty’s course videos and materials offered in Fall 2011, Stanford’s most popular iTunes U course now includes peer collaboration on Piazza, so you can learn alongside fellow mobile developers from around the world. If you’ve tried it alone and gotten stuck, now there will be people to help. If you’ve taken it before and aced it, now you can sharpen your knowledge by helping others. And if you’ve been meaning to learn iOS development, there may never be a better time.
Covers iOS 5. Tools and APIs required to build applications for the iPhone and iPad platform using the iOS SDK. User interface designs for mobile devices and unique user interactions using multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management, Objective-C programming language. Other topics include: object-oriented database API, animation, multi-threading and performance considerations.
iPhone and iPad App Development (Stanford) – iTunes
Updated for iOS 5. Tools and APIs required to build applications for the iPhone and iPad platform using the iOS SDK. User interface designs for mobile devices and unique user interactions using multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management, Objective-C programming language. Other topics include: object-oriented database API, animation, multi-threading and performance considerations.
Advanced iPhone Development (Madison Area Technical College) – iTunes
While there are many resources out there to help you get started with developing for iOS devices, this course aims to answer the question: “What next?” Fundamentals of Cocoa development are explained, but the class quickly moves on to coverage of the many interesting frameworks within iOS.
Topics such as Core Animation, Core Data, OpenGL ES, multithreading, and iPad-specific development are presented from the perspective of an experienced Cocoa developer.
Javascript
Advanced Topics in Web Development (ETSU) – iTunes
This course will cover advanced Web coding concepts and teach students how to add an extra layer of usability to a Web page using a current scripting language or tool. Students will learn how to create, accessible modern web applications that integrate current Web standards. Course content will include: JavaScript, AJAX, and other Web 2.0 related techniques and technologies.
Ruby on Rails
Railscast – iTunes
Every week you will be treated to a new RailsCasts episode featuring tips and tricks with Ruby on Rails, the popular web development framework. These screencasts are short and focus on one technique so you can quickly move on to applying it to your own project. The topics are geared toward the intermediate Rails developer, but beginners and experts will get something out of it as well. This version is for mobile devices which cannot support the full resolution version.
Learning Rails – iTunes
Want to learn how to build web sites with Ruby on Rails? Learning Rails starts from the beginning and teaches all the core concepts.
Machine/Artificial Intelligence
Machine Learning (CalTech) – iTunes
This is an introductory course on machine learning that covers the basic theory, algorithms and applications. Machine learning (Scientific American introduction) enables computational systems to adaptively improve their performance with experience accumulated from the observed data. It has become one of the hottest fields of study today, with applications in engineering, science, finance, and commerce.
The course balances theory and practice, and covers the mathematical as well as the heuristic aspects. The lectures follow each other in a story-like fashion; what is learning? can we learn? how to do it? how to do it well? what are the take-home lessons? The technical terms that go with that include linear models, the VC dimension, neural networks, regularization and validation, support vector machines, Occam’s razor, and data snooping.
Applied Artificial Intelligence (JSU) – iTunes
Survey of artificial intelligence emphasizing applications in business, industrial, and scientific system development; autonomous agents, data mining, pattern recognition, and machine vision.
Hardware
Intro to Micro-Controllers (Michigan) – iTunes
Pre-Enginering: Electronics with Micro-Controllers introduces students to simple circuitry and programming as they learn to use the Arduino platform. Students will learn simple programming concepts and also learn how to use a variety of basic electrical components.
After they complete the course materials my students are challenged to conceive of and construct a final project that involves Arduino. Many will simply use skills they’ve learned along the way, while others will need to learn more. Luckily there is a wealth of resources available for those students on the internet.
Gamification
Interactive Game Design (UC Santa Cruz) – iTunes
Foundations of Interactive Game Design has now concluded. The course was taken by 213 students at the University of California, Santa Cruz, from January 5 through March 19, 2007. People interested in the contents of the course are encouraged to view the syllabus and the lecture notes, and listen to the lecture podcasts.
Content Development
Film Method – iTunes
Have you ever wanted to make your own film, but you are not sure where to start? Film Method is the podcast that will take you through the nuts and bolts of independent filmmaking. In a roundtable discussion format we will meet guests from all walks of filmmaker life who will share their golden nuggets of wisdom about everything from hiring a producer, to finding a composer, to seeking out investors. Season One will focus on the development phase of making a movie starting with the seeds of inspiration and writing a script or finding material with a particular audience in mind.
2Reel Guys – iTunes
Dedicated to the creative process of visual storytelling, 2 Reel Guys shows that telling a good story doesn’t require a lot of money – a lot of gear – or a lot of people. Mainly, you just need the knowledge of how to shape the story into something other people want to watch. Norman Hollyn heads the Editing Track at the University of Southern California (USC) School of Cinematic Arts. Larry Jordan is a world-renowned digital media trainer, lecturer and Final Cut Studio expert. Each show illustrates a single storytelling concept in less than 10 minutes. New shows are posted every two weeks. Drop us a note and let us know what you think and what you’d like us to cover.
The Cutting Room – iTunes
The Cutting Room is a part of The Art of the Guillotine’s podcast section. Each week we interview editors from around the world about their technique and approach to film editing.
Meet the Gimp – iTunes
The GIMP is a image manipulation program. It is free (as in speech and in beer), it is open source and it runs on Linux (and other Unixes), Windows and MacOS. It can do nearly all the stuff you can do with Adobe® Photoshop® and more than a lot of other programs. I’ll show you in this screencast how to use it for postprocessing digital camera images. There will be a new episode each thursday (european) night.
Audacity to Podcast How To – iTunes
Learn about podcasting, Audacity, and WordPress from Daniel J. Lewis. Podcasting is a exciting and personal way to share your message with others, but how do you do it? What equipment, software, and skills do you need? We give you answers to these and more podcasting questions. Many episodes focus entirely on Audacity.
Tool Kits
Development
- Google Web Toolkit (Building and Optimization)
- Programmable Web (API)
- Eclipse (IDE)
- 960.gs (CSS/HTML templates)
- Amazon S3 (Cloud Storage)
- Amazon EC2 (Cloud Computing)
- Phonegap (Mobile) (Alternative – Appcelerator) (Tutorials – Phonegap)
Frameworks
- jQuery (Javascript)
- Ruby on Rails (Ruby)
- HTML5 Boilerplate – Mobile (HTML5 / Mobile) (Alternative – Lungojs)
- HTML 5 Boilerplate (HTML5)
- Code Igniter (PHP) (Alternative – Yii) (Tutorials – Code Igniter, Yii)
- YAML (CSS) (Tutorial – YAML)
Creative – Web
- GIMP (Graphic Editing) (Tutorials – GIMP)
- WordPress (CMS) (Alternative – Drupal) (Plugins – Membership)
- BuddyPress (Social Network)
- Creative Commons (Graphics/Sounds) (Alternative – Openclipart)
- Symb.ly (Icons)
- Vanilla Forum (Forum) (WordPress Plugin)
- Elegant Themes (WordPress Themes)
Creative
- Audacity (Audio Editing) (Tutorials – Audacity Wiki)
- Lightworks (Video Editing)
- Inkscape (Vector Graphics) (Tutorials – 31 Best Tutorials)
- The Game Creators (Game Design)
- iStockPhoto (Stock Photography)
Business
- SugarForge (CRM)
- Magento (e-Commerce)
Scientific
- SciLab (Mathematical Computations) (Alternative – Wolfram Alpha) (Tutorials – SciLab)
- R Commander (Statistics) (Alternative – RStudio) (Tutorials – Getting Started with R)
Hardware Development and Manufacturing
- Arduino (Opensource Hardware)
- Cubify (3D Printing) (Alternative – Makerbot)
- 123D (Rapid 3d Prototyping) (Alternative – Sketchup) (Tutorials – Sketchup)
- Sparkfun (Hardware Components)
- Ponoko (Cloud Manufacturing) (Tools) (Alternative – Formulor)
- Batch PCB (PCB Manufacturing)
- Thingiverse (3D Design Templates)
- My DIY CNC (CNC Machine)
- KiCad (PCB Design) (Alternative – Fritzing) (Tutorials – Opencircuits, Fritzing)
- WIMM (Wearables)
Publishing
- Lulu (Book Publishing) (Alternative – CreateSpace) (Templates – Lulu)
- Kindle Publishing (eBook Publishing)
- Libre Office (Word Processing)
Other Tutorials
- Javascript
- Ruby on Rails (Alternative – Rails for Zombies)
- PHP
- jQuery
- HTML5 (Alternative – Dive into HTML5)
- CSS
- W3 Wiki (Various)
- W3School (Various)
- Code Academy (Javascript/HTML/CSS/Python/Ruby)
- Stack Overflow (Various Q&A)
- Arduino (Alternative – Arduino Tutorials)