234 reputation
212
bio website mathscitech.org/articles
location London, United Kingdom
age
visits member for 1 year, 8 months
seen Apr 15 at 21:11

Mar
25
comment Assembly as a First Programming Language?
Very well said -- I agree. The first course needs to get to the point, show the end-to-end usefulness of the skills being learned, and fire the imagination: "Gosh! I can program? Now what else can I do with this new skill..." Agree also that the best time for assembly language is after one higher level language. That motivates looking "under the hood" at how the computer is actually understanding the higher level stuff. Seeing assembly language for the first time after a higher level language leaves another powerful impact: the student encounters electronics, chips, sensors, etc.
Feb
25
comment Introducing Programming To a Mathematician
I have to disagree. Why would a young kid, interesting in maths, be attracted to Machine code? And why C? Assembly presumes far too much knowledge about processors. C likewise makes many requirements that are best left to someone wanting to learning serious programming: pointers, registers, scoping, types. For a first introduction to programming for such a person, something that focuses on algorithms or on applications of mathematical ideas (probability, randomness, simulations), is much better. Python, Lisp/Forth, Basic even. Bourne-shell?? Why?...
Jan
21
comment Genetic Algorithm - solving a matrix with hard and soft constraints
This would be better posted in Computational Science or Cross Validated (Statistics).
Nov
5
comment Should comments say WHY the program is doing what it is doing? (opinion on a dictum by the inventor of Forth)
But at what higher level? Seems that documents outside of the code often get disconnected over time so that a different maintainer coming back to the code 10 years on may not know that a document even exists which has relevant background material like algorithm selection. Somehow information that is not linked to code seems to be at high risk of being forgotten. Which then suggests comments in the code itself.
Nov
1
comment Why would a company develop an atmosphere which discourage code comments?
+1 -- Like this. This tells WHAT the program does, but not HOW. The HOW is obvious -- it's the lines that follow the comment. The WHAT succinctly describes the section's intent / objective. And that, I think, is quite valuable later when scanning a large quantity of code looking for the section that does a particular task.
Nov
1
comment Should comments say WHY the program is doing what it is doing? (opinion on a dictum by the inventor of Forth)
Thanks for the response. So in your opinion then, should comments include justifications for design choices, e.g. the reasons why a particular design was chosen over reasonable alternatives?
Sep
16
comment Mercurial release management. Rejecting changes that fail testing
To the OP: you're clearly on this site reasonably regularly. Is there any reason why you seem to ask questions but accept no answers? It's usually good practice on these sites to reward good answers with feedback in recognition for the time they've invested in your question. You've got a few very good answers below... (nudge nudge)
Sep
16
comment Mercurial release management. Rejecting changes that fail testing
(+1) very clear description -- and very helpful. Thanks for this! (It's a pity the OP hasn't returned to officially review the responses.)
Sep
10
comment Learning OO for a C Programmer
You may find this easier than you expect. Obj-C will reduce the language gap since it is quite similar to C -- the differences will naturally emphasise the key concepts you'll need to master. My suggestion is more around choosing some fruitful toy problems / exercises. I expect you'll already have a strong intuition for OO design because anyone coding solutions for as long as you will intrinsically appreciate the cleanliness and elegance of wrapping functions and data structures within their own package (class). [PS I went from C to OO first via Obj-C, then Ruby, now Python -- Good luck!]