92733 CSC 2025A - 0 - Data Structures
This web page is http://www.bernstein-plus-sons.com/.dowling/CSC2025F13/CSC2025_Syllabus.html
Copyright © 2002 -- 2004, 2011, 2013 Herbert J. Bernstein and other parties. All rights reserved.
This is the syllabus for CSC 2025A for Fall 2013. As the course moves forward, students should return to this page frequently for updated material.
An overview of the important data structures and algorithms found in computer science. This course covers both theory and practice. Stacks, queues, lists, trees, graphs, sorting, searching, and recursion are examined. The impact of choice of data structure on the performance of algorithms is considered. Fundamentals of complexity classes and bigOh notation are covered. Emphasized is the methodical and analytical approach needed to solve computational problems like those found in science and business applications. Students are required to implement a selection of data structures and algorithms as they complete programming projects for homework.
Prerequisites: CSC 1024N, MTH 1017A and sound programming skills in Java; or permission of the Mathematics and Computer Science Department chair.
This Fall 2013 section is:
|Start Date||End Date||Days||Times||Bldg||Room|
|Sep 3, 2013,||Dec 20, 2013||TR|
|Instructor(s): Herbert J. Bernstein|
For more information see http://www.bernstein-plus-sons.com/.dowling/HJB_Contact_Info.html.
The first text has excellent explanations of data structures but presents examples in Pascal, a language no longer popular for Computer Science. The second text is not as clearly written but provides a rich source of examples in Java. Students will have to work with both text books, and are advised to make notes from both texts in their blogs. Students are encouraged to form study groups and to share texts.
During the semester you will supplement the texts by carefully viewing a series of videos on Data Syructures and Algorithms by Dr. Naveen Garg, Department of Computer Science & Engineering, IIT Delhi. The sooner you get started on these videos, the better: http://freevideolectures.com/Course/2279/Data-Structures-And-Algorithms
This three volume set is an essential reference for any serious computer scientist. There will be no specific assignments from Knuth, but reading it may well help in understanding the required texts and the lectures.
Keeping clear written records is an important part of working in any scientific field.
Students are expected to have their text books no later than the second week of the semester.
This is an online class. The major risk in taking an online course is in failing to make steady progress through the semester. Therefore, all students are required both to demonstrate their progress with on-line quizzes and assignments and to attend at least one online meeting every 2 weeks with the instructor to discuss the work they are doing for this class. Students are encouraged to schedule these online meetings in groups via Skype, but they may meet the requirement with individual Skype meetings or by on-site meetings during office hours.
Students who fail to maintain regular contact with the instructor prior to the midterm will get a midterm warning and be advised to withdraw from the course.
As noted above students will be given weekly quizzes. The weekly quizzes are open-web, open-book, open-notes quizzes, but that won't work in your favor if you don't do the reading. The only way to learn to program is to program. All students will have to demonstrate an ability to program all data structures in all least Python and Java (the two languages you should have learned prior to taking this course).
Every student will be required to maintain a contemporaneous hardbound notebook recording all significant activities related to this course. The notebook should record the major topics discussed, questions about the subject matter of the course and the answers when they are found. You will find a good notebook very helpful in taking the final, but, more importantly, the process of reading and taking detailed notes on what you are reading will help you to learn the material.
In addition to the notebook, you will need an on-line blog and website for this course, both to act as a supplement to the hardbound notebook and to provide a path for the submission of assignments. You may not submit spreadsheets as attachments to email. They are not likely to get past the instructor's spam filer. Instead, you should post spreadsheets to your web site and send the URL to the instructor.
You are required to do a project to add to your permanent portfolio to complete this course. See the new Dowling College Computer Science Portfolios policy. STUDENTS WILL DO THEIR OWN COMPLEX GAME-TREE-BASED GAME IN BOTH 2-PLAYER AND PAYER-AGAINST-COMPUTER FORM. Students may propose more complex and challenging projects that are better suited to their own career objectives. Simpler projects will not be accepted. You should think terms of a project you would like to show to a prospective employer or graduate school. Your name will be on it, and everybody in the world will be able to see it and try it. Your skills will be on display for everybody to see. Do a good job.
All students will be required to communicate with the instructor via email, and many assignments will require work to be submitted via email.
Whether you use your Dowling email account as your primary email or not, you are required to get a Google gmail account as well, so that you will have access to the various Google products you need to do the work for this course.
Students must do the assignments steadily throughout the semester, not just to show that they know the material, but to give them the practice they need to learn the material well. Therefore, students are encouraged to submit all assignments on time. If an assignment is submitted one week late there will be a 50% penalty for that assignment. No more than three late assignments will be accepted during the semester. No assignments will be accepted that are two or more weeks late.
There will not be an in-class midterm exam. The mid-term evaluation will be based on the notebook (paper and/or blog), assignments and quizzes.
An open notes, open computer/calculator final will be given. The final will be given on line during a Skype-supervised session.
The syllabus and the course objectives that follows are derived in part from the IEEE/ACM "Computing Curricula 2001 Computer Science" - Final Report - (December 15, 2001) by the Joint Task Force on Computing Curricula, IEEE Computer Society, Association for Computing Machinery.
If your programming preparation is weak or nonexistent or your preparation is in Pascal, Fortran or some other language that is very different from java, C and C++, you may have serious difficulty doing the assignments for the course. In that case, intensive tutoring and/or delaying taking this course until your programming skills are better aligned to the demands of the course may be worth considering. Please discuss the matter with the instructor.
Please consult the course assigments page frequently.
Using VNC via SSH: vnc.html