Heartland Community College Master Course Syllabus Division name: Technology Course Prefix and number: CSCI 224 Course Title: Programming in JAVA DATE PREPARED: January 1, 1999 DATE REVISED: April 30, 2008 PCS/CIP/ID NO: 1.1-110202 IAI NO. (if available): EFFECTIVE DATE OF FIRST CLASS: January 1, 2009 CREDIT HOURS: 3 CONTACT HOURS: 4 LECTURE HOURS: 2 LABORATORY HOURS: 2 CATALOG DESCRIPTION: Prerequisite: CSCI 131 with a grade of C or better, or equivalent. Students who have completed CSCI 130 AND CSCI 131 will not be given credit for CSCI 224 toward their program of study. This course is intended to be both an introduction to Java and the first course in a series designed to teach the fundamentals of Java and prepare students for Java Programmer Certification and Java Developer Certification. The course covers fundamental object-oriented programming concepts and helps develop problem-solving skills using an object-oriented approach. It also covers development of programs using the techniques of object-oriented programming and design, and the basics of the Java programming language. The course will give students experience with classes and objects, inheritance and derived classes, and reusable code. Programming assignments will provide practical experience with Java and OOP concepts. TEXTBOOKS: Due to the rapidly changing nature of the Computer Science field, it is impossible to predict which book will actually be used for the course. An example text is: Horstmann, C. S., Cornell, G. (2008) Core Java, Volume I – Fundamentals. Upper Saddle River, NJ: Prentice Hall., 8th Edition. RELATIONSHIP TO ACADEMIC DEVELOPMENT PROGRAMS AND TRANSFERABILITY: CSCI 224 fulfills 3 semester hours of elective credit for the A.A. and A.S. degrees. It should transfer to most colleges and universities as an elective course. However, since this course is not part of either the General Education Core Curriculum or a baccalaureate major program described in the Illinois Articulation Initiative, students should check with an academic advisor for information about its transferability to other institutions. COURSE OBJECTIVES (Learning Outcomes) Learning At the completion of this course, the student should be able Assessment Outcome to: Tool Item CO1 Class Participation & Exams 2. Apply the object-oriented principles of encapsulation, composition, abstraction, polymorphism, and inheritance to PS4 analyze problems and design solutions. Assignments, Labs, Exams, & Comprehensive Final 3. Use classes, objects, and methods to implement objectoriented designs. Assignments, Labs, Exams, & Comprehensive Final 4. Identify and use appropriate data types and control structures within class and method implementations. Assignments, Labs, Exams, & Comprehensive Final 5. Determine appropriate testing procedures for simple problem algorithm associated computer solutions. Assignments, Labs, Exams, & Comprehensive Final 6. Describe object oriented programming and its underlining principles and methods. Class Participation & Exams 1. Explain classical problem solving strategies and how to implement them in varying circumstances. CO1 7. Select and implement appropriate data structures to store and process large amounts of data for a given problem. Assignments, Labs, Exams, & Comprehensive Final 8. Implement basic searching and sorting techniques. Assignments, Labs, Exams, & Comprehensive Final 9. Solve complex problems using threads. Assignments, Labs, Exams, & Comprehensive Final 10. Identify and correct thread-related problems including deadlock, livelock, and starvation Assignments, Labs, Exams, & Comprehensive Final COURSE/LAB OUTLINE: 1. Introduction to Objects 2. Basic Java syntax 3. Documentation 4. Operators and Control Structures 5. Encapsulation and Implementation Hiding 6. Inheritance and Polymorphism 7. Initialization and Cleanup 8. Error and Exception Handling 9. The IO systems (1.0 and 1.1+ ) 10. Object Collections 11. Threads METHOD OF EVALUATION (Tests/Exams, Grading System): Exams/Assignments: Assignments Exams Comprehensive Final Total % 50 30 20 100 ASSIGNMENTS: Each student will be expected to complete graded programming assignments during the semester. These assignments allow the student to demonstrate both their knowledge of the subject matter and the integration of the problem solving strategies necessary for programming. The assignments will also assist students in preparing for the exams. Each assignment must include proper documentation and program code. EXAMS: The Computer Science Department believes that the demonstration of programming is absolutely necessary in order to assess a student’s progress. Therefore the exams will require students to write code. The problems used in exams will be representative of the problems presented in the assignments and labs. Grading Scale: A B C D F 90% - 100% 80% - 89% 70% - 79% 60% - 69% Below 60% REQUIRED WRITING AND READING: There are no research or writing assignments in this course. However, documentation is an important part of computer programming. Therefore, students will be expected to turn in complete, well-written documentation with each of their programs. All programs are to include descriptive comments within the source code. In addition, certain other documentation methods taught during the course of the semester will be required.