Epic Games just released the Unreal Development Kit, a fully-featured SDK based on the award-winning Unreal 3 engine that powers a wide range of today’s most popular games; and it’s free for educational and non-commercial use — wow!
There are some rather heavy licensing fees once you start making money from your game — $0 (zero) up-front, and a 0% royalty on you or your company’s first $5,000 (US) in UDK related revenue, and a 25% royalty on UDK related revenue above $5,000 (US) — though, if you take into consideration that you can upgrade to the real Unreal engine licensing and skip the royalty fees once you reach fame and fortune, the Unreal Development Kit remains extremely attractive for any kind of game development.
“MIT 6.00 — Introduction to Computer Science and Programming” is one of the best introductions to programming I’ve seen, and I guess I shouldn’t expect less from the Massachusetts Institute of Technology. 24 video recordings of Computer Science lectures (totalling roughly 20 hours) by Professors Eric Grimson and John Guttag, current and former heads of Electrical Engineering and Computer Science at MIT. The course focuses on, quite simply, teaching you how to think like a programmer and solve problems computationally. Historically, LISP was the language of choice for Computer Science introductions at MIT, but was since replaced by every imperative programmer’s new darling, Python.To quote the overview given in the first video, the course revolves around:
- Computational thinking
- Understanding code
- Understanding abilities and limits
- Mapping problems into computation
I highly recommend watching this if you’re new to programming, a hobby programmer, or even if you’re pretty well-versed — I’m sure there are nuggets of useful information inthere for everyone. Give Lecture 1 a look; if you like it, I’ve embedded the entire course after the jump, but it can also be found on the official course website, along with assignments, exams and solutions.
Lecture 1: Goals of the course; what is computation; introduction to data types, operators, and variables
Lecture 2: Operators and operands; statements; branching, conditionals, and iteration
Lecture 3: Common code patterns: iterative programs
Lecture 4: Decomposition and abstraction through functions; introduction to recursion
Lecture 5: Floating point numbers, successive refinement, finding roots
Lecture 6: Bisection methods, Newton/Raphson, introduction to lists
Lecture 7: Lists and mutability, dictionaries, pseudocode, introduction to efficiency
Lecture 8: Complexity; log, linear, quadratic, exponential algorithms
Lecture 9: Binary search, bubble and selection sorts
Lecture 10: Divide and conquer methods, merge sort, exceptions
Lecture 11: Testing and debugging
Lecture 12: More about debugging, knapsack problem, introduction to dynamic programming
Lecture 13: Dynamic programming: overlapping subproblems, optimal substructure
Lecture 14: Analysis of knapsack problem, introduction to object-oriented programming
Lecture 15: Abstract data types, classes and methods
Lecture 16: Encapsulation, inheritance, shadowing
Lecture 17: Computational models: random walk simulation
Lecture 18: Presenting simulation results, Pylab, plotting
Lecture 19: Biased random walks, distributions
Lecture 20: Monte Carlo simulations, estimating pi
Lecture 21: Validating simulation results, curve fitting, linear regression
Lecture 22: Normal, uniform, and exponential distributions; misuse of statistics
Lecture 23: Stock market simulation
Lecture 24: Course overview; what do computer scientists do?
Thank you, MIT, for making your courses open like this.
What is your best programmer joke? is now one of my favorite StackOverflow threads — C-x M-c M-butterfly!
A man flying in a hot air balloon suddenly realizes he’s lost. He reduces height and spots a man down below. He lowers the balloon further and shouts to get directions, “Excuse me, can you tell me where I am?”
The man below says: “Yes, you’re in a hot air balloon, hovering 30 feet above this field.”
“You must work in Information Technology,” says the balloonist.
“I do” replies the man. “How did you know?”
“Well,” says the balloonist, “everything you have told me is technically correct, but It’s of no use to anyone.”
The man below replies, “You must work in management.”
“I do” replies the balloonist, “But how’d you know?”
“Well”, says the man, “you don’t know where you are, or where you’re going, you expect me to be able to help. You’re in the same position you were before we met, but now it’s my fault.”
very long pause…
Interesting automated software test system concept. The goal is to design this for the Linux kernel, but it should be very useful in other regards as well.
This is an extract from Fred Brooks’ (Frederick P. Brooks, Jr.) book, The Mythical Man-Month. This is one of the best explanations of why programming is so interesting. It touches on all aspects of the mystique of programming. If you haven’t read the book, go out, buy it, and read it. The book was first published in 1974 and then republished in 1995. What Fred Brooks had to say then based on his experiences with the development of the OS/360 system is still relevant today.