CS 312                           Business Programming in C++                                      Spring 2011       


Instructor:  Clark B. Archer, PhD;   Professor of CSIS.  

Office: KHIC 049         Office hours: 9:30-10:00  MWF;  11:00-11:30MF; 1:30-2:30 MW;

 10:30 -11:30 TR  


Text:  Friedman, F.L. & E.B. Koffman. Problem Solving, Abstraction, and Design using C++ 6th Ed. Addison-Wesley Publishers. 2011.  ISBN-10: 0-13-607947-4.


Course Description:  An investigation of typical business computing problems and the development of solutions.  Emphasis is placed on file structures and problems involving large data structures. Three hours of lecture and a one hour laboratory session each week.   4 credits.    Lab meets each  Tuesday at 11:45 for 50 minutes in KHIC 057.

Prerequisites: CS 221   or   CS 223. 


Learning Objectives:

A student should be able to

·         define the hierarchy of data and the role of data in an information system.

·         design, code, debug, and execute  C++ programs that solve  business problems.

·         define a file, create a file, and write the code that reads data from one or more files and writes data aggregates to a report file.  

·         design, code, debug, and execute a program that opens, reads, and processes both sequential and random access files.



Attendance:  Attendance is strongly encouraged.  No make-up tests are given - you must be present to take the test on the days scheduled. Tests missed due to an excused absence (usually meaning prior approval of instructor) can be made up.  You are responsible for all material missed in both the lecture and the laboratory session.





Date of Monday

       -------   Text chapter covered (or external material) -----------

      {minor changes may be made in response to unforeseen events}

January  10

Chapter 1.  Software issues,  introduction to C++, and primitive data types

January  17

Chapters 2-3.  I/O,  arithmetic, Boolean constructs. (no class on Jan 17)

January  24

Chapters 4-5. Library functions, parameter passing, & control constructs

January  31

Chapter 5.     Selection and repetition constructs, files.

February  7

Chapter 6.  Advanced repetition and selection structures;  Test #1 on Feb 11.

February  14

Chapter 7.  User-defined functions/procedures.  

February  21

   ---- Extra material on procedures

February  28

Chapter 8.   Scope issues, additional control structures, & recursion.

March  5-13

                 --- Spring Break – NO CLASSES---

March  14

Chapter 9.   Abstract Data Types (ADTs) in C++

March  21

Chapter 9.   Structured data types.    Test #2 on March 25.

March  28

Chapter 9.  Arrays: Sorting, time & space issues; text processing using strings

April   4

Chapter 10.  More on arrays; Advanced issues in file processing

April  11

 Hashing; processing multiple files and the issues involved

April  18

 Big data and complex file processing. No lab Apr 19, no class Apr 22.

April  25

Last day of class: Review & discuss the final exam (which is on May 2 @ 0800)


Programs/Written work: The primary objective of CS 312 is to prepare you to write programs in C++ to solve business problems. To meet this objective you will be required to complete successfully eight programs during the semester.   All assignments must represent the student’s own efforts.  Copying written assignments or portions of another’s work in any manner from any source, without the explicit direction/permission of the instructor is a form of plagiarism and will cause the student to receive a zero for the assignment and possible failure of the course; and the student may be subject to other punitive actions by the college.



Course Evaluation:                                      Grading Scale:                 

Attendance                          60*                  A          94-100%          C         73-76%

Laboratory work/quiz          40                   A-         90-93               C-        70-72

Projects (8 of these)          280                  B+       87-89               D+       67-69

Tests(2)                              240                  B          83-86               D         63-66

Exam                                  180                  B-        80-82               D-        60-62

                   Total               800 pts            C+       77-79               F          0  -59


Attendance:  The 60 points consists of  60 – 3a,   where a is the number of missed classes.

An absence is an absence; however, an excused absence (illness, funeral of immediate family member) allows you to make up the work missed.  Programs are still due on the due date irregardless of an absence.


Disability accommodations:  See http://www.muc.edu/cs/disability.html


Program due dates:

  { Programs are due at 10:00 AM on the date due, late programs  will not be accepted!!! } A hard copy of your program is to be placed in the box on the table in front of class prior to the beginning of class on the program due date.  The electronic versions of your program must be submitted to the handin folder for CS312 on the shared  M: drive.  You will save these programs as P9xyx, where 9 is the program number and xyz are your initials. For example, Jane C Doe’s  third program is saved as P3jcd.  


  Each program will be specified in a program specification sheet including all the input and output requirements.  In some cases no data will be specified, but your program should be able to handle all data that is reasonable for the program.



       P1   due           Jan  21            20 pts

       P2                    Jan 28             25

       P3                    Feb  04            30

       P4                    Feb  18            35

       P5                    Mar  04            35

       P6                    Mar   25           40

       P7*                  Apr   08            45

       P8*                  Apr   20            50


                                                     280 pts


* Programs #7 and #8 require extensive analysis, design and coding.  On these two programs you may, if you wish, work with one other student (in a team of two using paired-programming) to complete these programs.