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

pepper@adelphi.edu

www.adelphi.edu/~pe16132

 

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

  • C:
    • C basics – Program Control, Functions  
    • Static and Dynamic Arrays and Pointers
    • Strings
    • Bit Manipulation
    • File I/O
  • C++:
    • C++ As A Better C
    • Strings
    • Classes, Constructors and Destructors
    • Dynamic Arrays in C++ 
    • Separate Compilation and Namespaces
    • Inheritance and Polymorphism  
    • File I/O
  • Scheme:
    • Processing Simple Forms of Data
    • Conditional Expressions and Functions
    • Compound Data: Structures and Lists
    • File I/O
  • Prolog:
    • Facts, Rules, and Queries
    • Unification and Proof Search
    • Recursion
    • Arithmetic
    • File I/O

  

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.