SYLLABUS CMPS 5113: Advanced Programming Languages Concepts

advertisement
SYLLABUS
CMPS 5113: Advanced Programming Languages Concepts
Techniques for specifying the syntax and semantics of programming languages are introduced. Language concepts,
such as data structuring, information binding, control structures, execution environments and extensibility are
examined by studying scientific, data processing, list processing, and multi-purpose languages. Programming
assignments are in the various languages.
Instructor:
Office:
Office phone:
E-mail:
Office Hours:
Dr. Catherine V. Stringfellow
Bolin Science Hall, Room 128C
397-4578
catherine.stringfellow@mwsu.edu
MWF 11:00am-12pm, 1:30-2:30pm, TR 9:30-11am, 2:30-3:30pm
and by appt
Prerequisites: CMPS 2084 and concurrent enrollment in CMPS 2133 or permission of instructor.
Required Text: Programming Languages: Principles and Practrice 3rd ed by Louden
Texts in Library : Be nice, SHARE and do not check out, just go over and read/Xerox what you need.
Principles of Programming Languages: Design, Evaluation and Implementation of Programming Languages by
MacLennan ( A good source for lecture material.) QA76.7.M33 1983
Programming languages : design and implementation by Pratt QA76.7 .P7 1984
FORTRAN, LISP, PROLOG, Ada, Perl, Java, as well as a few others.)
(A good brief in-depth study of
The library has many books (including e-books) available on specific programming languages. Check those out!!!
General Course Objectives:
a) To develop an understanding of the organization of programming languages, especially the run-time behavior
of programs;
b) to introduce the formal study of programming language specification and analysis;
c) to introduce the students to a variety of programming languages, especially those which were instrumental in
the evolution of programming languages
d) to introduce the concepts associated with the design and development of language processors, such as lexical
analysis, syntax analysis, parsing, semantics, and code generation.
Specific Course Objectives: Upon completion of this course students should be able to:
a) describe at least two methods of programming language syntax specification;
b) write moderately complex programs in at least four new programming languages and know how to use
reference manuals;
c) describe the run-time behavior of both block-structured and non-structured programming languages;
d) understand concepts of variables, expressions, statements, typing, scope, procedures, data types, exception
handling, and concurrency and how they are realized in different programming languages.
Instructional Method: Primarily lecture. Students and the instructor will share their experiences of coding
programs in different languages. Students will be grouped in pairs for the different programming assignments by the
instructor. Class participation is highly recommended.
Course Assignments and Evaluation: Students will be required to write four moderately complex programs in four
different languages. There might be a few very small programming assignments that will aid in developing the larger
assignments. These programs will involve applying some of the general concepts learned in class. Industry level
documentation will also be expected. A short paper and a few homework assignments will also be required.
Final grades will be based on the following criteria.
activity
written assignments and participation
small programming assignments
paper
programming assignments
midterm
final
percentage of grade
10%
5%
10%
40%
15%
20%
Grading Scale is as follows based on percentage.
letter grade
A
B
C
D
F
percentage earned
90-100
80-89
65-79
60-64
0-59
Makeup Exams and Quizzes: There is one midterm and one final exam. The only acceptable reason for missing
an exam is with a valid university excuse (e.g., excuse from the doctor, death in the immediate family, etc.)
Documentation will be required. A makeup exam will only be given to those students who have a valid excuse. If
you know ahead of time that you will miss an exam, please see me.
Program Due Dates: Programming assignments are due at the beginning of class. Any program not handed in at
the beginning of class will be considered late (unless the time on the header page is before the class starting time).
Late labs are penalized as follows. If the lab is turned in within 24 hours from the start of class on the due date, then
10% of the maximum possible lab score will be deducted from the lab grade. If the lab is turned in after the 24 hour
period, but before the start of the first class following the class on the due date, then the penalty is 30% of the
maximum possible score. Programs turned in after the start of the first class following the class on the due
date will not be accepted. One exception to this is the last programming assignment, it must be turned at the
start of class on the last class meeting; there will be no late credit for this programming project.
Lab Grading Policy: The following will be considered in grading a programming assignment.
i.
ii.
iii.
iv.
v.
correct results
programming method
program style (use of language's special features)
comments
user friendliness and output format (I will run your programs)
Sequence of Topics:
week
Jan
14
21
1
Feb
4
11
18
25
Mar
4
11
18
25
Apr
1
8
15
22
29
May
2
topics
Readings
Programs
Course Overview; Early History
Pseudocode Language; FORTRAN
Language Design Issues
Chap 1
suppl.
Chap2
prog 1 assg
Syntax
OOP Concepts ; C#;
C# Files; Basic Semantics; Data Types
Data Structures
Chap 6
Chap 5, suppl.
Chap 7 and 8
Chap 8
C# Arrays; C# namespaces
SPRING BREAK
REVIEW; MIDTERM
Abstract Structures; PERL;
slides (chap 11.3 has general concepts)
Perl2; Seq. Control.;
Logic/ Programming; PROLOG
Func.Prog. and LISP
C# Exceptions; Subprograms
Scoping; Parallelism; REVIEW
suppl ; Chap 9.2-9.
Chap 4
Chap 3
Chap 9.5, 10
Chap 10, 12
FINAL Tuesday, May 7 @ 3:30-5:30pm
Chap11
prog 1 due
prog 2 assg
prog 2 due
prog 3 assg
prog 3 due
prog 4 assg
prog 4 due
Download