Jody Paul (Logo) Dr. Jody Paul – EducationMSCD Courses
Principles of Programming Languages
jody@acm.org    
     
Link to Home Page for Jody Paul Link to the Education section main page Link to Software Engineering section Link to Music section Link to Recommendations section
    Link to MSCD Courses page        

Course Information

Title: Principles of Programming Languages
Institution: Metropolitan State College of Denver
Semester: Fall 2009
ID [CRN]: CS 3210 [53912]
Meeting Times:

Tuesdays & Thursdays, 1:00 PM - 2:50 PM

Location:

Science 111

Prerequisites: CS3050 with grade of C or better or permission of instructor
Course Website: http://www.jodypaul.com/cs/proglang
Course Support: http://www.jodypaul.com/moodle/
Instructor: Dr. Jody Paul (schedule & office hours)
E-mail: jody@cse.mscd.edu
Office: Science 225C
Campus Mail: Campus Box 38

Course Description:

This course provides the opportunity to experience and analyze four modern programming paradigms: procedural, functional, logical and object-oriented. It traces the evolution of programming languages and identifies contributions made by several significant languages and their successors. The course also includes study of specific issues of programming language implementation (e.g., parsing).
Prerequisites: CS 3050 with grade of C or better, or permission of instructor.

Motivation:

A programming language is a computer scientist's principle interface with the computer. More than just knowing how to program well in a single language, computer scientists and software engineers need to understand the various features and styles of programming promoted by different languages and language paradigms.

Understanding the programming languages available, their constructs and design tradeoffs, enables even the single-language programmer to have greater versatility and makes learning new languages far easier.

Software engineers will often be expected to write a custom language of some sort (e.g., XML schema, small scripting language, configuration file format). Knowledge of the core principles of programming languages will help them produce better languages.

Resources:

 
Image of Book Cover - Concepts of Programming Languages / Link to Amazon.com

A Concise Introduction to Computer Languages
by Daniel Cooke
Brooks/Cole (2003)
ISBN 0-534-37695-9
Available at Auraria Book Center & Amazon, Alibris, Textbooks.com
REQUIRED

Image of Book Cover - Concepts of Programming Languages / Link to Amazon.com

Software Language Engineering
by Anneke Kleppe
Addison-Wesley (2009)
ISBN 0-321-55345-4
Available at Auraria Book Center & Amazon, Alibris, Textbooks.com
REQUIRED for Elective Assignments/Projects

WikiBooks Logo

Programming Languages
Programming Languages Bookshelf
Wikibooks: The Open-Content Textbooks Collection
RECOMMENDED

Link to  Course Support Site Course Support Website
http://www.jodypaul.com/moodle/
REQUIRED

Computation & Connectivity:
All participants receive access to technology resources that are required for accessing the World Wide Web and e-mail by virtue of being students at MSCD (see: http://www.mscd.edu).

Policies:

Significant information will be disseminated during class sessions or on the course support website that you are responsible for whether or not you attended the sessions or accessed the website. That is, the textbooks do not contain all of the information necessary to successfully complete the course.

Assignments, Practice & Self-Assessment

Hands-on experience and extended practice with the programming paradigms and languages is vital to applying course knowledge to real-world applications. Assignments represent your opportunity to practice applying the concepts and thereby enhance your understanding. Details will be provided in class and on the course support website.

An individual write-up is required for each assignment, in which you are expected to reflect on the experience of working on the assignment and report personal insights and observations.

Projects

Several extensive projects are required of all participants. Details will be provided in class and on the course support website.

Collaboration

I encourage collaboration and regard it as essential aspect of Computer Science and Software Engineering. You are not expected to learn the course content in isolation. Collaborative learning, study and discussion with fellow students concerning course information, materials, assignments, and reviewing for exams is encouraged. All materials that are submitted for grading purposes must have all collaboration clearly identified, including specification of individual contributions where appropriate. Note that collaboration is not acceptable during any exam.

Quiet Period

The 24-hour period immediately preceding the due date/time for each assignment and project is considered a quiet period. During that 24-hour interval, no questions directly referencing that specific assignment/project will be addressed by the professor. All students are strongly encouraged to complete significant work on assignments and projects well in advance of this quiet period.

Grading

Alphabetical grades and status symbols are as defined by MSCD Academic Policies and Procedures:

A — Superior (4 quality points / semester hour)
B — Above Average (3 quality points / semester hour)
C — Average (2 quality points / semester hour)
D — Below Average but Passing (1 quality point / semester hour)
F — Failure (0 quality points / semester hour)

Students who wish to pursue a grade of "A" (Superior) are expected to engage in and submit a set of elective assignments and projects in addition to achieving superior performance on the required assignments, projects and exams.

N.B. Elective assignments and projects only apply toward distinguishing Superior from Above Average. Thus, for example, they cannot be used to "make up" for poor performance on required assignments and projects.

The final course grade is determined by combining scores on assignments, projects and exams. You are guaranteed a grade no lower than that computed by the following distribution of total points and weighted conversion to letter grade:

Distribution:
Required Assignments & Projects = 40%
Elective Assignments & Projects = 10%
Midterm = 20%
Final Exam = 30%

Weighted conversion to letter grade
100-90%: A;  89-80%: B;  79-70%: C;  69-60%: D;  59-0%: F

 

Official Announcements:

Official policies applicable to all courses: http://cs.mscd.edu/metadot/index.pl?iid=2249

Also see the MSCD College Catalog at http://www.mscd.edu/academic/catalog/ for official announcements, including Academic Policies and Procedures and Student Rights and Responsibilities, and the Academic Calendar at http://www.mscd.edu/academic/acal.htm for additional official dates and deadlines, including the last dates to withdraw and receive NC (with and without faculty signatures).

Valid HTML 4.01 Transitional ©2008,2009 Dr. Jody Paul – All Rights Reserved