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 |
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:
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 |
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. |