Sunday, December 22, 2013

Friday, December 13, 2013

MOOCs: Introduction to Systematic Program Design - Part 1 in Coursera

Last month I finished this great Coursera course by Professor Gregor Kiczales from the The University of British Columbia:
This course is a 10 week introduction that presents a design method that enables you to approach the design of complex programs systematically. I saw a previous version of the course and felt curiousity about it.
Their method shows how to model the information in a problem domain, how to structure program data to mirror that information and how to further structure the data to lead to a well organized program. It also teaches how to distinguish those parts of a program that are naturally data driven, from those that should use an alternative algorithmic approach. The method also uses a first test approach to unit-testing.

The course goes slowly and Professor Kiczales explains all concepts very well. Moreover, their design methodology with its design recipes and templates helps to make explicit many of the unconscious design decisions experienced programers often do. For that reason I think it's a great introduction to programming.
In my case, having some previous programming experience, I found that applying the method systematically for most of the small programs done during the course was a bit overkilling. However, in the end, it paid off when we started working with generative recursion to produce fractals and with bactracking searches. Following the recipes of their method proved to be really useful.

Another reason to do this course was the languages it uses: several teaching languages that are subsets of Racket (a Lispy language). This makes this course a gentle introduction to the basics of functional programming.
It gave me the chance to practice a lot with recursion, immutability and higher order functions, and it also helped me to get into the "Lisp cycles":
It was a great course. I think that Professor Kiczales and his team did a really great work and I'd like to thank them and Coursera for giving us this opportunity.

I'm looking forward to start the second part.

Friday, November 1, 2013

Articles and Posts read

Inspiring
El Parlamento Europeo otorga a la PAH el Premio Ciudadano Europeo 2013
Aprendiendo a construir catedrales
Un heroico Nadal vence a un irreductible Djokovic

Learning and software craftsmanship
All models are wrong…
Fix your Pebbles
On Simplexity
Selected TDD Resources To Start
Roman Numerals Kata with Commentary
A fundamental design move
The birthday greetings kata
Code Smell Of The Week series
Open-Closed Principle in SOLID Object Orientation Rules Challenged
Straw Man TDD
Los "malos olores" del código
SOLID by example
Refactoring is Sloppy
SOLID Code for SOLID Reasons
Why shorter methods are better
The abuse of refactoring
Ports and Adapters With No Domain Model
Mi carrera de desarrollador de software: ¿hacia dónde la enfoco?
TDD tetris tutorial
Hexagonal architecture in JavaScript
The Liskov Substitution Principle Demystified
GitHub is the new resume, and you don’t have to be a God of Programming for it to work
The Pragmatics of TDD
The Mind-killer
Is Design Dead?
Classic TDD or "London School"?
My relationship with SOLID - Starting with S
How much will you be worth in five years? Your Personal Technology Roadmap
Growing software from examples
PatternCraft series
Guiding Software Development with Design Challenges
Functional Programming Patterns in Four Popular Javascript Libraries
Practices Versus Etudes
Book Club: Hexagonal Architecture (Alistair Cockburn)
State vs. Interaction Based Testing Example
"Tell, Don’t Ask" Object Oriented Design
¿Está pasando España de comprar desarrollo software a Asia o Latinoamérica a ser el país que se lo vende?
Patterns as a source of freedom
Thelonius Monk teaches Software Design
A good name is about an idea, not an implementation
Naming From the Outside In
A brief tour of RDD in 2004 de Rebeca Wirfs Brock
Serendipity and False Pride

Spain and Europe
Thoreau, apóstol del 15-M... de 1845
"Decepciona ver tanto potencial científico en España que no se pueda desarrollar"
Temporeros castigados en la pensión por las uvas de Francia
Un 22% de trabajadores alemanes perciben sueldos mínimos
España, eclipse solar
Estrasburgo pide dación en pago o renegociación para familias en quiebra
Así se rascan el bolsillo para invertir en Ciencia y Salud miles de ciudadanos anónimos