308: Organization of Programming Languages
(as of August 22, 2015)
McElfresh (pronounced mac' - el- fresh)
(checked more frequently) or mcelfreshsa @ longwood.edu
- TuTh 2-3:30pm
- or when I am in my office with the door open
- or by appointment
Other times may be announced in class or on the website.
Course Web Page:
of the handouts in this course will be available through this World
Wide Web address.
Canvas will be used for
submission of some assignments and recording of grades on individual
assessments. NOTE: Canvas does not always
calculate course grades correctly. The relative weights are
in this syllabus.
From the catalog:
"Topics include language and definition structure, data types
structures, control structures and data flow, run-time characteristics
and lexical analysis and parsing. Programming assignments will involve
the use of several different languages. Prerequisite: CMSC 208. 3
At the end of the course, a successful student will be able to:
- identify varying semantic aspects of langagues, including
parameter passing mechanisms and scoping rules
- contrast programming paradigms and give an example of each
- create simple programs in each of the programming paradigms
- identify the issues encountered for languages intended for
Textbooks: There is one required
textbook for this course.
Technology: It is
assumed that you have a laptop that you can bring to class and can
install software on if necessary. Much of the software to be
used is free. The software packages that are not
free alternatives that students may download and install.
- Programming Languages:
Principles and Practice, 3rd edition, by Louden
- Earlier editions of the book
may be okay, but exercises will be assigned from this edition.
There will be an
exercise handed out during many class periods. Some of these
will be completed during class and some will be
to be completed outside
of class. Note that some "homework" assignments will be due
NEXT CLASS PERIOD, while others may have a longer handin horizon,
depending on the nature of the assignment. Thus, some
assignments will be worth more than others.
In order to determine the
overall exercises grade, I will add up the number of points received on
exercises, and divide that number by the total number of points that it
was possible to recieve on exercises.
Each exercise will give not only a due date, but a due time.
Some exercises may be gone over in class, so you will need permission
to hand in asisgnments late. If I agree to accept an
assignment late, there may be a 50% penalty.
There will be quizzes
throughout the semester. These will typically take
the form of
short (5-15 minutes) sets of questions. There will be no
given. If more than 5 quizzes are given,
two quiz scores for each student will not be calculated into the course
There will be an in-class exam given on the following
There will be no makeup exams given without proper medical
Note: This exam is AFTER Grade Estimates are turned in on October 5.
Grade Estimates will be based on exercises and quizzes up to that
be a comprehensive
written exam. More details on this will be
announced as the time
- Thursday, December 10, 8-10:30am
SPECIAL NOTE: Exercises that
are not handed in, or quizzes and exams not taken will count as a 0.
Canvas does not always calculate these accurately.
relative weight of each item in determining
your course grade will be as follows:
||Course Grades will be assigned as
+'s will be assigned in the top 2 percentange points of the range.
|90 - 100
|80 - 89.9
|B-, B, B+
|70 - 79.9
|C-, C, C+
|60 - 69.9
|D-, D, D+
| 0 -
-'s will be assigned in the bottom 3 percentange points of the
Unless otherwise specified, all work is assumed to be your
are encouraged to discuss the exercises with other students, but you
write up your own solutions. Some guidelines:
be made in class to describe these issues. If you have any
as to what is appropriate and what is not, please ask me about it.
- When you
with other students, you must indicate this on your submission - by
a note at the top or bottom indicating with whom you consulted and a
of the level of consultation.
- When using a calculator or
you are expected to type everything in yourself.
- You should never be using "Save As" for another person's
computer files or emailing your work to another student for them to
modify and hand in.
exercises may explicitly allow (or even require) pair or group-work.
In these cases, it is assumed that each person contributed
the work being submitted.
- When doing
computer programming, you will often be utilizing someone else's ideas
or code and modifying them to be your own. In this case, you
fully document this in the program comments as well as any other
documentation. For some guidelines, see the Academic
Honesty in Computer Programming handout.
Longwood University is an academic community that
subscribes to an honor system.
By accepting membership in this community, we all assume the obligation
to be trustworthy in all pursuits. Violations may receive
grade penalties in the course and be referred
the Honor Board, which may impose additional penalties.
Tentative Topic outline:
||Aug 24 - 28
||Overview; Syntax specification
||Aug 31 - Sept 4
||Sept 7 - 11
||Sept 14 - 18
||Functional Programming; Lambda Calculus
||Sept 21 - 25
||Sept 28 - Oct 2
||Oct 5 - 9
||Oct 12 - 16
Break; Logic Programming
||Oct 19 - 23
||Oct 26 - 30
||Nov 2 - 6
||Parallel Programming Constructs
||Nov 9 - 13
||Parallel Programming Constructs
||Nov 16 - 20
||Nov 23 - 27
||Nov 30 - Dec 4
A detailed day by day calendar will be kept up-to-date on the course