|
Course Information |
|
Course Description: |
In this
course students will be exposed to the analysis and comparison of
programming languages, their characteristics and implementation. Various
concepts and principles will be discussed.
|
|
Course Objectives: |
- To
provide an overview of key concepts used in developing modern
programming languages.
- To
highlight several languages, which provide those features so that
students will be able to choose appropriate programming language
and use it to solve a particular task.
- To
provide sufficient formal theory illustrating where programming
language design fits into computer science discipline and research.
- To
improve the student's ability to understand the significance and
relationship between the source code and program implementation (i.e.
execution)
- To
increase the capacity to express ideas and improve the ability to
learn a new language.
|
|
Prerequisites
and Corequisites: |
It is
assumed that students taking this course are already familiar with a
programming language like C, C++ or Java.
|
|
Course
Topics:
|
|
Week |
Topics
|
Text
Reference |
|
1
|
Translator Architecture and grammars |
|
|
1.1
Programming language design and language organization |
1 -
1.3.2 |
|
1.2
Hardware and software architecture |
1.4, 2.1 |
|
2
|
Formal
grammars |
|
|
2.1
Context free languages |
3.1 -
3.3.1 |
|
2.2
Finite state languages |
3.3.2 |
|
3
|
Context
free semantics |
|
|
3.1
Push-down automata and context free grammars |
3.3.4 -
4.1 |
|
3.2
Semantics |
4.2.1 -
4.2.4 |
|
4
|
Encapsulation |
|
|
4.1
Elementary data types |
5.1 -
5.3 |
|
4.2
Structured data |
6.1 |
|
5
|
Data
typing |
|
|
5.1
Abstract data types |
6.2 -
6.3 |
|
5.2 Type
equivalence |
6.4 |
|
6
|
Inheritance |
|
|
6.1
Inheritance |
7.1 -
7.2.4 |
|
6.2
Polymorphism |
7.3 |
|
7
|
Expressions |
|
|
7.1
Expressions |
8.1 -
8.2 |
|
7.2
Basic statements |
8.3.1 -
8.3.2 |
|
8
|
Prime
Programs |
|
|
8.1
Prime programs |
8.8.3 |
|
8.2
Logic programming |
8.4 |
|
9
|
Sub
Program Control |
|
|
9.1
Activation records |
9.1 -
9.2 |
|
9.2
Parameter transmission |
9.3 |
|
10
|
Storage
Management |
|
|
10.1
Stack versus Heap storage |
10.1 -
10.3, 10.4.2 |
|
10.2
Garbage Collection |
10.4.3 -
10.4.1 |
|
11
|
Other
Control Structures |
|
|
11.1
Exception handling |
11.1 |
|
11.2
Parallel programming |
11.2.1 |
|
12
|
Parallel
Execution Continued |
|
|
12.1
Guarded commands |
11.2.2 |
|
12.2
Synchronization |
11.2.4 -
11.2.5 |
Lectures
should be taken in the sequence of course topics given above. Each
module should be completed prior to moving to the next module.
|
|
Specific
Course Requirements:
|
Students
will also be required to have Microsoft Visual Studio 6.0 installed in
their computers. This will be used during program implementation
written in C++.
|
|
Textbooks, Supplementary Materials, Hardware and Software Requirements |
|
Required
Textbooks:
|
Please visit the
Virtual Bookstore to obtain textbook information for this course:
http://rodp.bkstr.com
|
|
Supplementary Materials:
|
Notes,
handouts, presentations as posted on the bulletin board
|
|
Hardware
Requirements:
|
|
|
Software
Requirements:
|
|
|
Instructor Information |
Please see
the separate page inside the course to find instructor contact
information as well as a statement of virtual office hours and other
communication information.
|
|
Assessment and Grading |
|
Testing
Procedures:
|
Tests,
assignments, and homework will be on individual basis. The time and place
for these will be posted on the bulletin board and will be made well in
advance of due dates. All tests, assignments, and homework must be turned
in on time to receive full credit.
|
|
Grading
Procedure:
|
Grades will
be based on performance on tests, assignments, and homework.
|
|
Grading
Scale:
|
90 - 100 --- A
80 - 89 --- B
70 - 79 --- C
60 - 69 --- D
Below 60 --- F
|
|
Assignments and Participation |
|
Assignments
and Projects:
|
|
This
information will be provided via WebCT and other websites.
|
|
Class Participation: |
-
Students must check the bulletin board regularly for announcements.
-
Students must participate in collaborative or chat room sessions.
-
Students must communicate with the instructor on a regular basis
either by email or telephone call
|
|
Punctuality:
|
- No
extensions will be allowed for deadlines on projects, homework and
or assignments.
-
Students are expected to be on time for any scheduled session or
collaborative assignment.
|
|
Course Ground Rules |
-
Plagiarism in any form will not be tolerated and will result in an "F"
grade.
- Missed
assignment and homework will not be condoned and will not receive
credit unless it has been agreed upon with the instructor. It is the
responsibility of the student to provide the instructor an
acceptable documentation before a review of any missed work.
Communicate with the instructor if any delay will be anticipated.
-
Assignments, homework and projects must be typed and submitted
electronically.
-
Copying and cheating will not be tolerated and will result in a
failing grade.
-
Students are expected to communicate with other students in team
projects.
-
Students must learn how to navigate in WebCT, regularly check for
course announcements.
- Use
the assigned college or university e-mail address as opposed a
personal e-mail address.
-
Address technical problems immediately. See section on technical
support below
|
|
Guidelines for Communications |
|
Email:
|
- Always
include a subject line.
- Remember
without facial expressions some comments may be taken the wrong way. Be
careful in wording your emails. Use of emoticons might be helpful in
some cases.
- Use
standard fonts.
- Do not
send large attachments without permission.
- Special
formatting such as centering, audio messages, tables, html, etc. should
be avoided unless necessary to complete an assignment or other
communication.
- Respect
the privacy of other class members
|
|
Discussion
Groups:
|
- Review
the discussion threads thoroughly before entering the discussion. Be a
lurker; then a discussant.
- Try to
maintain threads by using the "Reply" button rather starting a new
topic.
- Do not
make insulting or inflammatory statements to other members of the
discussion group. Be respectful of other's ideas.
- Be
patient and read the comments of other group members thoroughly before
entering your remarks.
- Be
cooperative with group leaders in completing assigned tasks.
- Be
positive and constructive in group discussions.
- Respond
in a thoughtful and timely manner.
|
|
Chat:
|
-
Introduce yourself to the other learners in the chat session.
- Be
polite. Choose your words carefully. Do not use derogatory statements.
- Be
concise in responding to others in the chat session.
- Be
prepared to open the chat session at the scheduled time.
- Be
constructive in your comments and suggestions.
|
|
Web
Resources:
|
|
|
|
Library |
The
Tennessee
Virtual Library is available to all students enrolled in the Regents
Degree Program. Links to library materials (such as electronic journals,
databases, interlibrary loans, digital reserves, dictionaries,
encyclopedias, maps, and librarian support) and Internet resources
needed by learners to complete online assignments and as background
reading must be included in all courses.
|
|
Students With Disabilities |
Qualified
students with disabilities will be provided reasonable and necessary
academic accommodations if determined eligible by the appropriate
disability services staff at their home institution. Prior to granting
disability accommodations in this course, the instructor must receive
written verification of a student's eligibility for specific
accommodations from the disability services staff at the home
institution. It is the student's responsibility to initiate contact with
their home institution's disability services staff and to follow the
established procedures for having the accommodation notice sent to the
instructor.
|
|
Syllabus Changes
|
The
instructor reserves the right to make changes as necessary to this
syllabus. If changes are necessitated during the term of the course, the
instructor will immediately notify students of such changes both by
individual email communication and posting both notification and nature
of change(s) on the course bulletin board.
|
|
Technical Support
|
|
Telephone
Support:
|
If you are
having problems logging into your course,
timing out of your course, using your course web site tools, or other
technical problems, please contact the AskRODP Help Desk by calling
1-866-550-7637 (toll free)
or go to the AskRODP website at:
http://help.rodp.org
|