Dr. Jody Paul – Education – MSCD Courses Principles of Programming Languages |
jody@acm.org | ||
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: | |
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 |
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. |
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. |
A Concise Introduction to Computer Languages |
|
Software Language Engineering |
|
Programming Languages |
|
Course Support Website http://www.jodypaul.com/moodle/ REQUIRED |
|
Computation & Connectivity: |
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-AssessmentHands-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. ProjectsSeveral extensive projects are required of all participants. Details will be provided in class and on the course support website. CollaborationI 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 PeriodThe 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. GradingAlphabetical grades and status symbols are as defined by MSCD Academic Policies and Procedures: A — Superior (4 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:
|
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).