Department of Mathematics and Computer Science

Adelphi University

Spring 2015

 

0145-172-001 & 0145-172-010

Introduction to Algorithms and Data Structures + Lab - 4 credits

001 (Lecture): TR 10:50 – 12:05 in HHE 217

010 (Lab)  TR 3:05 – 4:20  in SWL 101

Visiting Professor Kristin Pepper

102 / 103 Post Hall

(516) 297-5241

pepper@adelphi.edu

www.adelphi.edu/~pe16132

 

Office Hours

Tuesday 8:40 – 10:40;   12:30 – 1:30

Wednesday 2:15 – 4:15

Thursday   8:40 – 10:40

 

Course Description and Purpose

Expand on the techniques of CSC 171 with multi-dimensional arrays, file handling, control constructs, class relationships (composition, inheritance, polymorphism), exceptions, threads, higher-order functions, simple data structures and design patterns. Develop software-engineering skills and habits, and start using big-O notation to study algorithm efficiency.

Gen Ed Learning

Goals and Distribution

Requirements

 

 

Quantitative Reasoning

Course Learning Goals

Students will program in the Java language using a program development environment (BlueJ) to carry out a design-code-test-debug cycle. Students will apply an object oriented programming paradigm by writing small working programs that utilize multiple classes and multi-dimensional arrays, read files, manage and create exceptions. Students will design solutions for written problems by using online tools such as myprogramminglab and codingbat. Students will create data structures such as stacks queues and linked lists to solve problems. Students will write UML diagrams and flow charts to design solutions, and will investigate design patterns. The final inventory management project will demonstrate proficiency in the use of agile development methodology, which includes a sequence of testable versions. The inventory management project will require selection of test cases, solution design and implementation, testing and internal program documentation.

 

Prerequisite

CSC171.  

Required Texts

Reges, Stuart and Stepp, Mary, Building Java Programs: A Back to Basics Approach 3/E. New York: Addison-Wesley, 2014 packaged with MyProgrammingLab. (ISBN for paper version: 9780133437300  and for online version: 013345102X OR 9780133451023). (The older versions of the textbook (9780136091813 or 978-0-321-38283-2) are acceptable, but you will also need to purchase a $42.40 subscription to MyProgrammingLab and may need to get an occasional assignment from the 3/E version.)

 

When you access MyProgrammingLab, the code is ADEL-17631-HLMH-23. Find registration instructions on my web site at http://home.adelphi.edu/~pe16132/csc171/myprogramminglab.html

 

 

A flash drive is also recommended.

 

Topics

The order of topic coverage will follow the chapters in the required textbook, with supplementary material added, as noted below:

  • A Review of Programming With Classes and Java Basics
  • References and Packages
  • Exception Handling
  • Files
  • Structuring Data: Multidimensional Arrays, Arrays of Objects and Objects Containing Arrays and Other Control Structures
  • Polymorphism
  • Recursion
  • References and Linked Lists
  • Sorting and Searching  
  • Stacks and Queues
  • Binary Trees

 

 

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 should be done using the free BlueJ development environment over JavaTM 2 Platform Standard Edition 8.0 (JDKTM 8.0). To install the BlueJ environment,  Find install instructions on my web site at http://home.adelphi.edu/~pe16132/csc171/bluej/downloadbluej.htm

 

Major assignments are:

 

·         A set of www.MyProgrammingLab.com   assignments

 

·         A set of http://codingbat.com/ assignments

 

·         Lab exercises with robots will demonstrate file reading and array logic.

 

·         Write a Towers of Hanoi program to demonstrate recursion.

 

·         Code an HTML Validator to demonstrate building and using a queue.

 

·         Create an ArrayCharList and LinkedCharList to design your own collection classes.

 

·         Final individual or group project: Create a file based inventory system with a graphic report using a preconfigured graphics library.  This system will be built as a series of assignments:

o    Arraylist and File Processing: Create a single file inventory list that is held in a file and updated by the user. 

o    Sets: Use a set to determine how many values the inventory has in one of the inventory attributes.

o    Treemap: Allow the user to print the number of items that have certain attributes.  

o    Sort:  Allow the user to determine which column to sort when printing a list of all inventory items, and also give the user an option to reorganize the items in the file in item number order  

o    Searching: Give the user an option to search for a certain type of item. Use a binary search to implement this

 

Grading

The midterm must be completed as a minimum for credit. Each exam must be taken at the time scheduled.  Homework must be turned in before class begins. Late work will not be accepted. The lowest two homework assignments will be dropped.  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:

Midterm Exam - 25%

Quizzes - 10%

Assignments - 20%

Final Project – 20%

Final  - 25%

 

 

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

All 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. Hand me notes from what you read on one index card on the assigned, and I will give you back those notes for your quizzes and tests. The professor reserves the right to change this schedule.

 

Date

week

Subject

Assigned Reading

1/27, 1/29

1

Classes & Java Basics & Packages & Class UML & Tester

Chapter 8

2/3, 2/5

2

Classes & Java Basics & Packages & Class UML & Tester

Chapter 8

2/10, 2/12

3

File Processing; Exceptions & Flowcharts

Chapter 6 & 4.4

2/17, 2/19

4

Inheritance and Interfaces & Class UML

Chapter 9

2/24, 2/26

5

Arraylist, Design Patterns

2/24 Classes, File Processing and Exceptions Quiz

2/23 Last day to drop a course

Chapter 10

Online Design Patterns Site

3/3, 3/5

6

Arraylist- Multidimensional Arrays, Arrays of Objects

and Objects Containing Arrays

Chapter 10

3/10, 3/12

7

Abstract Data Types: Java Collections Framework

3/12 Arraylist, Inheritance, Interface, UML Quiz

Chapter 11

3/17, 3/19

 

NO CLASSES

 

3/24, 3/26

8

Review and Midterm

3/30 – Last day to withdraw

 

3/31, 4/2

9

Recursion

Chapter 12

4/7, 4/9

10

Recursion and Searching

4/9 Java Collections And Recursion quiz

Chapter 13

4/14, 4/16

11

Sorting & Big O Notation

Stacks and Queues

Chapter 14

4/23

12

Stacks and Queues

Implementing a Collection Class (Array of ints)

 (no class 4/21 – research Day)

Chapter 15

4/28, 4/30

13

Implementing Linked Lists

Chapter 16

5/5, 5/7

14

Final Inventory Project work

Binary Trees

Online Threads

5/5 – Searching / Sorting, Big O, stacks and queues quiz

Chapter 17

Online Thread Site

5/12
5/13 (Wed)

15

Review

5/13 is a makeup day and will be an optional review day

 

5/14 (Thurs)

 

5/14 3:30 – 5:30

Follows Adelphi Final Exam Schedule for Lab

 

 

 

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.