TEXTBOOK:
Concepts of Programming Languages seventh edition, by Robert Sebesta.
Addison Wesley Publishing.
Additional articles as provided.
| INSTRUCTOR: | Stephen Fyfe | OFFICE: | 231 Vermeer Science Center |
| PHONE: | 628-5305 | ||
| HOME | 628-9955 | ||
| EMAIL: | fyfes@central.edu | ||
| OFFICE HOURS: | MWF | 11:00 - 12:00 | |
| T/TH | 1:00 - 3:00 | ||
| Other times by appointment, or just stop in | |||
COURSE DESCRIPTION: A study of the organization of programming languages including syntax, semantics, data typing, data structuring facilities, exception handling and sequence control. Different language paradigms will be examined including object-oriented, functional and logic.
COURSE OBJECTIVES: The objectives for this course include:
COURSE PROCEDURES: This course will use lecture, discussion, and laboratory work in the presentation of the course material. A typical class session might include an introductory lecture, followed by lab time where students either work on exercises or write a short program to investigate some question related to the topic of the day. The class would end with a discussion of the investigation, and an assignment for students to investigate other questions related to the topic. This format will vary as needed through the semester. Three tests and a final exam will be given through the semester. Assignments are likely to be one of two types: they will be either be short written assignments or short programming assignments. The written homework will also test the students ability to communicate about computer science in addition to testing the students understanding of the topic (i.e. answers will likely need to be more than one sentence!).
SOFTWARE/HARDWARE: Most or all of the work will be done with 3 different languages: Java, Scheme, and Prolog. Free compilers/Interpreters will be used, and will be available for students to download and use on their computers at home. In some instances we will study a language, but may not write any programs in that language.
GRADING PROCEDURES: Students will be evaluated on their understanding of the concepts being covered in class, and their ability to apply those concepts in homework problems and programming projects.
The final grade will be determined by the following distribution:
| Programming Problems and Written Homework | 40% |
| 3 Tests | 45% |
| Final | 15% |
and the following TENTATIVE scale will be used to determine the final grade
| 94 - 100 | A | 70 - 74 | C |
| 90 - 93 | A- | 67 - 69 | C- |
| 87 - 89 | B+ | 62 - 66 | D+ |
| 83 - 86 | B | 58 - 61 | D |
| 80 - 82 | B- | 55 - 57 | D- |
| 75 - 79 | C+ | 00 - 54 | F |
Notification of participation in college sanctioned events. Mock Trail participants, choir tour participants, athletes, and others who must miss a class for participating in a college sanctioned event are expected to notify me in advance and complete work including tests in advance of the absence. It is the student's responsibility to communicate with me in advance regarding their absences and determine a schedule for make up work.
Academic Honesty. Collaboration in Computer Science, as in almost any field, is very important. It is important that individual students learn the material. When working on homework assignments, you are encouraged to discuss your answers with other students. However, you should understand the answers you are turning in! When developing a program it is often beneficial to talk with others to get their input, however you should not be turning in the work of another individual or group. It is acceptable to look at another individuals code if you are assisting them. You should not, however, let someone look at your code in order to show them how you did it, or to give them specific instructions on how they should change their code (other than to find syntactical errors). If you are getting help, you should not be looking at someone else's code!
Plagiarism and cheating of any form are serious offenses and may result in an F for the assignment, the course, or expulsion from the college. The details of Central's Academic Integrity policy are found in the Student Handbook, on the web. A copy will be sent to you via e-mail during the first week of the semester. It is your responsibility to read and understand the contents of that policy before you submit work to be graded. Questions regarding the policies and enforcement of the policies may be addressed to me during class or during office hours.
ADA Policy
Central College abides by interpretations of the Americans with Disabilities
Act and Section 504 of the Rehabilitation Act of 1973 that stipulates no
student shall be denied the benefits of an education “solely by reason of a
handicap.” Disabilities covered by law include, but are not limited to,
learning disabilities, hearing, sight or mobility impairments, and other
health related impairments. If you have a documented disability that may have
some impact on your work in this class and for which you may require
accommodations, please see me and Nancy Kroese, Director of Student Support
Services and Disability Services Coordinator, (x5247) so that such
accommodations may be arranged.
COURSE SCHEDULE: The following is a TENTATIVE order in which the topics of the class will be covered. Changes may be made during the semester as needed. Check the webpage for links to pages which will list the homework problems and possibly give more information about some of the problems.
| Week | Topic | Chapter |
| 1 | Introduction Language Evaluation Criteria History of programming languages |
Chapter 1 Chapter 2 Dobbs Articles |
| 2 | Describing Syntax BNF grammars XML documents |
Chapter 3 |
| 3 | Lexical Analysis and Parsing Parsing an XML document |
Chapter4 |
| 4 | Names, Binding, Type Checking, and Scope | Chapter 5 |
| 5 | Data Types Expressions and Assignment |
Chapters 6, 7 |
| 6 | Chapter 8 | |
| 7 | Subprograms | Chapter 9 and 10 |
| 8 | Abstraction and Encapsulation Concurrency overview Threads |
Chapter 11 Chapter 13 - threads |
| 9 | SPRING BREAK | |
| 10 | Concurrency message passing and mpi |
Chapter 13 - mpi |
| 11 | More Concurrency | Chapter13 - Producer/Consumer |
| 12 | Fundamentals of Functional Languages | Chapter 15 |
| 13 | TEST II Functional languages |
Chapter 15 |
| 14 | Functional languages | |
| 15 | Final Project | Final Project |
| 16 | Final Project | Chapter 16 |
| 17 | Final Exam |