compsci2 Mr. Farrell
Millburn High School Computer Science Teacher
Computer Science 2 -- C++

This course is intended for beginners without prior knowledge of programming, but some logical thinking skills are expected.  This course will give students a flavor of what computer programming is, let them decide whether they want to continue in an Advanced Placement computer science course, and prepare them for such a course.


* Understanding the basic elements of computer hardware and software and their roles in a computer system.

* Understanding the concepts of syntax in a programming language and the importance of readability, conventional style, and documentation in programs.

* Understanding the importance of structured approach to problem solving.

* Understanding the concepts of variables and constants, data types, and control flow in a program.

* Learning the basics of C++ syntax for declaring constants and variables, programming conditional and iterative statements, implementing and calling functions.

* Understanding the concept of an algorithm; implementing simple algorithms in C++ using conditional and iterative control structures.

* Acquiring some skills in designing software solutions to problems from various application areas.

* Acquire individual presentation and independent study skills by working on an individual project.


The course will consist of class lecture followed by ample hands on exercises, labs and case studies.  The intended ratio of class lecture to actual development efforts will be 2:3 three days of exercises to two days of lecture (as the year progresses, lab time may grow to 4 out of 5 days).  Handouts will be provided for each unit but it is highly recommended that students take copious notes during the lecture.

At the conclusion of the chapter lecture, there will be extensive lab time to work on the workbook questions
And programming problems. 

Chapter tests will be given at the end of each chapter, with the exception of the first chapter. 

Each student will be required to work on a special project that will focus on an area of technology or computer science.  Written documentation and a class presentation of the project are required.  This project is intended to broaden the students vision of our technological landscape and provide a glimpse into the professional IT experience. 


C++ How to Program, Deitel & Deitel

Supplemental Sources

C++ for You++: An Introduction to Programming and Computer Science, AP Edition (Ch 1 - 9) &
Workbook to Accompany C++ for You++, Skylight Publishing, Andover, Massachusetts, 1998.
It is highly recommended that students purchase the workbook.  It can be purchased independently or through the school for $9.60, plus S/H.  The textbook is also recommended,
although not necessary,  as it contains the proper subset of C++ to cover the AP exam.  The textbook can be purchased for $38.00, plus S/H.

Course Outline

1.   An introduction to hardware and software

Elements of a computer system.  How information is represented in computer memory.  A glimpse of binary and hex systems and ASCII code.   Getting familiar with the software development process, compiler environment, editor commands.

1.A.  Discussion of the professional application development environment

The real world of IT is a dynamic, heterogeneous environment that rarely relies on a single technology
to deliver a systems solution to meet a business need.  A technologist’s value is in his/her ability to provide technological solutions that utilize different platforms, communication protocols and development tools.

1.B.   Special Project Overview

In addition to the other assignments and tests, each student will be required to research an area of computer science (or technology) of their choice and prepare both written and oral (a class presentation) documentation of their findings.  Students need to have their topic approved by the instructor.  The project will be due the third week of May.

2.   Elements of a C++ program

Comments, functions, main(). #include and preprocessor.  The difference between syntax and style.  Reserved words and programmer-defined names.  Statements, semicolons, braces, blocks, indentation.  The input and output operators, << and >>.

3. Variables, constants, simple data types

The concepts of a variable and a data type.  The int, char and double data types.  Declarations of variables.  Literal and symbolic constants.  Initialization of variables.   The assignment operator.  Case Study TB 3.2 and 3.8: Fastfood, a Point of Sale Program.  Local vs. global variables.  enum types.  Basic output formatting (setw, setprecision).

4.   Arithmetic expressions

Data types in expressions, promotion.  The cast operator.   The compound assignment operators (+=, etc.).  The increment and decrement operators (++, --).  The modulo division operator.

5.   A first look at arrays

The concept of an array as a set of consecutive memory locations under one name.  Declarations and initialization.  Subscripts.  Using the apvector and apmatrix classes.

6.   if-else
Conditional statements, Boolean expressions, true and false values.  Relational and logical operators.  Short Circuit Evaluation.  De Morgan's laws. Nested if-else and if-else-if.

7.   Iterative statements

while, for, do-while loops.  break and continue.  Iterations and arrays.  Iterations and 2-D arrays.  Examples of code for reading files.

8.   The switch statement

9. Introduction to algorithms

Selection sort.  Binary search.  Euclid's algorithm for finding the greatest common factor.

10. Introduction to the APSTRING Class (time permitting)

Interface, implementation.

11. Introduction to OOP and Classes (time permitting)

Base Classes, Derrived Classes, Constants.  Inheritance, Polymorphism and Encapsulation.


Grading will consist of a combination of assigned labs (projects), written chapter tests, midterm exam and a special project.  Each graded assignment (project, test) will be assigned a point value.  Grades will be a function of the sum of the students accumulated points divided by the sum of the individual point values for each assignment. 

For the projects, value is given to coding style and structure and not just the result. 

For the independent project, value will be placed on content and presentation.

Adjustments to the grade will be made based on preparation, classroom participation and demeanor.
Useful links
Last updated  2008/09/28 07:44:16 PDTHits  183