Anda di halaman 1dari 12

Columbia College Online Campus

P a g e |1

CISS 445
Programming Languages
Early Fall 2015 Session 15-51
August 17 October 10, 2015
Course Description
Survey and comparison of various programming languages and the concepts used in designing,
specifying, and evaluating languages. Topics include formal specification, language constructs,
translation, binding and binding times, and logical and functional programming.
Prerequisite: CISS 350 or CISS 358
Proctored Exams: Final

Textbooks
Programming Languages Principles and Paradigms 2nd edition.
By Allen B. Tucker and Robert E. Noonan (McGraw Hill)
ISBN: 978-0-07-286609-4
Textbooks for the course may be ordered from MBS Direct. You can order
online at http://direct.mbsbooks.com/columbia.htm (be sure to select Online Education
rather than your home campus before selecting your class)
by phone at 800-325-3252
For additional information about the bookstore, visit http://www.mbsbooks.com.

Course Overview
The main objective of CISS 445 is to provide students with an introduction to the main elements of
contemporary programming languages and provide the necessary tools to enable each student to be
able to critically evaluate programming languages.

Columbia College Online Campus

P a g e |2

Technology Requirements
Participation in this course will require the basic technology for all online classes at Columbia
College:

A computer with reliable Internet access,


a web browser,
Acrobat Reader,
Microsoft Office or another word processor such as Open Office.

You can find more details about standard technical requirements for our courses on our site.

Course Objectives

To understand formal methods for describing language syntax, language design issues and
tradeoffs, bindings and binding times, lexical analysis and parsing, and a wide variety of language
constructs and associated implementation issues.

To explore a variety of languages including procedural, functional, and logic languages.

Measurable Learning Outcomes

Explain how language syntax is defined using formal methods such as Backus Normal Form
(BNF) and Extended Backus Normal Form (EBNF).
Identify the main issues and tradeoffs one must consider when designing new programming
languages.
Identify the language constructs that must be addressed when designing new programming
languages.
Explain how to perform lexical analysis and parsing.
Explain binding and binding times.
Identify the characteristics associated with procedural, functional, and logic programming
languages.
Create programs using procedural, functional, and logic programming languages.Grading

Grading Scale

Grade Weights

GRADE

POINTS

PERCENT

ASSIGNMENT

POINTS

PERCENT

522-580

90-100

Discussion

160

28

464-521

80-89

Dropbox Assignments

80

14

406-463

70-79

Quizzes

100

17

348-405

60-69

Research Paper

120

21

0-59

Final Exam

120

21

Total

580

100

000-404

Columbia College Online Campus

P a g e |3

Schedule of Due Dates


WEEK
1

ASSIGNMENT

DUE DATE

Discussion Question 1

10

Wednesday

Discussion Question 2

10

Wednesday

Dropbox Assignment 1

10

Sunday

Discussion Question 3

10

Wednesday

Discussion Question 4

10

Wednesday

Dropbox Assignment 2

10

Sunday

Quiz 1

25

Sunday

Sunday

Proctor Information

POINTS

Discussion Question 5

10

Wednesday

Discussion Question 6

10

Wednesday

Dropbox Assignment 3

10

Sunday

Discussion Question 7

10

Wednesday

Discussion Question 8

10

Wednesday

Quiz 2

25

Saturday

Dropbox Assignment 4

10

Sunday

Discussion Question 9

10

Wednesday

Discussion Question 10

10

Wednesday

Dropbox Assignment 5

10

Sunday

Discussion Question 11

10

Wednesday

Discussion Question 12

10

Wednesday

Quiz 3

25

Sunday

Dropbox Assignment 6

10

Sunday

Discussion Question 13

10

Wednesday

Discussion Question 14

10

Wednesday

Dropbox Assignment 7

10

Sunday

Research Paper

120

Sunday

Discussion Question 15

10

Wednesday

Discussion Question 16

10

Wednesday

Quiz 4

25

Friday

Dropbox Assignment 8

10

Saturday

Proctored Final Exam

120

Saturday

Total

580

Columbia College Online Campus

P a g e |4

Assignment Overview
Readings should be completed prior to submitting assignments for the week.
Discussions These are an opportunity for us to discuss specific questions and topics that arise
from the assigned readings or applications of the newly acquired information. You should read
others postings, including mine.
For each discussion question/topic, you are required to post your initial response, or answer to the
question/topic, and respond to a minimum of 3 of your classmates initial responses for each
discussion question. Each posting should be well thought out and add value to the overall discussion.
Make sure you use the proper citation with regards to your sources.
Your initial posting is due by midnight CST on Wednesdays to give your classmates sufficient time to
respond. When responding to postings, keep in mind that a late Sunday posting is not sufficient, as
that type of posting doesnt provide time for your classmates to read it or respond.
Dropbox Assignments These assignments assist you in applying the information that you are
learning from the assigned readings.
Each assignment will be graded on the basis of accuracy, completeness, and neatness. These
assignments must be submitted via the course Dropbox.
Quizzes There will be four timed, open book quizzes in the course on various chapters of the
textbook to evaluate comprehension of assigned reading.
Exam You will need to complete a Final exam, which is proctored, closed book and notes, and
computerized (available via the Quizzes area of the course). The exam will become available on
Monday and must be completed by 5:00 p.m. CT Saturday of the week assigned.

Course Schedule
Week 1 Overview
Reading Assignment
Chapter 1
Discussion Assignments
Due midnight Wednesday
Discussion 1
Introduce yourself to the class. Include your name, profession, hobbies, and any other
information that you would like to share.
Discussion 2 Exercise: 1.4 page 21
Give a feature of C, C++ or Java that illustrates orthogonality. Give a feature different from
the one discussed in the text that illustrates non-orthogonality.
Dropbox Assignment 1
Due midnight Sunday
1. In at least one paragraph and in your own words, what is the purpose of the four main
programming paradigms? Please be specific.
2. In at least one page, discuss the compilation process (Figure 1.4) and what each step does
(Lexical Analyzer, Syntactic Analyzer, etc.). Think about what is happening to the source
code as it goes through each phase. Also, what is the difference between a compiler and an
interpreter?

Columbia College Online Campus

P a g e |5

Week 2 Syntax / Lexical and Syntactic Analysis


Reading Assignment
Chapter 2
Chapter 3
Proctor Information
Submit your proctor information to the Proctor Dropbox by midnight Sunday.
Discussion Assignments
Due midnight Wednesday
Discussion 3 Exercise 2.11 page 56
Argue convincingly that the parse tree given in Figure 2.2 for the expression 5-4+3 is the
only possible parse tree. Hint: enumerate the other possibilities and show that they do not
work.
Discussion 4 Exercise 3.19 page 83
Can a language have no reserved words? That is, suppose every reserved work (such as is
and for) were merely a predefined identifier which the programmer is free to redefine. Can
such a language exist? Explain.
Dropbox Assignment 2
Due midnight Sunday
Part A Exercise 2.19 page 56
Give a set of grammar rules that define the syntax of a variable declaration in Perl. Give an
example. Hint: your answer should include a BNF or EBNF notation of the rules.
Part B Exercise 3.7 page 82
What part(s) of the language PHP are case sensitive? What part(s) are case insensitive? Can
you find rationale for the separation?
Research Paper Topic
Due midnight Sunday
Your topic for the research paper is due this week. Please read the document in the Content section
under Student Resources titled "Research Paper Guidelines - Undergraduate" for help in choosing a
topic and for specific requirements.
Quiz 1
Due midnight Sunday
The quiz will cover chapters 1-3.

Week 3 Names
Reading Assignment
Chapter 4
Discussion Assignments
Due midnight Wednesday
Discussion 5 Exercise 4.3 page 99
C and C++ distinguish between declarations and definitions. What is the distinction? Give
an example of each.
Discussion 6 Exercise 4.4 page 99

Columbia College Online Campus

P a g e |6

Explain the use of header files in C and C++. Why doesnt Java use header files?
Dropbox Assignment 3 Exercise 4.1 page 99
Due midnight Sunday
Pick one of the following languages: Python, Modula, Ada, C#, or Perl. After consulting an
authoritative reference, discuss each of the following requirements for that language.
Identify your reference source.
Declaration before use.
Overloading of operators for programmer-defined types.
Binding time of array size.
What constitutes a scope?
Location of a declaration within a scope.

Week 4 Types/Type Systems


Reading Assignment
Chapter 5
Chapter 6 [sections 6.1 and 6.2]
Discussion Assignments
Due midnight Wednesday
Discussion 7 Exercise 5.9 page 133
What is the difference between a big-endian and a little-endian machine? Cite a least one
computer architecture of each kind. How do these architectures affect the values given in
Table 5.2?
Discussion 8 Exercise 6.3 page 151
Argue that the Java method that implements the function V for Declarations is correct, in
the sense that it covers all the cases that the Type Rule itself covers.
Dropbox Assignment 4
Due midnight Sunday
Part A Exercise 5.10 page 133
Ada provides two remainder operators. What is the difference between the two? For your
favorite language and machine, which remainder operator do they implement?
Part B Exercise 6.11 page 152
Modify Type Rule 6.5 so that it checks the validity of an ArrayRef (see Figure 2.14)
Quiz 2
Due midnight Sunday
The quiz will cover Chapters 4-6 and is found in the Quizzes area.

Week 5 Semantics
Reading Assignment
Chapter 7
Discussion Assignments
Due midnight Wednesday
Discussion 9 Exercise 7.12 page 195
Consider the Ada I/O errors summarized in Table 7.4. Using web-based sources, determine

Columbia College Online Campus

P a g e |7

if a similar collection of I/O errors is defined for C. What about C++?


Discussion 10 Exercise 7.14 page 195
Modify the invalid numeric input example of Section 7.7.2 so that the user has at most three
tries to input a valid integer.
Dropbox Assignment 5
Due midnight Sunday
Part A Exercise 7.6 page 195
For your C/C++ compiler, verify whether or not the cast of the integer257 to a char results
in an error.
Part B Exercise 7.7 page 195
For your Java compiler/interpreter, verify whether or not the cast of the integer 655537 to a
char results in an error.

Week 6 Semantic Interpretation / Functions


Reading Assignment
Chapter 8 [sections 8.1, 8.2, and 8.3]
Chapter 9
Discussion Assignments
Due midnight Wednesday
Discussion 11 Exercise 8.3 page 222
Discuss the advantages and disadvantages of disallowing assignment statements of the
form b = a, where a has the value undef. What changes would you have to make to the
Clite semantic rules and interpreter to enforce this change?
Discussion 12 Exercise 9.1 page 241
Consider the C-like program illustrated in the text for this exercise. What is the final value of
array x for each of the following parameter passing assumptions?
1. Argument x is passed by value.
2. Argument x is passed by reference.
3. Argument x is passed by value-result.
Dropbox Assignment 6
Due midnight Sunday
Part A Exercise 8.5, page 223
Modify the definition of the operators && and || so that they do not use short
circuit evaluation. Give the new semantic rules. Discuss the needed
modifications to the implementation. [Answer requires modification to the
Semantics.java source file located with Week 6s content].
Part B Exercise 8.8 page 223
Using Table 7.3 as a guide, write a trace table for the Clite program displayed in
the text for this exercise.
Quiz 3
Due midnight Sunday
The quiz will cover Chapters 7-9 and is found in the Quizzes area of the course.
Course Evaluations: Please evaluate the course. You will have an opportunity to evaluate the course near the
end of the session. A link will be sent to your CougarMail that will allow you to access the evaluation.

Columbia College Online Campus

P a g e |8

Week 7 Function Interpretation / Memory Management


Reading Assignment
Chapter 10 [sections 10.1, 10.2, and 10.3]
Chapter 11
Discussion Assignments
Due midnight Wednesday
Discussion 13 Exercise 10.2, page. 260
Using the example Clite function defined in figures 10.1 and 10.5, construct three different
calls; each should violate one of the Type Rules 10.6, 10.7 and 10.8, but not the other two.

Discussion 14 Exercise 11.7, page 276


What are the trade -offs, in time and space, when the allocation of dynamic arrays occurs
in the run-time stack rather than the heap?
Dropbox Assignment 7
Due midnight Sunday
Part A Exercise 10.3 part (a) only, page 260
Consider the statement k = k 1; inside the while loop of the program of Figure 10.5.
Remove this statement from the program.
(a) Will this change raise a syntax or type error for this modified program? Explain.
Part B Exercise 11.5, page 276
Expand the meaning rule for a Call to Clite (refer to Meaning Rule 10.1, pg. 249) to
incorporate the idea of heap memory allocation and recovery for an array parameter or
local variable. This change will naturally utilize the new and delete functions discussed at the
beginning of this chapter.
Research Paper
Due midnight Sunday

Week 8 Imperative Programming / Object-Oriented Programming


Reading Assignment
Chapter 12
Chapter 13
Discussion Assignments
Due midnight Wednesday
Discussion 15 Exercise 12.1, page 307
Discuss the advantages and disadvantages of having case-sensitive identifiers in a
programming language, with respect to program reliability, type checking and compiletime complexity.
Discussion 16 Exercise 13.27, page 360
The class Set is an important abstract class in Java. Its implementations include HashSet
and SortedSet. Do some research to answer the following questions:
(a) What is the difference between a HashSet and a HashMap? Would the former
be a candidate for implementation of the Concordance class instead of the
latter? Why or why not?

Columbia College Online Campus

P a g e |9

(b) What comparable classes exist in the C++ Standard Library for the Java
HashSet and HashMap? What are the major differences in their design?

(c) What comparable classes exist in Ada for the Java HashSet and
HashMap? What are the major differences in their design?
Dropbox Assignment 8
Due midnight Friday
Part A Exercises 12.4, page 307
Write a short paper (1 -2 pages) which compares and contrasts arrays (with integer
subscripts) in C, Ada, and Perl.
Part B Exercises 13.13, page 358
Using the Concordance.java source file located with Week 8s content, extend the program so
that it can report, for each word in the list, its frequency (number of occurrences) in addition
to the line numbers where it occurs.
Quiz 4
Due midnight Friday
The quiz will cover Chapters 10, 11, 12 and 13.
Final Exam
Opens Monday; Due 5PM CT Saturday; Proctored
The exam will cover Chapters 1 thru 13 in the textbook. You will have 120 minutes to
complete the computerized, proctored exam. You may take the exam any time Monday thru
11:59 p.m. CT Saturday as coordinated with your proctor. The exam is closed book and
closed notes.

Course Policies
Student Conduct
All Columbia College students, whether enrolled in a land-based or online course, are responsible for
behaving in a manner consistent with Columbia College's Student Conduct Code and Acceptable Use
Policy. Students violating these policies will be referred to the office of Student Affairs and/or the
office of Academic Affairs for possible disciplinary action. The Student Code of Conduct and the
Computer Use Policy for students can be found in the Columbia College Student Handbook. The
Handbook is available online; you can also obtain a copy by calling the Student Affairs office (Campus
Life) at 573-875-7400. The teacher maintains the right to manage a positive learning environment,
and all students must adhere to the conventions of online etiquette.

Plagiarism
Your grade will be based in large part on the originality of your ideas and your written presentation
of these ideas. Presenting the words, ideas, or expression of another in any form as your own is
plagiarism. Students who fail to properly give credit for information contained in their written work
(papers, journals, exams, etc.) are violating the intellectual property rights of the original author. For
proper citation of the original authors, you should reference the appropriate publication manual for
your degree program or course (APA, MLA, etc.). Violations are taken seriously in higher education
and may result in a failing grade on the assignment, a grade of "F" for the course, or dismissal from
the College.
Collaboration conducted between students without prior permission from the instructor is

Columbia College Online Campus

P a g e | 10

considered plagiarism and will be treated as such. Spouses and roommates taking the same course
should be particularly careful.
All required papers may be submitted for textual similarity review to Turnitin.com for the detection
of plagiarism. All submitted papers may be included in the Turnitin.com reference database for the
purpose of detecting plagiarism. This service is subject to the Terms and Conditions of Use posted on
the Turnitin.com site.

Non-Discrimination
There will be no discrimination on the basis of sex, race, color, national origin, sexual orientation,
religion, ideology, political affiliation, veteran status, age, physical handicap, or marital status.

Disability Services
Students with documented disabilities who may need academic services for this course are required
to register with the Coordinator for Disability Services at (573) 875-7626. Until the student has been
cleared through the disability services office, accommodations do not have to be granted. If you are a
student who has a documented disability, it is important for you to read the entire syllabus before
enrolling in the course. The structure or the content of the course may make an accommodation not
feasible.

Online Participation
You are expected to read the assigned texts and participate in the discussions and other course
activities each week. Assignments should be posted by the due dates stated on the grading schedule
in your syllabus. If an emergency arises that prevents you from participating in class, please let your
instructor know as soon as possible.

Attendance Policy
Attendance for a week will be counted as having submitted a course assignment for which points
have been earned during that week of the session or if the proctoring information has been
submitted or the plagiarism quiz taken if there is no other assignment due that week. A class week is
defined as the period of time between Monday and Sunday (except for Week 8, when the week and
the course will end on Saturday at midnight). The course and system deadlines are all based on the
Central Time Zone.

Cougar E-mail
All students are provided a CougarMail account when they enroll in classes at Columbia College. You
are responsible for monitoring e-mail from that account for important messages from the College and
from your instructor. You may forward your Cougar e-mail account to another account; however, the
College cannot be held responsible for breaches in security or service interruptions with other e-mail
providers.
Students should use e-mail for private messages to the instructor and other students. The class
discussions are for public messages so the class members can each see what others have to say about
any given topic and respond.

Late Assignment Policy


An online class requires regular participation and a commitment to your instructor and your
classmates to regularly engage in the reading, discussion and writing assignments. Although most of
the online communication for this course is asynchronous, you must be able to commit to the
schedule of work for the class for the next eight weeks. You must keep up with the schedule of
reading and writing to successfully complete the class.
No late assignments will be accepted without extenuating circumstances beyond the control of the

Columbia College Online Campus

P a g e | 11

student and with instructor notification prior to the due date (Columbia College Catalog).

Course Evaluation
You will have an opportunity to evaluate the course near the end of the session. A link will be sent to
your CougarMail that will allow you to access the evaluation. Be assured that the evaluations are
anonymous and that your instructor will not be able to see them until after final grades are
submitted.

Proctor Policy
Students taking courses that require proctored exams must submit their completed proctor request
forms to their instructors by the end of the second week of the session. Proctors located at Columbia
College campuses are automatically approved. The use of ProctorU services is also automatically
approved. The instructor of each course will consider any other choice of proctor for approval or
denial. Additional proctor choices the instructor will consider include: public librarians, high school
or college instructors, high school or college counseling services, commanding officers, education
service officers, and other proctoring services. Personal friends, family members, athletic coaches
and direct supervisors are not acceptable.

Additional Resources
Orientation for New Students
This course is offered online, using course management software provided by Desire2Learn and
Columbia College. The Student Manual provides details about taking an online course at Columbia
College. You may also want to visit the course demonstration to view a sample course before this one
opens.

Technical Support
If you have problems accessing the course or posting your assignments, contact your instructor, the
Columbia College Helpdesk, or the D2L Helpdesk for assistance. Contact information is also available
within the online course environment.
CCHelpDesk@ccis.edu

helpdesk@desire2learn.com

800-231-2391 ex. 4357

877-325-7778

Online Tutoring
Smarthinking is a free online tutoring service available to all Columbia College students.
Smarthinking provides real-time online tutoring and homework help for Math, English, and Writing.
Smarthinking also provides access to live tutorials in writing and math, as well as a full range of study
resources, including writing manuals, sample problems, and study skills manuals. You can access the
service from wherever you have a connection to the Internet. I encourage you to take advantage of
this free service provided by the college.
Access Smarthinking through CougarTrack under Students->Academics->Academic Resources.

Columbia College Online Campus

P a g e | 12

Grading Criteria
Discussion
GRADE
9-10 = A

DISCUSSION POSTINGS
Posting provides in-depth analysis of the problem and makes clear connections to the
readings and previous or current discussion. Posting provides new and insightful ideas
and examples. Posts substantive responses that pose questions or help to extend the
discussion.

8=B

Posting provides a quality analysis of the problem and connects to the readings and
previous or current discussion, but may lack some element or valuable information.
Posting provides new and insightful ideas and examples. Posts substantive responses
that pose questions or help to extend the discussion.

7=C

Posting provides an average analysis of the problem and connects to the readings and
previous or current discussion, but lacks significant elements or valuable information.
Posting does not really provide new and insightful ideas and examples. Response
postings may not extend the discussion.

6=D

Posting provides little analysis of the problem and makes little or no relevant
connection to the readings and previous or current discussion. Posting does not
provide new and insightful ideas and examples. Response postings are non-existent or
clearly do not extend the discussion.

5 or
lower = F

Posting provides no analysis or makes no relevant connection to the readings. Posting


provides no new idea and examples. Response postings are non-existent or merely
state Good idea or I completely agree. Plagiarized postings will receive an
automatic zero.

Dropbox Assignments
GRADE
9-10 = A

DROPBOX ASSIGNMENTS
Assignment either correctly analyzes the question or topic posed OR includes the
required program constructs. Uses necessary programming language consistently and
correctly. When applicable, uses appropriate program structure.

8=B

Assignment either correctly analyzes the question or topic posed OR includes the
required program constructs, but may lack some element or valuable information.
Primarily uses necessary programming language consistently and correctly. When
applicable, uses appropriate program structure.

7= C

Assignment either correctly analyzes the question or topic posed OR includes the
required program constructs, but lacks significant elements or valuable information.
Mostly uses necessary programming language consistently and correctly; may have
some errors. When applicable, uses appropriate program structure.

6= D

Does not fully analyze the question or topic posed OR fully include the required
program constructs. Contains significant errors with using necessary programming
language consistently and correctly. When applicable, may not use appropriate
program structure.

5 or
lower = F

Does not analyze the question or topic posed OR include the required program
constructs. Contains significant errors with using necessary programming language
consistently and correctly. When applicable, does not use appropriate program
structure. Plagiarized assignments will receive an automatic zero.

Anda mungkin juga menyukai