Friday, January 18, 2013

Programming Languages from the Univ of Washington

Programming Languages A Course from Coursera

Course Goals (from the course website)

Successful course participants will:
  • Internalize an accurate understanding of what functional and object-oriented programs mean
  • Develop the skills necessary to learn new programming languages quickly
  • Master specific language concepts such that they can recognize them in strange guises
  • Learn to evaluate the power and elegance of programming languages and their constructs
  • Attain reasonable proficiency in the ML, Racket, and Ruby languages --- and, as a by-product, become more proficient in languages they already know

Today I started watching Section 1 of the Programming Languages course from the University of Washington, Taught by Dan Grossman

As of this writing I have completed half of Section 1 video lectures and have installed gnu emacs on windows and SML/NJ (Standard ML of New Jersey).

The course is not about programming in ML, but rather ... well let them explain it:

"Learning to think about software in this “PL” way will make you a
better programmer even if/when you go back to old ways"

"It will also give you the mental tools and experience you need for a
lifetime of confidently picking up new languages and ideas "

So the course is not about a particular language but rather.. in my words.. the Science of Programming.

I have never been exposed to ML (or any type of functional programming for that matter). As for Emacs, the last time I used it was on a Unix machine back in the day. 

So what things did I learn about ML/Section 1:
1. You do not assign values but bind them to variables...
2. Type checking (Static) and evaluation (dynamic)
3. An if always requires an else
4. Functions in ML (how are they defined and understand their binding)
5. Tuples
6. The use of Recursive functions (instead of using loops)

This is from the top of my head.. There will be a programming assignment that is due on Friday 25th of January AST. I should be able to get the hang of ML once I finish the video lectures for section 1. One of the problems I have (which is minor) are the emacs shortcuts ,so I downloaded a cheatsheet to help me out.

The course will move on to talk about different programming paradigms by using Racket and  Ruby.

Ok... back to finishing the second half of Section 1...

(writing a post takes A LOT time :/  )

Update (19 Jan 2013):
1. Recursion - not easy to implement.. need to learn a way to translate from loops to recursion
2. Options Lecture - Still don't get it... will wait till I start reading and doing the HW


No comments:

Post a Comment