SYLLABUS CMPS 1043-02: Computer Science 1 Catalog Description: Introduction to methods of problem solving and algorithm development. A high level programming language is taught with an emphasis on program design, coding, debugging, testing, and documentation. Discussion of ethical, social, and legal issues related to computing. Instructor: Dr. Catherine V. Stringfellow Office: Bolin Science Hall, Room 128C Office phone: 397- 4578 E-mail: catherine.stringfellow@mwsu.edu Office Hours: M,W, F 9-10, 11-12, MW 2-3 and 5-5:30pm, T R 11-12 and by appt Credits: 3 (3 hour lecture) Course Prerequisite: Concurrent enrollment in MATH 1233 or 1533 or MATH 1203 (Bus. majors) Required Textbook and Materials: Starting Out with C++, 5th ed., Gaddis, Walters, Muganda General Objectives 1) to learn the “software engineering" approaches to designing and implementing computer programs 2) to learn the concepts of data abstraction and modularization 3) to learn the syntax and structure of C++ concepts such as objects and arrays Specific Objectives At the conclusion of this course, students should be able to: 1) analyze the requirements of a problem; 2) develop designs to solve moderately complex problems; 3) implement solution designs by coding them into the C++ programs, then compile and execute them. 4) write programs containing object-oriented concepts and arrays Major Topics 1) Complex algorithm discovery and design 2) Introduction to software engineering programming concepts 3) The syntax of C++ for object-oriented programming and arrays 4) Introduction to the idea of a data structure Instructional Methods and Techniques 1) The class will meet twice for 1 1/2 hours of lecture each week. 2) Lectures will stress exploration, demonstrations, and hands-on activities 3) Assignments will provide an opportunity for the students to explore, develop and program solutions to problems in C++ Assignments for Course 1) Readings from the textbook 2) Homework assignments and Quizzes 3) Programming assignments 4) Exams Attendance: Students are expected to attend all lectures and the lab orientation. Exams and Assignments: There will be three exams and one comprehensive final exam. Exams cover material from the text as well as programming activities. The lectures may not cover all the material in the textbook. There will be several major programming projects as well as small programming assignments. The projects will be expected to be complete and robust, including good user interfaces and the ability to handle improper input. Course Evaluation: Homework Assignments/quizzes Programming Assignments Three Tests 1 Final Exam = 100 pts. = 450 pts. = 300 pts. = 150 pts. Grades may be determined according to this scale (approximate): A 90% - 100% B 80% - 89% C 65% - 79% D 55% - 64% Program Grading Policy: Students will be required to turn in programs according to the policy that will be handed out. Honor Policy: Cheating will not be tolerated. Plagiarism will result in, at best, an "F" for the assignment. Any student caught cheating on an exam will be given a zero on the exam. Repeat offenders will be given an F for the course (that F will be computed in the grade point average even after the course has been repeated). All work must be your own. You may discuss the material in the course and help one another, however, I expect any work you hand in for a grade to be your own. A simple way to avoid inadvertent plagiarism is to talk about the assignments, but don’t read each other's work or write solutions together. Keep scratch paper and old versions of assignments until after the assignment has been graded and returned to you. If you have any questions about this, please see me immediately. Computer Science Tutoring - Fall 2006 Tutoring will be available in Bolin 119. Tutors will assist with programs and homework for CS classes. The hours are as follows: Monday 9:00 – 11:00 & 2:00 – 4:00 Tuesday 10:00 – 2:00 Wednesday 10:00 – 12:00 & 2:00 – 4:00 Thursday 12:00 – 2:00 & 3:00 – 5:00 Friday 9:00 – 12:00 & 1:00 – 3:00 Tentative CMPS 1043 Schedule Fall 2004 Week 1 Aug. 29 Aug 31 Topics/Materials Course Information; 1.1-1.5 – Computers and Programming Numbering Systems - Handout 2 Sept 5 Sept 7 Problem Solving 1.6-1.7, 2.1 CH 2: Types; Values and Variables 3 Sept 12 2.13-2.15, CH 3: Assignment Statement, Expressions CH 3.8-3.9: Formatting; Library Functions Sept 14 4 Sept 19 Sept 21 3.12:File I/O 5 Sept 26 Sept 28 6 Oct 3 Exam 1 CH4: Relational Ops; IF structures Nested IF Oct 5 Review Switch 7 Oct 10 Oct 12 5.1-5.7: WHILE Complex Logic 8 Oct 17 Oct 19 9 Oct 24 Oct 26 10 Oct 31 Nov 2 5.8 FOR, nested FOR Review Exam 2 6.1-6.6: Functions 6.7-6.9, 6-13: Parameters Parameters; 6-16: Stubs and Drivers 11 Nov 7 Nov 9 12 Nov 14 Nov 16 CH 7: Classes and Objects CRC cards Abstraction; Declare, define and use a class Constructors. Practice with objects 13 Nov 21 Classes as parameters; 8.1-8.7, 8.14: 1D arrays Thanksgiving 8.6, 9.1:Array Apps; 8.8:Array parameters 8.9-8.10: multi-dim arrays; Review (last 20 minutes) Exam 3 Review Final Comprehensive Exam Tuesday 8-10:30am Nov 23 14 Nov 28 Nov 30 15 Dec 5 Dec 7 16 Dec 12 Assignments (daily homework not listed) Read CH 1 of text; Email Assignment Homework Read CH 2 for next week Due: Email Assignment Assign Program 1 Read CH 3 Due: Program 1 Assign: Program 2 Due: Program 2 Assign: Program 3 Read CH 4 Due: Program 3 Assign: Program 4 Read CH 5 Homework: Pattern practice Due: Program 4 Assign Program 5 Read CH 6 Homework: Simple Function work Due: Program 5 Assign: Program 6 (with functions); Read CH 7 Homework: OO driver Due: Program 6 Assign: Program 7; Read CH 8 Read rest of CH 8 DUE: Program 7