Department of
Mathematics and Computer Science
Adelphi University
Fall 2014
|
0145-270-001 |
Survey of
Programming Languages - 3 credits MW 2:25 – 3:40 in HHE 110 Visiting
Professor Kristin Pepper 102
/ 103 Post Hall (516)
297-5241 |
|
Office Hours |
Tuesday
/ Thursday 9:00 – 10:30 Monday
/ Wednesday 10:00 – 11:30 |
|
Course Description
and Purpose |
Learn
to use different approaches to programming, and languages and language
features that support them: object-oriented (e.g. C++, Java), functional
(e.g. Scheme, Haskell), and logical (e.g. Prolog). By the end of the course,
students can learn new languages quickly, and choose appropriate language and
approach(es) for any given
programming assignment. |
|
Course Learning
Goals |
Students
will demonstrate the ability to code in a procedural language by writing C
programs utilizing arrays and pointers. Students will practice Object
Oriented concepts by coding C++ programs with interacting classes. Coding in Racket will show familiarity with
functional coding. Students will be
introduced to declarative programming when they design simple Prolog scripts.
Students will demonstrate that they can choose the appropriate language for
any given assignment by using at least 2 of the 4 course languages for a
final puzzle making group project. |
|
|
|
|
Prerequisite |
CSC172 |
|
Required Texts |
Deitel, Paul and Harvey Deitel C How to Program, Seventh Edition. New
York: Pearson, 2013 . (ISBN 9780132990448 or 013299044X) Codelab
will need to be purchased separately from http://www.turingscraft.com/ with a code of ADEL-16028-FLWT-22. Find registration
instructions on my web site at http://home.adelphi.edu/~pe16132/csc270/codelab.htm |
|
Recommended Texts |
Bloch,
Steve. Picturing Programs. London: College Publications, 2010. (ISBN 9781848900158) Also available at http://picturingprograms.com/ Blackburn, Patrick, Johan Bos and Kristina Striegnitz. Learn Prolog Now. London: College Publications, 2006. (ISBN 9781904987178) Also available at http://www.learnprolognow.org A
flash drive is also recommended. |
|
Topics |
NOTE
ON FINAL EXAMS: All students must take the final exam at the scheduled
time according to the final exam schedule ( http://ecampus.adelphi.edu/registrar/exams.php ) |
|
Major Assignments |
Assignments
can be done using Adelphi’s Panther machine. Access Panther via the free
programs filezilla and putty. Filezilla:
https://filezilla-project.org/ Putty:
http://www.chiark.greenend.org.uk/~sgtatham/putty/ You
may also choose to work locally, but must verify code works on panther before
submitting homework. Find free local alternatives at http://home.adelphi.edu/~pe16132/csc270/setup.html A
set of Codelab http://www.turingscraft.com C and C++ program assignments. Codelab
(and your professor) will give you hints when you are stuck. A
final group project will involve creating a puzzle and coding a vehicle to
solve that puzzle. Then entire project will use at least two languages, and
involve passing some data between the two languages, even if only by working
on the same file. Students will have a chance to develop teamwork skills and
to explore all aspects of functions needed for their project. |
|
Grading |
The
midterm must be completed as a minimum for credit. Each exam must be taken at
the time scheduled. 10% will be dropped for anything 1 week late. Be sure to back up your classwork
frequently so that you do not lose work. The
course grading scale is: A 93-100, A- 90-92, B+ 87-89, B 83-86, B- 80-82, C+
77-79, C 73-76, C- 70-72, D 60-69, and F is below 59. A+ is given at the
professor's discretion. The
final grade will be a traditional letter grade (A-F). Excessive absences,
lateness, and any activities which run counter to the best interests of the
class will be deducted at the end of the semester from the final grade as a
percentage to be determined by the professor. Grade
Percentages: C
and C++ Tests plus any Quizzes - 30% Assignments - 50% Cumulative Final - 20% |
|
|
|
|
Attendance |
The
following is the Adelphi University General Attendance Policy: Only students who are registered for courses, and whose
name appears on the Official Class Roster may attend courses at the
University. Adelphi students make a commitment to be active participants in
their educational program; class attendance is an integral part of this
commitment. Attendance requirements for each course will be announced by the
faculty member at the beginning of each term. Students are expected to be
present promptly at the beginning of each class period, unless prevented by
illness or by other compelling cause. In the event of such absence, students
may request that faculty members be notified by the Office of Academic
Services and Retention. Students are responsible for completing course work
missed through absences. Students should wait a reasonable length of time for
an instructor in the event that the instructor is delayed. You
are responsible for whatever work is covered in class whether or not you are there.
Absence from the final exam will be excused only for a good and
well-documented reason. The decision to allow a make-up exam will be made in
accordance with the policies of Adelphi University. If the University is closed for any class session
due to an emergency, log onto this course site under the MOODLE tab in
eCampus each day for instructions and assignments. Please check your Moodle News on snow closing days as snow days may
be replaced with online instruction. |
|
Moodle |
Most
course materials will be delivered through Moodle. The All Assignments task
will describe all assignments and due dates. Use Moodle to hand in all
assignments. A Moodle tutorial can be found at http://fcpe.adelphi.edu/moodle/student/ |
This
is a weekly schedule. All reading should be done by the beginning of the week.
The professor reserves the right to change this schedule.
|
Date |
WK |
Subject |
Assigned
Reading |
|
9/3 |
1 |
Intro |
Deitel 2-4 |
|
9/8, 9/10 |
2 |
Functions,
Recursion and Static arrays |
Deitel 5-6 |
|
9/15, 9/17 |
3 |
Pointers
and Dynamic Arrays |
Deitel 7 & 14.9 |
|
9/22, 9/24 |
4 |
Strings, Formatted Input/Output, |
Deitel 8 & 9 & 10 |
|
9/29, 10/1 |
5 |
Structures and Bit Manipulation |
Deitel 11 |
|
10/6, 10/8 |
6 |
Review 10/8
C Programming Test |
|
|
10/13, 10/15 |
7 |
File
I/O |
Deitel 11 |
|
10/20, 10/22 |
8 |
C++
Intro to differences from C & class creation, Constructors, String , Separate
Interface from Implementation, Class Destruction, |
Deitel
15 & 16, 17, 18, |
|
10/27, 10/29 |
9 |
C++
Dynamic Arrays, Operator Overloading |
Deitel 19,
|
|
11/3, 11/5 |
10 |
Inheritance
and Polymorphism; File I/O ;
C++ Review; (Last
day to withdraw: 11/5) |
Deitel 20, 21, 23 |
|
11/10, 11/12 |
11 |
11/10 C++
Programming test
Racket
– syntax, functions, variables, Racket
– lists and structures Form
Groups for final project |
Bloch
1-6; Bloch
20 – 22 |
|
11/17, 11/19 |
12 |
Racket
– functions |
|
|
11/24 |
13 |
Racket
File I/O C++
Retest (11/26
makeup day if needed) (11/28 vacation) |
Bloch
29 |
|
12/1, 12/3 |
14 |
Racket
– Lambda functions, Prolog – Facts, Rules and Queries, Unification and Proof
Search; Recursion, Lists |
Blackburn
1 Blackburn 2, 3, 4 |
|
12/8, 12/10 |
15 |
Prolog – Arithmetic ; Review and Final Project |
Blackburn
5 |
|
12/15 |
|
Makeup day if needed |
|
|
12/22 3:30 – 5:30 |
|
Final
test with date based upon Adelphi’s final exam
schedule. 12/22 Monday 3:30 – 5:30 |
|
|
12/23 |
Makeup day if needed |
|
|
Turnitin |
Adelphi
University has a license agreement with Turnitin.com, a service that helps
prevent plagiarism from Internet resources. I reserve the right to request an
electronic copy of any written assignment submitted in this course for review
through Turnitin.com. Please see Adelphi's tips for students on preventing
plagiarism and student instructions for Turnitin.com for more information. |
|
Students With
Disabilities |
If you have a disability that may impact your
ability to carry out assigned course work, and are not enrolled in the
Learning Disabilities Program, it is important that you contact the staff in
the Disability Support Services Office (DSS), University Center, Room 310,
(516) 877 3145. DSS@adelphi.edu. DSS will review your concerns and determine,
with you, appropriate and necessary accommodations. All information and
documentation of disability is confidential. |
|
Honor Code |
Students
enrolled in this course are expected to abide by the Adelphi University
Honor Code. The purpose of the Honor Code is to protect the academic
integrity of the University by encouraging consistent ethical behavior in
assigned coursework by students. Following is excerpted from the Student
Honor Code: The code of academic honesty prohibits
behavior, which can broadly be described as lying, cheating, or stealing.
Violations of the code of academic honesty will include, but are not limited
to, the following: 1.
Fabricating data or citations 2.
Collaborating in areas prohibited by the professor 3.
Unauthorized multiple submission of work 4.
Sabotage of others' work, including library vandalism
or manipulation 5.
Plagiarism: presenting any work as one's own that is
not one's own 6.
The creation of unfair advantage 7.
The facilitation of dishonesty 8.
Tampering with or falsifying records 9.
Cheating on examinations through the use of written
materials or giving or receiving help in any form during the exam, including
talking, signals, electronic devices, etc. Avoid
coding plagiarism: Any code you even vaguely take from the internet needs to
be cited in comments. If an algorithm you found was used as a basis, cite it.
Any person helping you, even a tutor, needs to be listed in the comments. If
you work with another person doing homework, include them in your
comments. If you include any piece of
code you do not fully understand for your final project, comment that you are
using it as a black box. You are responsible for explaining how every piece
of code works except those you designate as "black box" portions. |
|
Student Course Evaluations |
During
the last two weeks of the class, you will receive notification, via mail and
eCampus, that the course evaluation is available for your input
electronically. Availability will end at the start of the final examination
period. Your feedback is valuable and I encourage you to respond. Please be
assured that your responses are anonymous and the results will not be
available to the instructor until after the end of the semester and therefore
after course grades have been submitted. |