| Course Name | Data Structures and Algorithms |
| Lab Number | CSCI-401L |
| Credits | 4 |
| Date | Modified 01/30/08 for the Fall 2007 Semester |
| Instructor | Prof. Antonio C. Silvestri |
| Office | 17/415 |
| Phone | 755-4607 (Use email whenever possible.) |
| silvestri@stcc.edu | |
| Web-Page | http://faculty.stcc.edu/silvestri/ |
| Prerequisite |
CSCI-111 passed with a C- or better. No exceptions will be made to this prerequisite. Potential students must also feel comfortable with the Windows and Linux environments. Questions concerning installation or OS issues will not be entertained as this is an upper level programming class. No exceptions will be made to these prerequisite |
This course concentrates on the analysis of algorithms that manipulate information organized in structures such as arrays, lists, trees, and graphs. Linked-Lists will be studied in their most popular variations which include simple, circular, and multi-linked lists. The classic data structures of stacks and queues will also be discussed. Search and sorting techniques are analyzed with regard to time efficiency and ease of programming. Hashing methods for quick data retrieval are demonstrated. Tree construction and balancing techniques are discussed. The course is centered on Java as the language of implementation. Java classes will be written to implement the Abstract Data Types that each data structure possesses. Recursive techniques are introduced early in the course. This course makes use of SUN's JDK 1.6 on a Windows NT or Linux platform where primarily stand-alone apps will be written.
This course is designed for those students interested in transferring to a four year college or university. Consequently, the student must be prepared to invest much time and effort for successful course completion.
![]() |
Required Text: Data Structures Using Java By D. Malik, P. Nair Thomson Course Technology ISBN: 0-619-15950-2 Publish date: April 3, 2003 832 pages |
WEBSITE: In an effort to implement distance learning, course files will be placed on the Internet. Homework and lab assignments, solutions, and class announcements can be accessed using the web. Access the STCC Computer Science Web page using the URL:
http://faculty.stcc.edu/silvestri/
All course announcements and correspondence will be done through this site. It is your responsibility to visit this site at least once every two days to view the latest course announcements, homework, and news. To simplify the process, press Ctrl-D to bookmark the site in your browser.
HOMEWORK: Homework will be assigned after a major topic has been developed. The homework will consist of a programming assignment that reinforces a topic discussed in lectures. Each assignment has equal weight. Ten or more assignments will be assigned. To receive credit for homework, source code and executables must be posted on the student's web site.
Homework is to be a reflection of things learned in class and lectures. While you can certainly ask the instructor some questions on homework assignments, excessive questioning of the instructor on homework does not reflect well on your grasp of the material. There have been times in the past where students questioned and questioned the instructor to the point where the program they submitted was really something the instructor wrote. The instructor in reality should have been awarded the A on the assignment. So please understand that in the interest of fairness to others in the class, excessive questioning will result in a reduction of the grade earned on the assignment.
At the start of each source listing, a global comment identification section containing the following information must be included:
Missing 3 assignments will be grounds for dismissal from class. Late homework cannot be accepted as solutions to the homework are routinely given as part of lectures.
LABORATORY WORK: Laboratory work is optional in this course. This doesn't mean that homework is optional; it merely means that you are not required to attend lab.
ATTENDANCE: Attendance is required; a student is expected to attend all scheduled classes. Missing 6 classes or the equivalent of 2 weeks of lecture will be grounds for class dismissal. Students who arrive late to a class and miss the attendance call will be considered absent. Any benefit of the doubt in the final grade will be given to students who come to class regularly. You will find each class contains much material. If you miss a class, do not expect the instructor to review missed material. It is your responsibility to get the lecture notes from a fellow student. Check the website for any materials discussed in class.
CHEATING POLICY: While student interaction on the solution of homework problems and labs is encouraged, blatant cheating and/or copying on homework and lab assignments will not be tolerated and will result in a 0 grade for the assignment in question for all participants. Dismissal from the class can also be an option depending on the severity of the incident.
GRADING POLICY:
|
Activity |
Weight |
Additional Info |
|
Homework |
30% |
Each assignment has equal weight. Ten or more assignments will be assigned. Missing 3 assignments will be grounds for dismissal from class. One homework assignment will be dropped. |
|
Mid Term Mini-Exams |
50% |
8 to 10 Short Examlets (Mini Exams) of Equal Weight. Each Examlet will be given after each chapter is discussed. One Examlet will be dropped. |
|
Final Exam |
20% |
Any student with an A average at the end of the semester will not need to take the final!!! |
Exams can be either a multiple choice type exam or in-lab problem solving exam where a programming problem is proposed and the student will write a program solution. When an in-lab programming exam is scheduled, you required to use the Eclipse IDE and the command line java utilities, javac, java, and appletviewer. While there are a multitude of ways to build your programs, our lab is only equipped with these utilities.
(Please see your book’s Table of Contents for specific chapter details.)