C O U R S E O U T L I N E CS 151 Computer Science I (Summer, 2019) 2018/19 Catalog data: First course in Computer Science. Introduces the fundamental concepts of computer programming with an object-oriented language with an emphasis on analysis and design. Topics include data types, selection and iteration, instance variables and methods, arrays, files, and the mechanics of running, testing and debugging. Prerequisites: MATH 119. Textbook: John Lewis and William Loftus, Java Software Solutions, ninth edition, Addison-Wesley, 2017. Instructor: Neli P. Zlatareva, Ph.D., Professor of Computer Science. Office MS303 Phone (860) 832-2723. E-mail zlatareva@ccsu.edu Course Web site http://www.cs.ccsu.edu/~neli/ Course Objectives: Having completed this course successfully, the student should - Understand the basic principles of object-oriented programming. - Design and debug Java programs using basic control structures (linear, iteration and selection). - Define Java objects, methods and classes, and use them in definite application settings. - Understand and utilize arrays and text files. - Learn how to solve non-trivial problems, and how to implement their solutions. Class topical outline and assignments for the week: Week 1 May 28 - May 30 - Introduction to computer systems and computer languages. Binary numbers. - Introduction to Java language and Object-Oriented Programming. - Writing and running Java programs. Comments, identifiers and reserved words. Character strings. - Primitive data types. Variables. - The assignment statement and arithmetic operators. - Data conversion. - Interactive programs. The Scanner class. - Introduction to objects, classes, class libraries and packages. - Wrapper classes. - Assignments: 1) Install jdk on your home computer. Download from http://www.sun.com Test your JAVA software with provided on the course Web site examples to ensure that it works properly. 2) Read Chapter 1. 3) Do at home pp 1.1 and pp 1.2 (page 54) 3) Submit homework 1 on Sunday, June 2 via BB Learn. 4) Do Lab 2 problems 1, 2, 3. 5) Study Chapters 2 and 3, and do Self-Review questions. Week 2 June 3 - June 6 - Boolean expressions. Increment, decrement and logical operators. - Conditionals. The if - else and switch statements. - Loops. - Formatting output. - Assignments: 1) Submit homework 2 on Sunday, June 9. 2) Do Lab 2, problem 4 and Lab 3 problems. 3) Do Self-Review Questions from Chapters 5 and 6. Week 3 June 10 - June 13 - Test #1 will be held on Monday, June 11. It will be on Chapters 1, 2, 3, 5 and 6. - More about JAVA classes. Writing user-defined classes and methods. - Encapsulation and visibility modifiers. - Parameter passing. - Static variables and static methods. - Method overloading. - Assignments: 1) Submit homework 3 on Sunday, June 16. 2) Study Chapter 4 and the covered part of Chapter 7. Week 4 June 17 - June 20 - Dependencies among classes, and dependencies among objects of the same class. - Test #2 will be held on Wednesday,June 19. It will be on classes and objects, but everything covered so far is a must. - Interfaces. - Enumerated types. - Reading from a text file and writing to a text file. - Arrays of primitive types. - Assignments: 1) Submit homework 4 on Friday, June 21. 2) Study Chapter 7 -- review Chapters 3 and 4. 3) Do Self-Review questions from Chapter 7 and Chapt 8 (8.1 and 8.2) Week 5 June 24 - June 27 - Arrays of objects. Command-line arguments. - Dynamic arrays (ArrayList class) and multidimentional arrays. - Final exam will be held on Thursday, June 27. Review tests 1 and 2, labs and homework projects. Pay special attention to arrays. - Introduction to class hierarchies. - Assignments: 1) Submit homework 5 on Wednesday June 26. 2) Study Chapter 8, and do Self-Review Questions. Tests: There will be two tests during the semester designed as evaluation devices intended to prompt the student to stay abreast of assigned topics. Make-ups for missed tests will only be granted in exceptional cases, after a preliminary arrangement (before the test takes place - a phone call, or an e-mail message explaining the reason for missing the test will do). NO EXTRA WORK TO COMPENSATE FOR A POOR PERFORMANCE ON TESTS WILL BE GIVEN, except for the extra 5 points already included into the grading formula. Final exam: This will be a cumulative objective test of the entire semester's course offerings. 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 five 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 in a folder with student name and class section the following documentation for each program: a pseudo code or a flowchart 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, the disk with the program, and all relevant files needed to successfully run the program. Homeworks will be graded upon degree of success, precise implementation of the theoretic concepts, and use of an appropriate program structure. All homework assignments must be submitted by the due date. There will be a penalty for late 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 as follows - Test 1: 20 points. It provides 20% of the final grade. - Test 2: 20 points. It provides 20% of the final grade. - Homeworks 1 and 2: 5 points each. Each provides 5% of the final grade. - Homeworks 3, 4 and 5: 10 points each. Each provides 10% of the final grade. - Final exam: 25 points. It provides 25% of the final grade. Maximum points: 105, 5 of which are bonus points. The final grade for the course will be defined as follows: Total points Final grade ------------ ----------- 93 - 105 A 90 - 92.99 A- 87 - 89.99 B+ 83 - 86.99 B 80 - 82.99 B- 77 - 79.99 C+ 73 - 76.99 C 70 - 72.99 C- 67 - 69.99 D+ 63 - 66.99 D 60 - 62.99 D- below 60 F