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 Homework 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)