Department of Mathematics and Computer Science

Adelphi University

Fall 2015

 

 

0145-270-001 

Survey of Programming Languages - 3 credits

MW 02:25pm-03:40pm in SWL Gallagher

Visiting Assistant Professor Kristin Pepper

102 / 103 Post Hall until move to SCI 408

(516) 297-5241

pepper@adelphi.edu

www.adelphi.edu/~pe16132

 

Office Hours

Monday       8:20 - 8:50; 11:00 – 12:00 ; 1:00 – 2:15

Wednesday 8:20 - 8:50; 11:00 - 12:00

Friday          8:20 - 8:50; 11:00 – 12:15

 

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, Eigth Edition. New York: Pearson, 2016 .

Choose one version

  • ISBN for print & etext & myprogramminglab: 978-0134227023 or 0134227026
  • ISBN for looseleaf print & etext & myprogramminglab: 978-0134227436 or 0134227433
  • ISBN for etext & myprogramminglab (no paper) 978-0134225340 or 0134225341

Myprogramminglab will use a code of ADEL-21114-AVAQ-26. Find registration instructions on my web site at http://home.adelphi.edu/~pe16132/csc270/myprogramminglab.html

We will use some free problets: http://problets.org/user/f15/adelphi/

 

Recommended: a 4 gb flash drive 

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

Downey, Allen B and Thomas Scheffler. How to Think Like a Computer Scientist. 1999. https://prof.beuth-hochschule.de/fileadmin/user/scheffler/Lehre/Think-C_v1.08.pdf

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
  • Racket:
    • 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

  

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. The puzzle model will be shown as a picture. The entire project will use 3 languages, and involve passing some data between the three 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 all Quizzes - 30%

  Final Puzzle Project – 15%

Assignments - 35%

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.

 

Additionally, you are also 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

8/31, 9/2

1

Intro, Functions, Recursion

Downey 2-5 

 

 9/9, no class 9/7

2

Loops and Static arrays

Downey 6-7 OR Deitel 5-6

9/14, 9/16

3

Pointers and Dynamic Arrays

Deitel 7 & 14.9

9/21, 9/23

4

Strings, Formatted Input/Output,

Prolog - Facts, Rules and Queries

Downey 8 OR

Deitel 8 & 9

Blackburn 1

9/28, 9/30 - 9/28 last day to drop a course

5

Structures and Bit Manipulation 

File I/O

Prolog - Unification and Proof Search

Deitel 10, 11  & 12

Blackburn 2

10/5, 10/7

6

Review

10/7 C Programming  & Prolog intro Test

10/12, 10/14

7

C++ Intro to differences from C & class creation, Constructors, String

Introduce Final puzzle project

Deitel 15 & 16

 

10/19, 10/21

8

C++ Separate Interface from Implementation, Class Destruction,  

Prolog Recursion

Deitel 17, 18,

Blackburn 3

10/26, 10/28

9

Inheritance and Polymorphism; 
Operator Overloading

Deitel 19, 20

Final Puzzle project doc due

11/2, 11/4

10

File I/O
C++ Dynamic Arrays
Visual C++ Introduction

Deitel 19, 21, 23

11/9, 11/11

11

C++ Review; 

11/16, 11/18

12

11/16 C++ Programming test

Racket – syntax, functions, variables,

Bloch 1-6;

Bloch 20 – 22

11/23,   - no class 11/25 

13

Racket – lists and structures

Bloch 29

11/30, 12/2

14

Prolog List processing

Blackburn  4 & 5

12/7, 12/9

15

Review

Final Project

Final puzzle project due

12/14, - finals 12/15 - 12/21

 

Final test with date based upon Adelphi’s final exam schedule.  

 

12/22 & 23

Makeup days 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 significantly impact your ability to carry out assigned coursework, please contact the Office of Disability Support Services (DSS), located in Room 310 of the University Center, 516-877-3145, dss@adelphi.edu.  The staff will review your concerns and determine, with you, appropriate and necessary accommodations. When possible, please allow for a reasonable time frame for requesting ASL Interpreters or Transcription Services; a minimum of four (4) weeks prior to the start of the semester is required.*

 

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
The Code of Academic Honesty prohibits behavior that can broadly be described as lying, cheating, or stealing. Violations of the Code of Academic Honesty will include, but not be limited to, the following:

  1. Fabricating data or citations
  2. Collaborating in areas not approved by the professor
  3. Unauthorized multiple submission of one’s own work
  4. Sabotage of others' work, including library vandalism or manipulation
  5. Plagiarism
  6. The creation of unfair advantage
  7. The facilitation of dishonesty
  8. Tampering with or falsifying records
  9. Cheating
  10. Other forms of academic dishonesty”

 

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.