background preloader

How to Design Programs: An Introduction to Computing and Programming

How to Design Programs: An Introduction to Computing and Programming
Related:  Computing

Become a Programmer, Motherfucker If you don't know how to code, then you can learn even if you think you can't. Thousands of people have learned programming from these fine books: Learn Python The Hard Way Learn Ruby The Hard Way Learn Code The Hard Way I'm also working on a whole series of programming education books at Learn C The Hard Way Learn SQL The Hard Way Learn Regex The Hard Way Graphics Programming Language Agnostic NerdDinner Walkthrough Assembly Language Bash Clojure Clojure Programming ColdFusion CFML In 100 Minutes Delphi / Pascal Django Erlang Learn You Some Erlang For Great Good Flex Getting started with Adobe Flex (PDF) Forth Git Grails Getting Start with Grails Haskell Java JavaScript JavaScript (Node.js specific) Latex The Not So Short Introduction to LATEX (perfect for beginners) Linux Advanced Linux Programming Lisp Lua Programming In Lua (for v5 but still largely relevant)Lua Programming Gems (not entirely free, but has a lot of free chapters and accompanying code) Maven Mercurial Nemerle Nemerle

4 Free Software alternatives to Matlab For those involved in data analysis, numerical computation and taks of that nature, Matlab is an industry standard software to use, though it is not necessarily the best available. The problem is that (Matlab) is commercial and can be expensive. Recently I took a class on Machine Learning and was surprised to find that the professor was not going to use Matlab, but a Free Software alternative called GNU Octave, which was good news because it meant not having to spend money on a proprietary software. Being relatively new to this field, I decided to see what other Free Software alternatives are available. It turns out that there are a bunch of them that are already available in the repository of your favorite distribution. The following list (in alphabetical order) contains four alternative to Matlab that I found: 1. GMT is officially described as a: General purpose calculator program similar in some aspects to BC, Matlab, Maple or Mathematica. 2. 3. Sagemath’s user interface is described as:

Ambient Occlusion Fields Janne Kontkanen, Samuli Laine in ACM Siggraph 2005 Symposium on Interactive 3D Graphics and Games We present a novel real-time technique for computing inter-object ambient occlusion. For each occluding object, we precompute a field in the surrounding space that encodes an approximation of the occlusion caused by the object. This volumetric information is then used at run-time in a fragment program for quickly determining the shadow cast on the receiving objects. According to our results, both the computational and storage requirements are low enough for the technique to be directly applicable to computer games running on the current graphics hardware. Downloads Janne Kontkanen, 14.2.2005

25 Free Computer Science Books | Coderholic As a computer scientist I'm always looking to improve my knowledge of the subject. There are lots of great sources of information available online, but nothing really beats the depth of knowledge that you can find in a book. It is possible to get the best of both worlds though, as many books are now available online in full, and free of charge! Below is a selection of 25 of the best free computer science books that I've found online, with a brief description of each one. Become An X coder A guide to MacOSX development with Cocoa using Objective-C. The Cathedral and the Bazaar Eric Raymond's brilliant book about Open Source software, and its impact on software development projects. Data Structures and Algorithms with Object-Oriented Design Patterns in Java Also available in C#, Python, Perl, Ruby, Lua, C++ and PHP versions. Dive Into Accessibility Another Mark Pilgrim guide, on creating accessible websites. Getting Started with awk Awk is the perfect tool for many system admin tasks.

Test Driven Development and Design By Contract - friend or foe? in this post i’ll try to answer a legitimate question, relating to a comment due to my last statement that interfaces are poor contracts: why do we need contracts (in the sense of invariants, pre- and postconditions) when we’ve got unit tests right at hand, that could also test the stated conditions? in fact, it’s very tempting to see unit tests as an all-embracing instrument to check and show that a class will behave correctly, making contracts kind of unnecessary. i’ll try to show you that unit tests (as an instrument for test driven development) and contracts (as an instrument for Design By Contract) indeed share the same goals but aren’t competing techniques, rather than methods that could complement each other. it’s not about verification – it’s about specification that said, both methods share the same main incitement – the specification of a system that will drive its design. don’t bear away collaboration includes clients and supplier reliance on a proper context clear Design reuse

Web Design Inspiration, CSS Gallery and Video Review Podcast - Introduction to the Command Line Commands enable you to do all sorts of powerful things. We will demonstrate this by looking at an everyday task you might be familiar with. If you use a digital camera, you probably have a folder full of images on your computer. Imagine you wish to resize the image profile.jpg so it is 300 pixels wide and then save it as a new image called profile_small.jpg. Using an image editing software, the steps you need to go through might be as follows: Open the image editor from the Applications menu. Using the command line, you can achieve the same result by typing the following: convert -resize 300 profile.jpg profile_small.jpg That is one step in the command line instead of eight steps using the image editor. A single command can do the same thing whether you have 30 images, 300, or 3000. Advantages of Using Commands Many people who give the command line a try are so amazed by its possibilities that they do not even want to go back to a Graphical User Interface(GUI)! The Value of Scripting

Regular Expression Matching Can Be Simple And Fast Russ January 2007 Introduction This is a tale of two approaches to regular expression matching. One of them is in widespread use in the standard interpreters for many languages, including Perl. The other is used only in a few places, notably most implementations of awk and grep. The two approaches have wildly different performance characteristics: Let's use superscripts to denote string repetition, so that a? Notice that Perl requires over sixty seconds to match a 29-character string. It may be hard to believe the graphs: perhaps you've used Perl, and it never seemed like regular expression matching was particularly slow. Historically, regular expressions are one of computer science's shining examples of how using good theory leads to good programs. Today, regular expressions have also become a shining example of how ignoring good theory leads to bad programs. Regular Expressions Regular expressions are a notation for describing sets of character strings. Finite Automata

Software Architecture Document Guidelines Update, 27th October 2009: Please see Software architecture document guidelines for an updated version of the guidelines. Regardless of the development process that you use, a description of the software architecture can be essential for any project, big or small. If software architecture is about the structure of a system and is the vehicle for satisfying the requirements, then the software architecture document is a written description of this. An outline description of the software architecture, including major software components and their interactions.A common understanding of the architectural principles used during design and implementation.A description of the hardware and software platforms on which the system is built and deployed.Explicit justification of how the architecture meets the non-functional requirements. It's worth remembering that the software architecture doesn't have to be a huge weighty tome and it doesn't even need to be a traditional Word document.

Freebies | Web Design Ledger 599 shares 8 Must Have Free Fonts for your Designs Need some fresh fonts for your new projects? We got your back. Read More 441 shares 9 Free Icon Sets to Diversify your Library Every designer needs to be ready to go wherever their projects take them. 960 shares 10 Best New Free Fonts We’ve been on the prowl for some new free fonts to share with you. 301 shares Spring Up your Designs with Some Free Flower Textures Textures are a good way to add personality, depth and interest to a design. 501 shares 30 Free Vintage Logo Templates Looking for some high quality vintage logos or insignias? 433 shares Exclusive Free Download: Vintage Infographic Elements Infographics are great for displaying information in a way that is easier to digest. 1149 shares 9 Free & Useful Fonts for your Designs Whether it’s PSD’s or icons, we love finding high quality free files and sharing them with our readers. 464 shares 8 Free & Useful Minimal Icon Sets Icons are certainly a very important element of a design. 773 shares

How to Protect Yourself from Apps that Make Wi-Fi Hacking Simple guide-things-you-shouldnt-be-doing-in-rails edit Posted by kev Wed, 30 Aug 2006 05:32:00 GMT Koz recently checked code into core that kicks and screams all the way home if you’re using deprecated methods or instance variables. In honor of this I’ve decided to give you a list of things I still see over and over in Rails code that you really shouldn’t be doing anymore. Update: There’s been enough controversy over this article that I’ve responded. Accessing Instance Variables You Didn’t Create It’s time to stop using the instance variables for params, flash, session, request, response and all of their formerly preceded by an @ friends. rabble (who you’ll hear more from later) also suggests that you not intermix usages of flash[:notice] with flash['notice'] and the like. Using Deprecated Finders find_all and find_first have been deprecated over a year now. Getting Ahead of Yourself Stop trying to write “neato ajax driven thingies” before you understand how to write it properly without ajax. Fallin’ off the wagon Using Components See?

Related:  books