Central Connecticut State University Spring, 2000 CS 151 -- Computer Science I -- 4 Credits Section 01 Tue Thur 11:00 AM -- 12:15 PM Room NC C224 Copernicus Hall Instructor: Dr. Charles W. Neville Course Description: This is a course in basic programming concepts for computer science majors. Because the course is designed for professionals, we expect a lot of you. The underlying theme of the course is how to solve problems in an exact enough fashion to convert the solutions into good programs. The course emphasis is on the analysis of problems, the design of algorithms for solving problems, and writing programs in the Java programming language. Java is an Object Oriented, Structured programming language with a syntax modeled on C. It comes with a remarkably capable set of foundation classes, which make it easy to write programs using the Windows, Mac, or X-Windows graphic user interface. Students will learn to write substantial Java applets and applications involving programmer defined classes, objects, methods, and event handling, as well as built in objects such as graphics objects, scroll bars, text fields, and buttons. Students will be expected to complete a substantial number of programming projects. Students will program in SUN Microsystems' JDK 1.2.2 or higher programming environment (often referred to as Java 2) on Windows 95 and 98 machines. To the maximum extent possible, class time will be divided between lecture-discussions of fundamental concepts and hands on programming practice. Required Text: John Lewis and William Loftus, Java Software Solutions, Foundations of Program Design, 2nd edition, Addison Wesley, 2000, ISBN 0-201-61271-2 The student will also need at least five 3.5" HD floppy disks, and two or three folders WITH POCKETS in which to hand in computer projects. Other Good Books: Java for Students, 2nd edition, by Douglas Bell and Mike Parr, Prentice Hall, ISBN 0-13-010922-3 Java, How to Program, 2nd edition, by Deitel & Deitel, Prentice Hall, ISBN 0-13-899394-7 Java Resources Page: There is a comprehensive Java resources page immediately off my Web page, http://www.cs.ccsu.edu/~neville/. (No period at the end of the URL.) This page includes a large number of demos and tutorials, and links to SUN Microsystems Java pages, including the SUN Microsystems Java Development Kit (free for the downloading!) and the SUN Microsystems Java API documentation. CS 151 Course Web Page: There is a CS 151 course page immediately off my Web page at the URL listed above.. This page includes demos, tutorials, project descriptions, and the course syllabus, as well as a link to the Java Resources Page. Prerequisite: Math 115, Trigonometry. The mathematics course may be taken concurrently. THERE ARE NO COMPUTER PREREQUISITES. The course assumes NO PRIOR KNOWLEDGE of computers. Course Objectives: Upon successful completion of this course, the student will: 1. Understand the basic structure of Java programs. 2. Describe and design algorithms using pseudo-code and/or flowcharts. 3. Understand and use the basic Java control structures, such as if ... else, switch, while, do, for, and break. 4. Define classes and use objects. 5. Pass messages to objects and write methods. 6. Understand and use the basic Java data types. 7. Understand and use arrays. 8. Write applets and applications. 9. Draw on graphics objects. 10. Understand and use inheritance. 11. Understand and use abstract classes and interfaces. 12. Understand text fields, labels, buttons, lists, menus, and other GUI objects from the Java Abstract Window Toolkit. Assignments and Exams: Reading assignments and examination dates are listed below. Exam dates are marked by a **. Make-up exams will be scheduled by appointment only. Project assignments will be made in class, and complete descriptions will be available on the CS 151 Course Web Page, immediately off my Web page at the URL listed above. Grading: Your final grade will be based on computer projects (1/3), in-class exams (1/3), and the final exam (1/3), and will be affected by classroom participation, conduct and attendance. The exams will include questions from the textbook and lab assignments on the computer. The numerical grades for the exams will be averaged and then converted to a letter grade. Attendance: Two unexcused absence are allowed, and any work missed must be made up. The student should notify the instructor concerning absences, or there will be a grade penalty. Student Conduct. It is expected that all students will conduct themselves in a respectful manner, and will assist in maintaining an atmosphere conducive to learning in the classroom. Honesty Policy. It is expected that all students will conduct themselves in an honorable and honest manner. It is alright to give and receive help on projects, but no student may claim another's work as his or her own, and no student may have another student's program in his or her possession. Students may use code from published sources, but if a student uses code from a source other than class or the text, the student should provide a reference in comments. Office Hours: MW 2:00 -- 2:50 PM, MW 4:30 -- 5:00 PM and Tue--Thur 10:00 -- 10:50 AM, or by appointment, especially before and after class. Feel free to stay for help, and feel free to stay to chat. My office is in room 205 Maria Sanford Hall. In an emergency call me at 832-2719 (work). My Web page URL (Web address) is http://www.cs.ccsu.edu/~neville/. (Again, no period at the end of the URL.) Week No. Reading Assignments 1. 1/25 Chapter 1, Computer Systems.. 2. 2/1 Chapter 2, Objects and Primitive Data, sections 2.1 -- 2.4. (The dash means THROUGH.) 3. 2/8 Chapter 2 continued, sections 2.5 -- 2.10. 4. 2/15 Chapter 3, Program Statements, sections 3.1 -- 3.5. 5. 2/22 Chapter 3 continued, sections 3.6 -- 3.9. 6. 2/29** Exam 1 (covers chapters 2 --3). Chapter 4, Writing Classes, sections 4.1 -- 4.3.. 7. 3/7 Chapter 4 continued, sections 4.4 -- 4.8.. 8. 3/14 Chapter 5, Enhancing Classes. 3/18 to 3/26 Spring Recess, No Classes! 9. 3/28 Chapter 6, Arrays and Vectors, sections 6.1 -- 6.2. 10. 4/4 Chapter 6 continued, section 6.3. 11. 4/11 Chapter 6 continued, records + sections 6.4 -- 6.6. 12. 4/18** Exam 2 (covers chapters 4 -- 6). Chapter 7, Inheritance. 13. 4/25 Chapter 8, Exceptions and IO Streams, sections 8.1 -- 8.3. Chapter 8 continued, sections 8.4 -- 8.5. 14. 5/2 Chapter 9, Graphical User Interfaces. 15. 5/9 Review and catch up. 5/11 Reading Day, No Classes! 16. 5/16 Exam Week, No Classes! 5/18** Final Exam 11:00 AM to 1:00 PM (comprehensive). Have a Good Summer!