Heartland Community College Master Course Syllabus Division name: TECH Course Prefix and number: CSCI 130 Course Title: Computer Science I DATE PREPARED: January 1, 1999 DATE REVISED: March 21, 2012 PCS/CIP/ID NO: 1.1-110201 IAI Major Code: CS911 EFFECTIVE DATE OF FIRST CLASS: August, 2012 CREDIT HOURS: 4 CONTACT HOURS: 5 LECTURE HOURS: 3 LABORATORY HOURS: 2 CATALOG DESCRIPTION: Prerequisite: CSCI 101 with a grade of C or better, and one of the following with a grade of C or better or placement: TMAT 103, MATH 106, or MATH 109. Concurrent enrollment in CSCI 115 is suggested. CSCI 130 is the first course in a sequence of courses for majors in Computer Science. The course introduces a disciplined approach to problem-solving and algorithm development in addition to an introduction to objectoriented programming and data abstraction. The following topics are covered: selection, repetition, and sequence control structures; program design, testing, and good programming style; high-level programming languages; abstract and primitive data types; variable scope and access control; classes and objects; polymorphism and inheritance; arrays, sorting and files. TEXTBOOKS: Lewis, J., Loftus W. (2009). Java Software Solutions (7th ed.). San Francisco, CA: Addison Wesley. or a comparable text that addresses at a minimum the topics listed in the Course Outline and that provides students with the opportunity to achieve the learning outcomes for this course. RELATIONSHIP TO ACADEMIC DEVELOPMENT PROGRAMS AND TRANSFERABILITY: CSCI 130 fulfills 4 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. Learning Outcomes: Course Outcomes 1. Analyze objects and produce a model by identifying appropriate attributes, behaviors and relationships, refactoring as necessary. 2. Write, compile, run a simple program and identify the major components of the programs. 3. Differentiate between object references and primitive data types, and apply the appropriate data type. 4. Identify the anatomical components of a class definition, and use an existing class given its documentation. 5. Use basic I/O to communicate with the user to populate variables and control program flow. 6. Use arithmetic, logical, relational, and string manipulation expressions to process data. 7. Write a complete class definition. Within the class definition, write class and instance methods including the constructors. 8. Understand the limits of the scope of instance variables, local variables, and class variables. 9. Code necessary features of objectoriented languages, including proper use of inheritance and polymorphism. 10. Identify the algorithmic need for selection, choose an appropriate selection structure, and code the structure. General Education Outcomes CT1 CT1 Range of Assessment Methods Assignments, Labs, & Exams Assignments, Labs, & Exams Assignments, Labs, & Exams Assignments, Labs, & Exams PS1 PS2 Assignments, Labs, & Exams Assignments, Labs, & Exams Assignments, Labs, & Exams Assignments, Labs, & Exams PS3 Assignments, Labs, & Exams CT2 Assignments, Labs, & Exams 11. Identify the algorithmic need for repetition, choose an appropriate repetition structure, and code the structure. 12. Store data into arrays, including multidimensional arrays, and traverse those arrays to process the data. CT2 Assignments, Labs, & Exams 13. Implement a sort and/or search on a PS1 one dimensional array of primitives. 14. Implement appropriate program design using good programming style. Assignments, Labs, & Exams PS2 Assignments, Labs, & Exams Assignments, Labs, & Exams COURSE/LAB OUTLINE: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Introduction to an object-oriented programming language Structure of an object oriented language Numeric variables (including a discussion on number bases) and constants Statements, expressions, and operators Classes and Objects Methods Scope of variables and access control Inheritance and Polymorphism Program Control Arrays METHOD OF EVALUATION (Tests/Exams, Grading System): Exams/Assignments: Assignments Exams Comprehensive Final Total % 50 20 30 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.