Central Connecticut State University Spring, 1999 CS 151 -- Computer Science I -- 4 Credits Section 02 MWF 01:00p-02:10 PM Room 208 Maria Sanford 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.1.6 or higher programming environment 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: Java Software Solutions, Foundations of Program Design, by Lewis and Loftus., Addison Wesley, 1998 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 (programs). 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 off my Web page, at the URL listed below. 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 off my Web page, at the URL given below. 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 and project assignments are listed below. Project descriptions are available on the CS 151 Course Web Page, immediately off my Web page at the URL listed below. Make-up exams are scheduled by appointment only. Grading: Your final grade will be based on computer projects and in-class exams, 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: MWF 12:00 -- 12:50 PM and TR 4:15 -- 5:10 PM, 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, email me at neville@ccsu.edu, (no comma at the end of the email address) or call me at 832-2719 (work). My Web page URL (Web address) is http://www.cs.ccsu.ctstateu.edu/~neville. (Again, no period at the end of the URL.) Week No. Reading and Project Assignments 1. 1/25 Chapter 1, Computer Systems. Chapter 2, Software Concepts. 2. 2/1 Chapter 3, Program Elements. 3. 2/8 Chapter 3 continued. 2/12 and 2/15 Lincoln's and Washington's Birthdays, No Classes! 4. 2/17 Chapter 3 continued. Project 1 due 2/19 5. 2/24** Exam 1 Chapter 4, Objects and Classes. 6. 3/1 Chapter 4 continued. 7. 3/8 Chapter 5, More Programming Constructs. 8. 3/15 Chapter 5 continued. Project 2 due 3/19 3/22 to 3/26 Spring Recess, No Classes! 9. 3/29 Chapter 6, Objects for Organizing Data. 4/2 Holiday, No Class! 10. 4/5 Chapter 6 continued (includes arrays). Project 3 due 4/9 11. 4/12 Chapter 6 continued (includes records). 12. 4/19** Exam 2 Chapter 7, Graphics. Project 4 due 4/23 13. 4/26 Chapter 8, Inheritance Chapter 9, Enhanced Class Design (as time permits). Project 5 due 4/30 14. 5/3 Chapter 13, Sorting and Searching (briefly). (Chapter 10, Graphical User Interfaces, will have been covered as we have gone along.) 15. 5/10 Review and catch up. Project 6 due 5/12 5/14 Reading Day, No Classes! 16. 5/17** Final Exam 2:00 -- 4:00 PM (comprehensive). Have a Good Summer!