% CSci 658-01: Software Language Engineering \
  Course Development
% **H. Conrad Cunningham**
% **4 May 2018**
 
| Copyright (C) 2018, 
  [H. Conrad Cunningham ](<http://www.cs.olemiss.edu/~hcc>)
| Professor of 
  [Computer and Information Science ](<https://www.cs.olemiss.edu/>)
| [University of Mississippi ](<http://www.olemiss.edu>)
| 211 Weir Hall
| P.O. Box 1848
| University, MS 38677
| (662) 915-5358

# History

Prof. H. Conrad Cunningham developed and taught Engr 691 Special
Topics courses on this topic in the 2009 and 2011 Spring semesters.
Those courses used the Scala language and focused on design and
implementation of domain-specific languages (DSLs).  Cunningham based
some of the DSL ideas on the Fall 2006 offering of a Engr 692 Special
Topics course on Ruby and Software Development. 

Cunningham subsequently created CSci 658, Software Language
Engineering, based on the previous prototypes.

For the Fall 2013 offering of CSci 658, Cunningham modified the course
to use the Lua language and focus attention on design and
implementation of traditional programming constructs and interpreters
using Lua.  He explored ideas for a planned revision of the
undergraduate core course, CSci 450 Organization of Programming
Languages. Some of this content was used in the Fall 2014 and Fall
2016 offerings of CSci 450.

For the Spring 2018 offering of CSci 658, Cunningham focused again on
the DSL content from Spring 2011 but developed new examples that used
Python 3.6+ rather than Scala or Lua. Because of its importance to the
Department's growing data science focus, Python seemed to be a
pragmatic choice for most students. Cunningham may also introduce
Python 3 based content in future course offerings.
