C O U R S E O U T L I N E CS 500 Computer Science for CIT Fall Semester, 2001 2001/02 Catalog data: Concepts of Computer Science, including data representation, computational theory, architecture and instruction sets, operating system components and programming paradigms such as principles of control structures, object- oriented programming and Web-based languages. Prerequisites: Permission of department chair and program coordinator. Textbooks: 1. John Lewis and William Loftus, Java Software Solutions, second edition. Addison-Wesley, 2000. 2. Robert Lafore, Data Structures and Algorithms in Java, Waite group Press, 1998. Instructor: Neli P. Zlatareva, Ph.D., Professor of Computer Science. Office MS204. Phone (860) 832-2723. E-mail zlatareva@ccsu.edu Course Web side http://www.cs.ccsu.edu/~neli/ Office hours MWF 9:00 a.m. - 10:00 a.m. TR 6:30 p.m. - 7:00 p.m. Course Objectives: Having completed this course successfully, the student should - Understand the basic principles of computer science and computer organization. - Design Java programs using basic control structures (linear, iteration, selection and recursion). - Define Java objects, methods and classes and use them in definite application settings. - Write applets and GUI applications. - Understand and use basic data structures, nemely arrays, linked lists, stacks, queues, and binary trees. Class topical outline and assignments for the week: Week 1 September 6 - Introduction to computer systems and computer languages. - Introduction to Java language and Object-Oriented Programming. - Assignments: *) Read Chapter 1. **) Ensure an access to the Micro Lab by obtaining an account on the NT computers. ***) Install JAVA 2 SDK on your home computer. Download from http://java.sun.com/products/jdk/1.2/ For installation instructions see http://java.sun.com/products/jdk/1.2/install-windows.html Week 2 September 10 - September 14 -------------------------------------------------------------------------- | NOTE: Tuesday, September 11-th will be held in the PC classroom in the | | MicroLab. | -------------------------------------------------------------------------- - Primitive data types and their internal representation. Number systems and conversions between numbers in different bases. Introduction to computer architecture and instruction sets. - Variables. The assignment statement and arithmetic operators. - Assignments: *) Study Appendix B. **) Study Chapter 2. ***) Test your JAVA software with the provided on the course Web site example to ensure that it works properly. Week 3 September 17 - September 21 -------------------------------------------------------------------------- | NOTE: Tusday, September 18-th class will be held in the PC classroom | | in the Micro Lab. | -------------------------------------------------------------------------- - Objects, class libraries and packages. Introduction to applets. - The selection control structure (if, if-else and switch statements). Boolean expressions. - Iteration: while loops. - Assignments: *) Study $3.1, $3.2, $3.3, $3.4 **) Do the assigned Lab problems (see course Web site). Week 4 September 24 - September 28 - Conversions between data types. - Increment, decrement and logical operators. - Iteration: do and for loops. - Assignments: *) Submit homework #1. **) Complete Chapter 3 and review Chapters 1 and 2. Week 5 October 1 - October 5 - Test #1. - Objects and classes. Creating class and instance methods. - Method overloading. The StringTokenizer class. - Assignment: *) Study Chapter 4. Week 6 October 8 - October 12 - Static variables and static methods. - Reading from a text file and writing to a text file. - Arrays of primitive types and arrays of objects. - Assignments: *) Submit homework #2. **) Study Chapter 5, $6.1, $6.2, and $8.4 Week 7 October 15 - October 19 - The sorting problem: selection and insersion sorts. - Sorting arrays of objects. - Dynamic arrays (vectors) and multidimentional arrays. - Assignment: *) Complete Chapter 6 and review Chapters 4 and 5. Week 8 October 22 - October 26 - Inheritance. Creating subclasses. Overriding methods. - Class hierarchies. Polymorphism. - Interfaces and listeners. - Assignments: *) Submit homework #3. **) Study Chapter 7 and review Chapter 9. Week 9 October 29 - November 2 - Test #2. - Exceptions and I/O streams. The try statement. - Introduction to Software Engineering. - Assignment: *) Complete Chapter 8 and review Chapter 10. Week 10 November 5 - November 9 - Recursion and recursive programming. - Recursion vs iteration. - Application of recursion: merge sort. - Assignments: *) Submit homework #4. **) Study L&L Chapter 11 and Lafore Chapter 6, pages 203 - 234. ***) Review L&L Chapters 4 and 5. Week 11 November 12 - November 16 - Introduction to Abstract Data Types (ADTs): linked lists. - Operations on linked lists. - Doubly linked lists. - Assignments: *) Study L&L $12.1 and $12.2 **) Study Lafore Chapter 5, pages 146 - 165 and 182 - 190. ***) Review L&L Chapters 6 and 7. Week 12 November 19 (Thanksgiving recess) - Test #3. - Assignment: *) Review Lafore Chapters 2 and 3. Week 13 November 26 - November 30 - Data structures: stacks. Operations on stacks. - Applications of stacks. - Assignments: *) Submit homework #5. **) Study Lafore Chapter 4, pages 91 - 105, and Chapter 5, pages 167 - 169. ***) Review L&L Chapters 8, 9 and 10. Week 14 December 3 - December 7 - Data structures: queues. Operations on queues. - Applications of queues. - Assignments: *) Study Lafore Chapter 5, pages 105 - 121, and Chapter 5, pages 170 - 172. **) Review L&L Chapters 11 and 12. Week 15 December 10 - December 14 - Data structures: binary trees. - Summary and review. - Assignments: *) Submit homework #6. **) Study Lafore Chapter 8, pages 293 - 312. ***) Review Lafore Chapters 4, 5 and 6 (only parts covered in class). Exam week December 17 - December 21 - Final exam. - Review and discussion. Final exam: This will be a cumulative test of representative content of the entire semester's course offerings. Tests: There will be three tests designed as elemental evaluation devices intended to prompt the student to stay abreast of assigned topics. Class discussion: Since the style of the class sessions will be interactive, the student is expected to come to the class with prepared questions, comments and answers to the assigned exercises. Homeworks: The student will be assigned six official homeworks. The student is responsible for constructing a set of test cases which covers all of the possibilities inherent in that program assignment. The student must submit the following materials for each program: title page of the assignment with student name, a pseudo code (or a flowchart, whichever is preferred) of the problem's solution, a listing of the program, a hardcopy of ALL runs of the program which are needed to demonstrate the correctness of the program, and the disc with the program and all relevant files. Homeworks will be graded upon degree of success, precise implementation of the theoretic concepts, and use of an appropriate program structure. There will be a penalty for later submissions. To successfully complete the course, all homework assignments must be submitted. Academic honesty: All homework and other written assignments must be an individual effort of the student submitting the work for grading. See the section "Policy on Academic Honesty" in the CCSU Student Handbook. Attendance: It is expected that the student will attend class sessions regularly. Absences result in the student being totally responsible for the make-up process. Student conduct: It is expected that all students will conduct themselves in a respectful manner, and will assist in maintaining an atmosphere conductive to learning in the classroom. Grades and evaluation: The student will be evaluated regularly during the semester and should be aware of his/her progress continuously during the semester. The final grade for the course will be computed based on the following results: - Test 1: 5 points. It provides 5% of the final grade. - Test 2: 10 points. It provides 10% of the final grade. - Test 3: 15 points. It provides 15% of the final grade. - Homeworks 1, 2, 3 and 4: 5 points. Each provides 5% of the final grade. - Homeworks 5 and 6: 10 points each. Each provides 10% of the final grade. - Final exam: 30 points. It provides 30% of the final grade. Total points Final grade ------------ ----------- 94 - 100 A 90 - 93.99 A- 87 - 89.99 B+ 84 - 86.99 B 80 - 83.99 B- 77 - 79.99 C+ 74 - 76.99 C 70 - 73.99 C- 67 - 69.99 D+ 64 - 66.99 D 60 - 63.99 D- below 60 F