You are on page 1of 8

CSC 388: Programming Languages

Fall 2019
Online
Instructor: Brian-Thomas Rogers.
Office: UHB 3107.
Office Hours: By appointment only.
Email: broge2@uis.edu

Course Description
The goal of this course is to introduce the major principles and concepts underlying all
programming languages without concentrating on one language. The emphasis is on evaluating
alternative ways of providing various programming language features, and studying the trade-off
involved.

We will use C, Java, C++, Fortran, Pascal, Ada, Cobol, Scheme, Prolog, Perl, Python,
Ruby, and F# to illustrate programming language concepts covered in the course. The discussion
is about the important issues in the specification, design and implementation of programming
languages.

Course Objectives
Upon completion of this course, students will

 learn some fundamental principles and concepts of modern programming languages.


 have an overview of several different paradigms of programming.
 learn about specific features of different programming languages.
 gained some programming experience in a selected set of languages.

Prerequisites

Students are not expected to know all programming languages covered in class. However,
experience with at least one programming languages is necessary plus some knowledge of data
structures and basic programming techniques.

Page 1
Course Format
The course is organized around the following pattern:
1. You read the assigned chapter in the textbook.
2. You read the PowerPoint slides corresponding to the chapter.
3. You take an online, open book quiz on the chapter.
4. You do a homework assignment for the chapter, submitting your answers through
Blackboard.

At the end of the semester, a review guide for the final exam will be posted. The final
exam will be open-book, open notes. It will last one hour and 30 minutes and must be taken by
all students at a specific date and time. There will be two offerings of the final exam: one at
12:00 noon CST on Sunday, December 8th, and a second one at 8:00 pm CST on Monday,
December 9th. You must take your final on either one of these two days. If you are not able to
make these times then you must notify the instructor BEFORE the first giving of the final.

Where and When to Turn in Assignments


Each assignment may need to be prepared with a word processor. I'll take ASCII text
documents (like those prepared with NOTEPAD), MS Word documents, and PDF. Any other
formats you should clear with me in advance. All assignments must be submitted using
Blackboard. For solutions written in code, you must submit an ASCII text file with the
appropriate extension such as .java for Java source code files.

Assignments which are not properly named according to the homework description will
receive zero points.

When you prepare your assignments do not try to make them super fancy. The focus is
not on the form, but on the content. "Typewriter graphics" are fine. You can scan handwritten
diagrams or figures as far as they are readable. Scanned handwritten text is not acceptable. If I
cannot read something, I will assume that it is wrong.

UIS Academic Integrity Policy


I support the UIS policy on Academic Integrity, which states, in part: “Academic integrity is at the heart
of the university’s commitment to academic excellence. The UIS community strives to communicate and
support clear standards of integrity, so that undergraduate and graduate students can internalize those
standards and carry them forward in their personal and professional lives. Living a life with integrity
prepares students to assume leadership roles in their communities as well as in their chosen profession.
Alumni can be proud of their education and the larger society will benefit from the University’s
contribution to the development of ethical leaders. Violations of academic integrity demean the
violator, degrade the learning process, deflate the meaning of grades, discredit the accomplishments of
past and present students, and tarnish the reputation of the university for all its members.”
Academic sanctions range from a warning to expulsion from the university, depending on the severity of
your violation and your history of violations. Whatever the sanction, I will file a report of academic
dishonesty to the Office of the Provost.
You are responsible for understanding and complying with the UIS Academic Integrity Policy available at
http://www.uis.edu/academicintegrity.

Page 2
Academic dishonesty in an online learning environment may include the following scenarios:
 Having a tutor or friend complete a portion of your assignments
 Having a reviewer make extensive revisions to an assignment
 Copying work submitted by another student to a public class meeting
 Using information from online information services without proper citation
 Posting any work as your own that has been written by another author(s)

The first violation to academic integrity will receive a zero for the assignment. The next time will be
failure from the course with no recourse.

Plagiarism
All academic work must be your own. Plagiarism, defined as copying or receiving materials
from a source or sources and submitting this material as one's own without acknowledging the
debts to the source (quotations, paraphrases, basic ideas), or otherwise representing the work of
another as one's own, is never allowed. Collaboration, usually evidenced by unjustifiable
similarity, is never permitted in individual assignments. Any submitted academic work may be
subject to screening by software programs designed to detect evidence of plagiarism or
collaboration.

Group work is not allowed. All assignments in this course are individual.

Getting outside help on your homework: it is not allowed. Unless it is otherwise stated in an
assignment, you are not to get help on your homework from anyone except me (Brian-Thomas
Rogers, your instructor). You also aren't supposed to use email or the web to find someone else's
answers to these questions, or to copy material which is posted on the web. If you are using
external material, you must make it clear by explicitly marking the external material and
acknowledging the source. Copying material from the web without making it clear is considered
cheating.

Academic Accommodations
If you are a student with a documented temporary or ongoing disability in need of academic
accommodations, please contact the Office of Disability Services at 217-206-6666.
Disabilities may include, but are not limited to: Psychological, Health, Learning, Sensory, Mobility, ADHD,
TBI and Asperger’s syndrome. In some cases, accommodations are also available for shorter term
disabling conditions such as severe medical situations. Accommodations are based upon underlying
medical and cognitive conditions and may include, but are not limited to: extended time for tests and
quizzes, distraction free environment for tests and quizzes, a note taker, interpreter and FM devices.
Students who have made a request for an academic accommodation that has been reviewed and
approved by the ODS will receive an accommodation letter which should be provided by the student to
the instructor as soon as possible, preferably the first week of class.
For assistance in seeking academic accommodations please contact the UIS Office of Disability Services
(ODS) in the Human Resources Building, Room 80, phone number 217-206-6666.

Illness
In the event of an illness or other mishap, get proper documentation.

Page 3
Textbook (Required)

Concepts of Programming Languages 12th edition by Robert W. Sebesta


ISBN: 9780134997186
Author: Sebesta
Bookstore link:
https://www.bkstr.com/illinoisspringfieldstore/course-materials-
results?shopBy=course&divisionDisplayName=&departmentDisplayName=CSC&courseDisplayName=38
8&sectionDisplayName=B&programId=191&termId=100059856

Books about specific languages (Not Required):

C: Brian Kernighan and Dennis Ritchie, The C Programming Language, second edition, Prentice
Hall, 1988.
C: Sam Harbison and Guy Steele Jr, C: A Reference Manual, fourth edition, Prentice Hall, 1995.
C: Peter van der Linden, Expert C Programming: Deep C Secrets, Prentice Hall, 1994.
Scheme: R. Kent Dybvig: The Scheme Programming Language, 4th Edition. The MIT Press,
2009, (online book).
Scheme: H. Abelson, G. Sussman, J. Sussman, Structure and Interpretation of Computer
Programs, MIT Press 1996.
Prolog: Clocksin and Mellish, Programming in Prolog, 4th ed., Springer-Verlag, 1994.
Prolog: Bratko, PROLOG, Programming for Artificial Intelligence, 3rd ed., Addison-Wesley,
2001.
Prolog: Sterling and Shapiro, The Art of Prolog: Advanced Programming Techniques, 2nd ed.,
MIT Press,1994.
Python: Allen B. Downey, Python for Software Design: How to Think Like a Computer
Scientist, Cambridge University Press, 2009.
Ruby: David Flanagan, Yukihiro Matz Matsumoto, The Ruby Programming Language, 2008.
Ruby: Programming Ruby: The Pragmatic Programmer's Guide - http://www.ruby-
doc.org/docs/ProgrammingRuby/.
Perl: Randal L. Schwartz, Tom Phoenix, Brian d foy, Learning Perl, O'reilly, Fifth Edition, 2008.
F#: Syme, Don; Granicz, Adam; Cisternino, Antonio (2007). Expert F#. Apress.

Page 4
Expected Topics

Introduction and Language Evaluation (Chapter 1).


Syntax and Semantics (Chapters 3 and 4).
Names, Bindings, Type Checking and Scopes (Chapter 5).
Data Types (Chapter 6).
Expressions and Assignments (Chapter 7).
Control Structures (Chapter 8).
Subprograms (Chapters 9 and 10).
Functional Programming: Lisp/Scheme (R. Kent Dybvig: The Scheme Programming Language,
4th Edition. The MIT Press, 2009, online book).
Logic Programming: Prolog (Bratko, PROLOG, Programming for Artificial Intelligence, 3rd ed.,
Addison-Wesley, 2001).

The Dybvig's book is available online. We will cover only the first two chapters.

UIS Resources
University of Illinois at Springfield
Information Technology Services (ITS) (Blackboard and other technology support for students)
University Webmail
Blackboard
Brookens Library

Course Announcements
You should always check Blackboard for course announcements. The announcements
page for this course will always be the landing page for this courses Blackboard.

You should also check your UIS email frequently, preferably each week day. UIS sends
you official mail at that email address. When I send the class an email using Blackboard, the
default email address it uses for you is that official UIS email address. Do not forget to check
your course announcements and the course calendar on a day-by-day basis. You can also forward
your email from your UIS account to any email you choose.

Course Requirements
1. Use UIS email and Blackboard for communicating with the instructor and peers.
2. Complete all assigned readings covered in the materials.
3. Adhere to assignment deadlines, which are firm unless a student is given special permission by
the instructor. Late submissions are subject to no credit.
4. Contact the instructor immediately if special circumstances cause interruption of course
activities.
5. Keep backup copies of all of work.
6. Submit only original work. Any form of plagiarism is strictly prohibited, as required by
University policy. Violation of this rule will result in "no credit" for an assignment or "no credit"
for the course and may result in dismissal from the program.

Page 5
Course Communication
Please contact me via email if you have questions at any time. Online chat sessions or telephone
consultations can be arranged. Specific details about communication within our course follow.

Email
Students may also use email to communicate with the instructor and one another about matters they
wish to be kept private. You must use your @uis email. No response will be made to an account that
uses 3rd party email such as gmail, yahoo!, etc. Please copy the instructor on all communications using
email.

Instructor Feedback
As your instructor, I am committed to providing a quality learning experience through thoughtful
planning, implementation, and assessment of course activities. I am also committed to being readily
available to students throughout the semester by returning e-mails within 24 to 48 hours.

Final grade break down


Category Points or Percentage
Quizzes 30%
Assignments 40%
Final Exam 30%

Grading Scale
Percent Range Letter Grade
100-93 A
92-90 A-
89-86 B+
85-83 B
82-80 B-
79-76 C+
75-73 C
72-70 C-
69-66 D+
65-63 D
62-60 D-
59 and below F

Page 6
Late Policy
Late homework and missed quizzes will not be accepted, unless the student is ill. If you are
traveling, you need the instructor permission for late quiz or homework. I usually grant short assignment
extensions if a student contacts me before the assignment deadline. If a student misses an exam or a
quiz, he/her will receive a zero for that portion of the grade. There are no makeup exams or
assignments.

Qualifications for an Incomplete


Incompletes are at the discretion of the Instructor and therefore are subject to change.
Incompletes may be given to those who have had to miss most of the classes due to extreme
circumstances such as medical problems (See Academic Accommodations) or, in the case of military,
deployment. More information about incompletes can be found at
For more information use the following link: Academic Staff and Faculty Responsibilities

Course Calendar
Week/Topic Assignments/Due Dates
Chapter 1: Preliminaries
1. Introduction Buy the Book and start reading chapter 1 and the syllabus
Quiz 1
Chapter 3: Describing Syntax and Semantics
2. Syntax and Semantics
Quiz 2
Chapter 4: Lexical and Syntax Analysis
3. Lexical and Syntax Analysis
Quiz 3
Chapter 5: Names, Bindings, and Scopes
4. Names, Bindings, and Scopes Quiz 4
Homework 1 released and Due in 2 weeks
Chapter 6: Data Types
5. Data Types Quiz 5
Continue working on Homework 1.
Chapter 7: Expressions and Assignment Statements
6. Expressions and Assignment
Statements Quiz 6
Homework 1 Due.
7. Statement-Level Control Chapter 8: Statement-Level Control Structures
Structures
Quiz 7
Chapter 9: Subprograms
8. Subprograms Quiz 8
Homework 2 released and Due in 2 weeks.

Page 7
Chapter 10: Implementing Subprograms
9. Implementing Subprograms Quiz 9
Continue working on Homework 2.
Start reading online book by Dybvig, Chapter 1
10. Introduction to Functional
Programming with LISP Quiz 10
Homework 2 Due.
Continue reading online book by Dybvig, Chapter 2
11. Continuation of Functional
Programming and LISP Quiz 11
Homework 3 is released and due in 3 weeks.
Read lectures on Logic programming
12. Introduction to Logic
Programming Quiz 12
Continue working on Homework 3.
13. Thanksgiving Week (No new
material given) November 19th - 23rd

Read second set of lectures on Logic Programming


14. Continuation of Logic
Programming Quiz 13
Homework 3 Due.
Final review Material given
15. Final Review
Homework 3 due
12:00 noon CST on Sunday, December 8th
16. Final
8:00 pm CST on Monday, December 9th

All quizzes will be given on the Monday the week of and due on Sunday following that Monday.

Page 8

You might also like