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.
P a g e |2
Technology Requirements
Participation in this course will require the basic technology for all online classes at Columbia
College:
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.
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
P a g e |3
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
120
Saturday
Total
580
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?
P a g e |5
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
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 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
P a g e |7
P a g e |8
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
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.
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
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.
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
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.