MUMPS Programming II Student Guide
Page 1 of 1

Author:  tlwiechmann [ Thu Apr 21, 2011 5:01 am ]
Post subject:  MUMPS Programming II Student Guide

I've release the MUMPS Programming II Student Guide for you review and use.

Here's how to download the guide.

1. Click on this link:
2. Right click on the file you want and choose the Download function.

The following describes the course content. Again, it is meant to be instructor lead.

The main emphasis of the MUMPS Programming II course is code construction techniques commonly used in MUMPS. By the end of this course, students will have written various versions of a data entry routine. Each version exemplifies a technique that generalizes MUMPS code. Such techniques include indirection, variable stacking, parameter passing, block structures, boilerplate code plus data dictionaries, and routine generators.
Unit 1 provides a review of the concept of an MUMPS expression, which is so important to understanding indirection. Emphasis is placed on variable stacking, parameter passing and block structuring techniques.
Unit 2 covers structured programming techniques including variable stacking, parameter passing, extrinsic functions, block structuring and recursion.
Unit 3 describes various traditional data structures, such as stacks, queues and linked lists. It demonstrates how they may be implemented using MUMPS arrays.
Units 4, 5 and 6 develop the concept of indirection and how it may be used to generalize software. Unit 4 concentrates on the indirection operator and provides many examples of its different uses. Unit 5 presents the technique of indirectly referencing data dependent information from a Data Dictionary. Unit 6 focuses on the XECUTE command and demonstrates how one MUMPS routine may create another MUMPS routine. These study units also introduce the concept of an Application Generator.
Programming exercises are given throughout this course so the students may learn techniques by applying them to real programs. A very literal version of a data entry routine is gradually transformed into an all-purpose data entry routine, as data dependent information is separated from the basic tasks common to all data entry routines.
Both visual diagrams and hands-on programming activities supplement the verbal descriptions used by the instructor to explain each concept.

Author:  tlwiechmann [ Thu Apr 21, 2011 8:16 am ]
Post subject:  Re: MUMPS Programming II Student Guide

Whoops! Forgot to submit the exercise routines for the course.

The primary goal of the first MUMPS course was to get the student proficient in MUMPS with no emphasis on generalization. Routines were written very literally. The goal of this course is to take the student through workshop exercises that demonstrate how to generalize a set of routines. This is done by giving the student the literally written routines created in the first course and then through two distinct phases, take the student through the process of generalizing to the point where they are driving out of a data dictionary.

Please note that, in my view, these routines (an all code) should be written according to a set of conventions which they weren't. First and foremost, all command, SV, SSVN and function names should be spelled out in full, one command per line, etc.

Additionally, these routines are dated in one glaring way - the client is presumed to be a dumb terminal. Last I heard, we've progressed beyond that. One big enhancement that should be made to the course is programming for Model-View-Controller (MVC) and Web based environments.

Author:  whitten [ Mon Apr 25, 2011 2:41 pm ]
Post subject:  Re: MUMPS Programming II Student Guide

I like the way that you have a progression from
1. stand-alone code that has all knowledge about its function in the code
2. generalized code that uses the database to store knowledge about its function
3. object oriented code that uses libraries to store functions used in operation

This is a clear and simple progression in my mind.
I think the progression could include separating out the user-interface, which you have alluded to.
Then generalizing and causing it to be data driven would be useful.

Perhaps the next progression is to make explicit the contracts and expectations the code has between the code and data elements so that this also can be generalized or data driven.

I'm eager to see what you are thinking about, and how it will all fit together.


Author:  tlwiechmann [ Mon Apr 25, 2011 3:28 pm ]
Post subject:  Re: MUMPS Programming II Student Guide

Thanks for your interest David.

I believe the progression culminates in a data driven scenario. Because, at the time, we taught lots of VA programmers, it was important to get them to understand this progression. It made File Manager code much more comprehensible.

However, today, a transition into the Object Oriented environment would be more applicable, particularly EsiObjects, which was designed to be a natural evolutionary step of structured, generalized MUMPS.

Author:  staxy [ Mon Sep 17, 2012 7:22 am ]
Post subject:  Re: MUMPS Programming II Student Guide

Is the link broken?

Author:  tlwiechmann [ Fri Sep 21, 2012 4:22 am ]
Post subject:  Re: MUMPS Programming II Student Guide

Sorry for not replying. Seems my subscription notification is not working anymore.

Yes, the site has been deleted. I modified the post below with the new location containing all the lecture workshop guides and routines.

Let me know if you have problems.


Author:  NGrimes [ Tue Nov 06, 2012 5:54 pm ]
Post subject:  Re: MUMPS Programming II Student Guide

Can you repost the link to these documents please?

Author:  tlwiechmann [ Wed Nov 07, 2012 10:14 am ]
Post subject:  Re: MUMPS Programming II Student Guide

Documents are here:

Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group