Search This Blog

Showing posts with label Edu. Show all posts
Showing posts with label Edu. Show all posts

Sunday, March 13, 2022

Pugofer → Pug → ?

It was a rainy July day of 1993. My just-graduated student, Anuradha strode into the — at that time — ramshackle PU building with a mischievous twinkle in her eyes.

A: Sir!!!
Me: Yeah??
A: I've got a functional language for you!!!And she waved one (or was it 2?) 360 K floppies in front of my face
Me: Awww... We're a poor department we don't have fancy machines like Sun workstations to run these. In short FPLs are beautiful but only for the rich
A: It runs on PCs – Come see!!

Pug

Sunday, March 6, 2022

A Fairy Tale And a Bridge

Momma: Dr. Einstein, What should my lil boy read so that he becomes like you?

Einstein: Read him fairy tales

Momma : ! 😯!!😯!!!

In this post I shall channel 'the late Dr. Einstein' to make a case for Pugofer as a fairy tale.

Wednesday, December 27, 2017

The ‘User’ and Technology

1 Introduction

[This post is mostly for my students]

I had mentioned in the class that you are graded along three dimensions
By the nature of things for the most part, concepts are evaluated. And a bit of perspective.
If you have done some coding your technology is satisfactory: ie you know how to turn on your machine, log in and enter code. If thats ok with you dont bother with this post
If you want to go beyond that grade you need to read this and implement some of the suggestions

2 The Neologism called ‘User’

Thinking is our most intimate activity, and a lot of it is revealed by the way in which we use (and misuse) our language…

Tuesday, July 5, 2016

Tips for Emacs Beginners

Emacs outshines all other editing software in approximately the same way that the noonday sun does the stars. It is not just bigger and brighter; it simply makes everything else vanish. — Neal Stephenson
Q: Why should I learn emacs? Ive heard 'real programmers' use emacs…
A: Real programmers use their brain
Real programmers program their brain
Often, real programmers' brain-programming program is emacs. — Thien-Thi Nguyen
Well that's the advertisement…
Lets get down to some details – how to start using emacs

Baby Steps 0

You can start the tutorial with C-h t
Which unforunately wastes about 200 lines saying that C-f C-b C-p C-n will do the work of ↑ ↓ ← →
I suggest you ignore this archaism

Saturday, January 16, 2016

The Law of Primacy

I consider the absolute worst programming construct to be subroutine or the function.          Cleo Saulnier 
Hello?!?! Why pay attention to some random crank on the Internet?
Because I think he is onto something important...

Tuesday, June 9, 2015

Functional Programming: A Moving Target

In my last post, I gave a functional programming time line in the last 50 years. Now I'll look at two things: The place of functional in ACM Curriculum 2013 and how C has messed up the notion of functional.

ACM Curriculum 2013


Wednesday, April 29, 2015

Functional Programming: A Timeline

Rob Hagan at Monash had shown that you could teach students more Cobol with one semester of Scheme and one semester of Cobol than you could with three semesters of Cobol.
Richard O'Keefe on Erlang list
Well that was before Functional Programming hit the headlines.
These days FP is quite a buzzword. Is this for good or bad?
If real worldgood well then Scala and Clojure and Erlang and Haskell becoming more and more 'real world' is a wonderful thing.
If what is good is understanding, then I am not so sure. Many things about programming, pedagogy and programming-pedagogy that were widely understood in the 1970s and 80s have mysteriously become un-understood today.
However in this darkening of the age there are some glimmers… eg ACM's 2013 curriculum.
In this post I would like to delineate a timeline of the semantics and significance of Functional in the last 50 years. In subsequent posts I'll try to deconstruct how the semantics has shifted around in this time.

Timeline

1957
The first programming language – Fortran
1957
The first functional programming language – For(mula)Tran(slator)

Why? Whoa! How?

Read on…

Friday, September 26, 2014

Pugofer

In the early 90s  I used gofer to teach FP in the introductory programming class at the university of Pune.  At first I used Miranda/Scheme, then gofer. I was also impressed with Dijkstra's philosophy of making function application explicit with a dot ('.') and decided to incorporate this into gofer.  This changed gofer was called pugofer.

The philosophy of these changes is here. Summary of changes is:

Tuesday, August 12, 2014

Universities starting with functional programming

Here's a list of some universities that are using functional languages to teach programming. As I find more data, it will be added. So please let me know (with links!!) what Ive missed – lists are particularly welcome, but individual universities is also welcome.  Also other languages that have some claim to being functional.
Haskell
Haskell – official list (list)
At quora (also scheme and ML dialects) 
ML
Carnegie Mellon 

Wednesday, July 9, 2014

ACM FDP – Invited Talk

I was an invited speaker at the ACM faculty development program (FDP) organized jointly by ACM and VIT Pune on 9th July 2014.
The stuff of my talk — and good deal of other stuff that I did not manage to cover for lack of time :D — is put up at github.

To view, you will need

Wednesday, May 1, 2013

Dance of Functional Programming

Languaging with Haskell and Python


Friday, April 26, 2013

Functional Programming Scratchbook

Concepts of FP – Mindmap

Please note this is a scratchbook, ie Work-in-progress
Lambda MindMap
A mind map of how to approach the concepts of FP

Monday, October 8, 2012

Functional Programming – the lost booty

Lisp was conceived in 1958 and already implemented by the early 60s.  One of its strange features was something called 'garbage-collection' … which took 35 years to enter the mainstream in Java.

Which is to say that for 35 years:
  • CS researchers did whatever they were doing for their tenure, (sorry) publications
  • Programming teachers righteously beat their students on their knuckles for getting pointer-errors/core-dumps/segfaults etc… 

Tuesday, May 1, 2012

Recursion pervasive in CS

I am often surprised that people think of recursion solely confined to the narrow context of recursive functions, missing the widespread and ubiquitous status of recursion in computer science.  If I may be permitted some jargon, we need to move on from recursion in recursive functions to

The Recursion Design Pattern

which has a large number of instances such as

Tuesday, March 1, 2011

Sunday, February 20, 2011

CS Education is fat and weak – 3

We continue using our two examples from my last post to study how

Conscious and Unconscious Framing shapes CS education



Tuesday, February 8, 2011

CS Education is fat and weak – 2

In my last post, we looked at the CS timeline as it is usually given. Now we start

Deconstructing the History of CS

with a view to figuring out why in a field so flush with cash, education is faring so badly.

Tuesday, February 1, 2011

CS Education is fat and weak – 1

Are

History of CS

and

CS Education

related?

Yes: More than they should be. Less than they should be.
More because things are a certain way because of context that led up to them.
Less because we just dont learn from our mistakes!

In this post we will cover the history as it is usually given. In the next post, we will deconstruct this history to see why CS education today is such a mess.

Friday, October 29, 2010

Towards 3 Dimensional Education

[A repost of a memo (between colleagues) I had written when I was a university teacher] It was written for other faculty-members and is still very sketchy out here.  The 3 dimensional education table is the main reason for exhuming it for this blog.

Grading Then and Now

For centuries grades have been 'marks-out-of-hundred'. The complaints
against this are:

Friday, February 26, 2010

Service and Product mindsets

The mindset of our best academic CS curricula is a product mindset.
Most people end up in a service company.
What’s the difference?