COMP 3050
Programming Languages
3 Credit Hours

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:

  1. To provide an overview of key concepts used in developing modern programming languages.
  2. 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.
  3. To provide sufficient formal theory illustrating where programming language design fits into computer science discipline and research.
  4. To improve the student's ability to understand the significance and relationship between the source code and program implementation (i.e. execution)
  5. 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:
The minimum requirements can be found at http://www.rodp.org/students/hardware_software.htm.
Software Requirements:
The minimum requirements can be found at http://www.rodp.org/students/hardware_software.htm
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