CS 501 - Foundations of Computer Science


Classes: MW 6:45 pm - 8:00 pm, Maria Sanford Hall 310
Instructor: Dr. Zdravko Markov, 30307 Maria Sanford Hall, (860)-832-2711, http://www.cs.ccsu.edu/~markov/, e-mail: markovz at ccsu dot edu
Office hours: MW 10:00am - 12:30pm, or by appointment

Catalog description: Software design for structuring and manipulating data. Topics include stacks, queues, hash tables, trees, graphs, advanced sorting, and analysis of algorithms.

Prerequisites: CS 500 or CS 153 or permission of instructor

Course objectives: Upon successful completion of the course the student will be able to:

Required textbook: Robert LaFore, Data Structures and Algorithms in Java, 2nd Edition, Sams Publishing, 2002, ISBN:0-672-32453-9. Required software: BlueJ - an integrated Java programming environment (http://www.bluej.org/).

Class Participation: Regular attendance and active class participation is expected from all students. If you must miss a test, try to inform the instructor of this in advance.

Assignments and tests: Reading and problem assignments are listed under the schedule of classes. Some of the problems will be worked in class. There will be 2 tests and a final exam. They will include material from the textbook, the lectures, and the programming projects.

Programming projects:  There will be 6 projects requiring the use of BlueJ to write and run Java programs. The projects with their due dates are listed below (the project descriptions are given on separate pages). All projects must be submitted through the Blackboard Vista course management system available through CentralPipeline (Student > Blackboard Vista Courses > CS 501) or directly at https://vista.csus.ct.edu/webct/logon/1731901082031

Honesty policy: The CCSU honor code for Academic Integrity is in effect in this class. It is expected that all students will conduct themselves in an honest manner and NEVER claim work which is not their own. Violating this policy will result in a substantial grade penalty, and may lead to expulsion from the University. You may find it online at http://web.ccsu.edu/academicintegrity/UndergradAcadMisconductPolicy.htm. Please read it carefully.

Grading: The final grade will be based on projects (60%), tests (20%), and the final exam (20%), and will be affected by classroom participation, conduct and attendance. The letter grades will be calculated according to the following table:
A A- B+ B B- C+ C C- D+ D D- F
95-100 90-94 87-89 84-86 80-83 77-79 74-76 70-73 67-69 64-66 60-63 0-59

Unexcused late submission policy: Projects submitted more than two days after the due date will be graded one letter grade down. Projects submitted more than a week late will receive two letter grades down. No submissions will be accepted more than two weeks after the due date.

Tentative schedule of classes, assignments, projects and tests (by week)

Note: Dates will be assigned for all projects due days and tests. Check the schedule regularly for updates!
  1. Overview of Algorithms, Data Structures, and Object-Oriented Programming
  2. Arrays, efficiency of algorithms, big O notation
  3. Simple sorting algorithms
  4. March 8-10: Stacks and Queues
  5. March 29-31: Linked lists
  6. April 5-7: Recursion
  7. April 7:  Test 1
  8. April 12, 14: Advanced Sorting
  9. April 19, 21: Binary trees
  10. April 26, 28: Hash  tables
  11. April 28-May 2: Test 2 (Chapters 7, 8, and 11)
  12. May 3, 5: Graphs
  13. May 10, 12: Weighted Graphs
  14. May 19-23: Final Exam

Project 1

Not available at this time.

Project 2

Not available at this time.

Project 3

Not available at this time.

Project 4

Not available at this time.

Project 5

Not available at this time.

Project 6

Not available at this time.

Test 1

Not available at this time.

Test 2

Not available at this time.

Final Exam

Not available at this time.