David Keil     Framingham State College        Fall 2003

63.152: Computer Science I Using C++

SYLLABUS


Course description

An introduction to problem solving using the C++ language. The course stresses algorithms, coding, documentation, testing, and debugging (error detection and correction). Topics include hardware basics, number systems, human-computer interaction, social and professional issues related to computing, ethics, objects, I/O in C and C++, control structures, types, functions, virtual-machine concepts, Internet computing, client-server computing, and general features of programming languages, including C++, C, and Java.

Overview

C++ is an object-oriented extension of the C language and is widely used in the software industry. We will cover the basics of both C and C++, referring in particular to the ANSI C standard and the ANSI/ISO standard for C++. We will present some concepts related to the Java language, with Java examples.

Structured and object-oriented programming begin with an emphasis on design. You will think logically to plan a solution to a problem; then you will code a program, test it, and correct errors, documenting your program with comments and meaningful identifiers.

This course emphasizes hands-on learning in the lab or on your own computer. Our tools will include C++ compilers and (at the start) software to simulate the operations of a microprocessor by executing your programs written in a simplified language.

For many students this course is challenging because it demands new ways of thinking about problem solving, computation, and logic. Homework will require extensive use of a C++ compiler.

Some newer features of this course include an introduction to the Unified Modeling Language (UML), used for specification and design, and attention to issues of non-algorithmic, interactive computation.

Expected skills on entry

§   Some experience using a computer;

§   Competence in high-school algebra as shown by score of “2” in FSC math placement test, or by participation in College Algebra (43.123);

§   Readiness to read a college textbook and ask questions in and out of class.

Performance objectives

1.      To trace a looping and branching computation specified in a flowchart;

2.      To recognize the concepts of an algorithm and of the three basic control structures;

3.      To use a compiler to compile, test, and debug programs;

4.      To write comments to document code;

5.      To code screen output and keyboard input;

6.      To declare variables and assign them expressions as values;

7.      To manipulate binary numerals;

8.      To design solutions to simple problems;

9.      To recognize the basic vocabulary of structured and object-oriented programming

10.  To recognize basic syntax rules of C and C++;

11.  To use the standard C/C++ data types int, float, double, char, bool, and strings

12.  To translate simple word problems into programs, using valid branch and loop statements, including nested loops

13.  To define and use simple C/C++ functions

14.  To write simple structure-type or class declarations

Textbooks

·    Cay Horstmann, Computing Concepts with C++ essentials, 3rd edition (Wiley, 2003)

·    Supplementary chapters from a C++ textbook manuscript by Keil and Johnson

Reading text material related to the course is a must.

To contact instructor:

Office hours (Hemenway Hall 318A):

W, Th 9:30-10:30 a.m.;
M 2:30-3:30 p.m. (others by appointment)

Office: Hemenway Hall 318A

Telephone: (508) 626-4724

Email: dkeil@frc.mass.edu

URL: www.framingham.edu/faculty/dkeil

Compilers and network accounts

A C++ compiler is installed or installable on your laptop and is available in the FSC student computer labs. You may use any computer with a C++ compiler installed to do programming assignments. As a student registered for a CS course, you have a network account on the FSC server.

Classroom format

Format will center on lecture (with slides), discussion, and problem solving. Your questions and participation are important. Part of our responsibility is to express doubt about each other’s claims.

We will write some program code on the board; other code we will compile and run using a projector. On several occasions we may divide into in-class teams to solve discussion problems.

We will have one conversation in the classroom. Students may use laptops and enter and leave classroom consistent with a focused workplace governed by attention to business and by mutual respect.

Web aspect of course

This course is listed under http://framingham. blackboard.com. All course materials will be available there. The site hosts a private discussion board for students enrolled in the course. Please log in at the above URL and then enroll in “63.152 Computer Science I” to obtain access. Part of Home­work 0 is to respond to the message posted by instructor on the Discussion Board at the blackboard.com site, and we will be making other use of that site to communicate out of class.

Homework

Homework problems will be distributed with each of the seven topics. Each homework will consist of graded and ungraded programming problems, clearly distinguished. The graded component will be chiefly work done on the semester project.

Homework must be submitted on time for credit. It is strongly recommended that you start very early on each homework assignment and ask questions if any part is unclear or seems difficult.

The graded homework is part of the laboratory work you must do to master the material and succeed on the quizzes and exams. Ungraded homework problems will form the inspiration for most of the quizzes. On these homework problems, you are invited to collaborate with classmates in any way you wish. This work may be submitted for comment and advice.

Grading

Most of the grade will be programming assignments, exams and quizzes on the course material. There are no make-ups for quizzes, but the lowest two quiz grades will be dropped.

Homeworks and the project are graded for documentation of process, documentation of code, correctness, and testing. Material submitted late will be assessed for possible extra credit, and only after all on-time work is graded.

Part of the grade will depend on in-class determination via quizzes and exams that students by the end of semester have the basic skills listed as #1-6 on page 1 of the syllabus.

Each student will write a one or two page review of a chapter of the textbook related to one of our topics. Chapters will be assigned in the first week.

Semester grade:

Basic skills                             20
Final exam                             25

8 homework assignments        15

7 quizzes                                20
Project final submission          10
Participation                             5

Textbook review                      5

                                          ____

                                            100  %

Accommodations

Students who seek accommodations during the semester because of disabilities should meet with the instructor after class or during office hours early in the semester.

 


Course Plan


                                                                                                                                            Keil/
Date                           Topic                                                               
Horstmann       Johnson

Sept. 3-4                      Introduction                                                                 

Sept. 5-17                    1. Computer systems and hardware                         1.1-1.5         Appendix A

Sept. 18-29                  2. Problem solving and program design                      1.11                    2

Oct. 1-9                       3. Programming in a high-level language                  1.6-1.10

Oct. 10-27                   4. Numeric and character-based data types                2, 3                    5

Oct. 29-Nov. 12          5. Branch and loop statements                                   4, 7

Nov. 13-26                  6. Subprograms                                                         5, 8

Dec. 1-10                    7. Structure types and classes                                      6

Dec. 11-12                  Semester review

Thur., 12/18
1:00 p.m.                      Final exam (Topics 1-7)