Computer Science 120 / Engineering 102 : Programming in C++


Last Revised: 11/10/97

COURSE SYLLABUS

TABLE OF CONTENTS
  1. Course information
  2. Meeting time and location
  3. Instructor
  4. Course Topics
  5. Required textbook
  6. Class discussion group
  7. References
  8. Tentative Reading Assignments
  9. Exams
  10. Grading system
  11. Attendance policy
  12. Scholastic dishonesty policy
  13. Additional information

Programming in C++

Unique number: 1368
Course number: Comp Sci 120
Description: 0-3-3. An introduction to program development. Emphasis is placed on problem analysis, algorithm development, data and control structures.
Prerequisite: Computer Science 100 or equivalent and Mathematics 111.

Unique number: 2672
Course number: Engineering 102
Description: 0-2-2. Functional characteristics of calculators and computers; overview of programming languages and systems; C++; analysis and solution of engineering problems.
Prerequisite: Eligible for registration in Mathematics 230.
Special Note: Students enrolled in Engineering 102 will attend the same classes and submit the same assignments as those enrolled in CS 120, but will not be required to attend class nor submit any assignments after October 22 (the quiz given at the beginning of the class on October 24 is optional for Engineering 102 students).

Table of contents

Meeting time and location

Days: Mondays, Wednesdays, and Fridays
Time: 2:00-3:15 p.m.
Place: Carson Taylor Hall 347

Table of contents

Instructor

Name: Dr. Melvin R. Corley
Office: Bogard Hall 249
Office hours: see my WWW page for current office hours
Phone: (318) 257-2859
E-mail: mcorley@engr.latech.edu

Table of contents

Course Topics

  1. Object-Oriented Program Development
  2. C++ Tools: Anatomy of a Simple Program
  3. Implementing Object Behaviors with Functions
  4. Decision Behavior: Selections and Alternatives
  5. Iteration behavior: Loops
  6. List Objects and Array-Based Implementations
  7. Producing Objects Through Classes
  8. First Class Objects
  9. Storage Management for Objects
  10. Inheritance and Reuse
  11. Polymorphism and Generic Classes
  12. Container Classes and Linked Lists
  13. Design Issues
Table of contents

Required textbook

Table of contents

Class Discussion Group

The discussion group latech.course.cs.120 should be used to ask questions of a general nature that would be of benefit to other class members. Class members are encouraged to post answers to questions.

Table of contents

References

Table of contents

Tentative Reading/Problem Assignments

The following list of dates and their associated reading/problem assignments is subject to change. In fact, it most certainly will change as new assignments are announced. Students should check this page frequently for the current assignments and extra-credit opportunities.
 
Class Schedule
DATE
TOPIC 
READING
HOMEWORK & PROGRAMS (due on this date)
F 09/05 Introduction, course policies, coding standards, number systems, computer operations, data objects, identifiers, expressions, & statements. pp. 1-60 NONE
M 09/08 C++ streams, programming style, debugging pp. 60-85 Homework: Exercises 1 & 4 on p. 28 
 
W 09/10 Functions, scopes & lifetimes pp. 87-120 Homework: Exercises 9, 10, & 11 on p. 79
F 09/12 Refining object-oriented designs, class libraries pp. 120-158 Computer Problem 1: Enter and run the program shown on pp. 21-23 [Posted on 09/05/97]
M 09/15 Decision behavior, Boolean expressions, typedefs, switch statements pp. 159-180
W 09/17 Conditional operator, recursion pp. 180-209 Homework: Exercises 3 & 7 on pp. 146-148
F 09/19 Iteration behavior: loops pp. 211-268 Computer Problem 2: Work Programming Project 30 on page 85. Use the following customer prices as sample test data: 896.42, 73.15, 2354.87 [Posted on 09/12/97]
M 09/22 List objects, arrays pp. 269-306
W 09/24 Sorting and searching
F 09/26 Strings, multidimensional arrays pp. 307-340 Computer Problem 3: Write a program that implements function changeId as described in Exercise 15 on page 207. Use the following personal identification numbers as sample data: 3459, 3458, 3453, 86430, 86431, 86432, 86433, 86434, 86435, 86436, 86437, 86438, 86439. Your program should be constructed so as to continue reading data and performing the necessary calculations. Upon reaching the end of the data, your program should terminate gracefully. [Posted on 09/19/97]
M 09/29 Structs, classes pp. 341-379
W 10/01 Constructors and destructors. Here is the program we did in class.
F 10/03 Classes with class type member data pp. 379-428 Computer Problem 4: Refer to Exercise 23 on page 338. Write a program that implements the selection sort algorithm as a procedure. Your driver program should read in a list of integers (100 maximum elements), print out the original list, call the selection sort procedure, and print out the sorted list. Use the following sample data for your list items: 3, 5, 1, 32, 56, 14, 31. BONUS: Pass an extra bool argument to the procedure to indicate whether the list is to be sorted in ascending or descending order. [Posted on 09/26/97]
M 10/06 Composition. Here is the clock class example problem we did in class.
W 10/08 First class objects pp. 429-470
F 10/10 Inlining
M 10/13 Storage management for objects, references pp. 471-498 Computer Problem 5: Refer to Exercise 12a on page 419. Implement the dice class as specified in the exercise. Include a default constructor and three public member functions--roll, getDie1 and getDie2. Store the current dice values in two private integers. Write a main driver program that instantiates a pair of dice and then "rolls" them 1,000 times, keeping a count of the number of times each of the possible values appears. In your report be sure to analyze these results to determine if your dice are "fair." [Posted on 10/05/97]
W 10/15 Dynamic array creation
F 10/17 First class strings pp. 499-542
M 10/20 Classes with pointer data
W 10/22 Inheritance and reuse (LAST CLASS DAY FOR ENGR 102) pp. 543-576 Computer Problem 6: Click here to see the description of this problem assignment. [Posted on 10/13/97, Revised on 10/15/97]
F 10/24 Single & multiple inheritance
M 10/27 Applications of class hierarchies pp. 577-614
W 10/29 Composition vs. Inheritance
F 10/31 Polymorphism through inheritance pp. 615-647
M 11/03 Virtual functions Computer Problem 7: Work Programming Project 20 on page 690. Note that the reference to exercise 10 should be to exercise 11. Your main program should be interactive, i.e., it should create accounts in response to user input from a menu of account types. Once all accounts are created and stored in a container, apply a common set of transactions to all acounts similar to what you did in Computer Problem 6. [Posted on 10/23/97]
W 11/05 Abstract base classes pp. 648-690
F 11/07 Principles of class design
M 11/10 Container classes & linked lists pp. 691-782 Handouts for Machine Simulation in-class problem: repair.h - the header file containing all class declarations. active.cpp - an abstract base class. geometrc.cpp - a random number class. manager.cpp - the service manager class. schedule.cpp - the scheduler class. simulate.cpp - the main program.
W 11/12 Case study: Machine simulation
F 11/14 Case study: Typesetter class pp. 783-823 Computer Problem 8: Click here to see the description of this problem assignment. [Posted on 11/03/97]
Table of contents

Exams

Brief exams will be given at the beginning of each Friday class meeting. The exam questions will be taken directly from chapter summaries and glossaries. The exact material to be covered on each Friday exam will be announced at the end of the preceding Wednesday class meeting.

Final exam: NONE

Table of contents

Grading system

Table of contents

Attendance policy

Regular attendance is required at all class meetings.  Attendance will be checked by regularly scheduled and ad hoc exams.

Table of contents

Scholastic dishonesty policy

From page 27 of the 1997-98 Louisiana Tech University Bulletin:
Academic Misconduct
Academic misconduct at the University is determined by the faculty member under whom such misconduct occurs. The penalty for cheating and other forms of misconduct is also determined by the faculty member. This penalty may be an "F" in the course, but lesser penalties may be given at the discretion of the faculty member. The student has the right to appeal the charge of academic misconduct in accordance with the Final Grade and Appeals Procedure.
The academic misconduct policy for COMP SCI 120/ENGR 102 can be found in the course policies.

Table of contents

Additional Information

Table of contents 
Fall Quarter 1997   Total accesses since 11/10/97: