Mimir:Spring 2014 Daniel Mamede Log


 * Home
 * Semesters
 * Spring 2014

Week Ending February 4th, 2014

 * Notes:


 * Comments:

Week Ending February 11, 2014

 * Notes:


 * Comments:

Week Ending February 18, 2014
Feb. 12 - We had our first official meeting of the graduate students. We discusses a few issues regarding the group dynamics (day/time to meet, availability during weekends, etc) and tools that will be used (create a GoogleGroup to facilitate emails communication, etc.)
 * Notes:


 * Comments:

Eric volunteered to take the lead and write the minutes. We discussed about how we will approach the project, mainly if we will create a chapter to go over each language or how we would structure the book. After some discussion, we decided that we will try to approach using one chapter to each paradigm and then we would use one programming language (or languages) that fits the paradigm to show examples.

We also agreed that we will need one or more Intro chapters. These chapters will be more general and go over the Programming in a more general concept, also briefly bring some history about the evolution of languages and why new languages/paradigms were born.

Week Ending February 25, 2014
The books that I order arrived: Concepts of Programming Languages (Robert Sebesta) and Seven Languages in Seven Weeks (Bruce Tate). I liked these books because they are not language specific (although the later tries to actually teach each language in a crash course style). But my expectations are to see if the author can make sense of the "why's" he uses seven different languages. Looking forward to see how he justifies the use of each language. Some of the languages I've never heard about: Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell.
 * Notes:

The other book is more Conceptual and should be very valuable and helpful to this project. Found out it was one of the books Prof. Jonas used in his PhD, just a different edition.

The exchange of emails within the group has started and I see that the members are more engaged on the project. There has been collaboration as far as sharing links, books and also as how to focus on content versus style, deadlines, etc.
 * Comments:

The group did not meet on the 19th because all the members were working on the homework (Perl, BNF and Python). The homework was very time consuming but it gave me a chance to be exposed to Perl and Python for the first time. I used a book that helped me with Perl (Learning Perl, by Schartz, Foy and Phoenix), except for the Hash part of the homework. To understand how Python works I used two online resources: CodeAcademy.com and a great video tutorial on YouTube (A hands-on introduction to Python for beginning programmers,, by Jessica McKellar).

I think at this point, most of the grad students were trying to gain more knowledge (conceptual knowledge) rather than focusing on writing. I hope next week will be more productive and we will have something more concrete on paper.

[I agree. Thanks for great sharing--Erol --Ea2003 (talk) 11:10, 26 February 2014 (PST)]

Week Ending March 4, 2014
The groups made good progress on structuring the textbook. At least on theory the plan looks nice. I'm only concern with the timing of the plan. Maybe things will speed up once we start having something to work with. It's hard to start from nothing.
 * Notes:

I hope once at least the class notes are captured, we will have some material to edit and add to. And hopefully all members will contribute with each other.


 * Comments:

Week Ending March 18, 2014

 * Notes:

I really liked the notes entered by Jacob and Jason ([foss.unh.edu/projects/index.php/Mimir:Spring_2014_Lectures#Week_6_Language_concepts:_parameter_passing_by_value_.26_reference.3B_an_overview_Lisp]). There are a few comments I'd like to make and a few extra input, but other than that I'm pretty happy with their work.

The Lisp homework was very challenging. I wish we could spend more time on each language. I believe the most challenging aspect comes from the fact that this was the first time I was exposed to most of the languages we've covered in class. On the other hand (if we stayed the entire semester on one single language) I would not have an opportunity to at least be somehow familiar with all these different languages.

What I've seen so far is that the user can accomplish pretty much the same thing with any language chosen. What I mean is it would be possible to finish any project with any language. But the selection defines how efficient and effective the solution will be. Like the example Prof. Jonas used in class, anyone might do a plumbing job, but only a professional plumber will make sure the pipes will not become an obstacle in the kitchen.

Also, another thing that I'm learning is that there are several, SEVERAL way to define programming languages. One person might define a language based on its paradigm. Others might categorize them based on if they are interpreted vs. compiled and others categorized based on its generation (first, second and third generation). One author however, used a categorization that I've never seen before. Although he never explain why he created this categories, I believe it makes sense from the end user point of view. He categorized the languages into these three buckets:


 * Languages designed to manipulate the computer at a low level — that is, to manipulate the operating system (Windows or DOS) or even the hardware itself — are called low-level languages. An example is assembly language;


 * Languages designed to create standalone applications (high-level languages). Examples are BASIC, COBOL, FORTRAN, C, C++, and Visual Basic;


 * Languages that are designed to manipulate an application program, such as Microsoft Word or Excel, are application-level languages. One example is VBA, designed to manipulate MS Office applications (Word, Excel, PowerPoint, Outlook, Access, etc.)

It's very simple, but from the end-user perspective (or at least for a non-IT, non-CS person) this is what makes most sense in my opinion. The author, however, was very unfortunate on his example using only variants of VBA under this third category. I wonder what other languages might fall into this category. Maybe SQL and batch? Maybe VB, C# and even html can be hybrid and also fall into this category since they can open standalone applications and perform different types of actions.


 * Comments:

Week Ending March 25, 2014

 * Notes:


 * Comments:

Week Ending April 1, 2014

 * Notes:


 * Comments:

Week Ending April 8, 2014

 * Notes:


 * Comments:

Week Ending April 15, 2014

 * Notes:


 * Comments:

Week Ending April 22, 2014

 * Notes:


 * Comments:

Week Ending April 29, 2014

 * Notes:


 * Comments:

Week Ending May 6, 2014

 * Notes:


 * Comments: