CIS220
INTRODUCTION TO BUSINESS COMPUTER PROGRAMMING





Instructor: Dr. Robert Chi

Office Hours: MON & WED 10:50am - 11:50am

Class meeting: MON - FRI 9:20am - 10:50am

Office: BA 130

Office phone #: 9650724

E-mail: rchi@csulb.edu
 
 

Course Description:

CIS220 introduces the students to business computer programming. The C ++ programming language will be used to familiarize the student with proper programming style and practice. Text and Class Notes: Gary Bronson, A First Book of Ansi C++: From Here to There, West Publishing Company, 1997

Class Notes available at AlphaGraphics 122 E. University Dr.

SUPPLIES:

Five high density 3 1/2" disks

Software:

Microsoft Visual C++ for Windows, professional edition, Version 5.0, is installed on the PC network. It can be accessed from any networked PC on campus.

Microsoft Visual C++ for Windows is available at a discounted student price at the Computer Store in Computing Commons. If you have a computer, you may consider buying the software.
 
 

Prerequisites:

None.

Syllabus:

Attached is a schedule of topics (page 4). You are expected to read the material prior to class discussion to gain familiarity with the topic. I reserve the option to make deviations from the schedule as and when necessary. Keep up to date on the course schedule.

The topics covered in this course are difficult to master without substantial amount of effort. You will need a great deal of time for experimenting and practicing code. Read the manual for the C++ software you are using. Your computer and compiler are good teachers. Be prepared to try out things by yourself. Use the debugger, dig into texts, try on-line help. The instructor and the assistants are there to assist you if we know that you are trying.

Don't get behind and don't miss class. New concepts build on earlier concepts. Attendance is strongly suggested. Contact me in advance if you must miss a class. Classwork is a significant contribution to your final grade.

Evaluation: Course grade will be based on your performance in 2 exams, 4 quizzes, 5 programming projects, and assignments completed in class and as homework. Weights are as follows:

Two Exams 30%

Four Quizzes 20%

Five Programming Projects 40%

Class Participation 10%

A weighted score of 90+ is an A grade, 80+ to 89 is a B grade, 70+ to 79 is a C grade, and 60+ to 69 is a D grade.

Examinations: All exams and quizzes will be closed-book, closed-notes, unless otherwise specified. Formats include: short answer questions, problems, writing of algorithms, filling key steps in incomplete algorithms, writing C++ programs or functions. If you miss an exam, you must provide a documented reason to take a make-up. I shall administer one make-up exam, if needed, towards the end of the semester. If you miss the final exam without a valid excuse, a zero score will be assigned.

I encourage you to team up with your classmates and form study groups for consultation / problem solving / exam reviews, etc.

Programming Projects: You are to complete all the programming projects individually (see attached dishonesty policy). Projects will be due at the beginning of the period on the due date. Late projects will have a 10% reduction for the first day late and an additional 5% of each additional calendar day. Projects will not be accepted for credit after 7 calendar days. You may be interviewed while your project is being tested. If you exhibit lack of complete understanding, you may be given zero or partial credit on that project.
 
Classwork and Homework: You will complete in-class and homework assignments during the course of the semester.

Typically, an in-class assignment may be an exercise done individually or in-groups. Most of these will be spontaneous. The purpose of in-class assignments is to encourage critical thinking in the classroom. The goal is not to get the perfect answer but to be creative. If you have contacted me in advance about missing a class, I may allow for a make-up assignment.

Typically, a homework assignment will be due during the next scheduled class. I will specify if a given homework assignment will be completed individually or in-groups. The purpose of the homework assignments is to clarify concepts learned in the class.
 
 
 
 
 
 
 

CIS 220
Week Date
Topic
Reading Scheduled Assignments
6/1
Introduction
   
  6/2
Computer Basics,
Introduction to Programming
Chapter 1 Project 1 Assigned
6/3
Data Types. Basic Functions
Chapter 2  
  6/4
Arithmetic Expressions, Input Function
Chapter 3  
6/7
Algorithms, Flowcharts
Chapter 1 pg 7-19 Project 2 Assigned
  6/8
Selection Structures
Chapter 4  
6/9
Selection Structures
Chapter 5 Project 1 Due 
  6/10
Repetition Structures
Quiz 1
  6/11
Testing, Repetition
   
6/14
Modular Programming, Functions
Chapter 6
  6/15
Functions 
  Project 2 Due
Project 3 Assigned
Quiz 2
  6/16
Functions
 
6/17
Exam 1 
 Chapter 1,2,3,4,5 Project 1 and 2  
  6/18
Scope Local/Global
   
6/21
Files
Chapter 14 Pages 489-506 Project 3 Due
Project 4 Assigned
  6/22
Arrays
Chapter 7   
  6/23
Arrays /Pointers
Chapter 8 Quiz 3
6/24
Pointers
   
 
Arrays and Functions
   Project 5 Assigned
6/25
Strings
Chapter 9 Project 4 Due
 
 
6/28
Structures
Chapter 10  
  6/29
Structures
  Quiz 4
6/30
Pointers to Structures
   
7/1
Arrays of Structures
  Project 5 due
  7/2
Final Exam
 
PROGRAMMING PROJECT INSTRUCTIONS





We will evaluate the Programming Projects based on two major criteria: quality of the source code and the performance of the program. Quality of the source code is enhanced by use of meaningful variable names, formatting to improve readability, internal commenting and modularity in design. Performance of a program is evaluated in terms of correctness of output and ease of use.

`Programming Specifications' listed over-leaf highlight common deficiencies which lead to loss of credit in Programming Projects. Review this sheet before turning in each Programming Project to make sure that the project is complete in all respects.

Grading

The listings and the disk should be submitted in a clear plastic page protector. I will collect all Programming Projects at the beginning of the class on the due date. Failure to turn in a project will result in forfeiture of the credit for the project. Incomplete projects (including programs that do not produce any correct output) will result in loss of credit.

We will test each Programming Project completely by running it on the computer. A grading sheet, distributed with each project’s specifications, will specify the distribution of points for the project. Write your name and ID on the form and attach it to the front of your completed project. We will provide feedback on the program listing and/or the grading forms. If you are not satisfied with your grade, you may request a re-evaluation. Do not change the relevant files on your disk. Re-evaluation may result in a higher or a lower score for the Programming Project.
 


PROGRAMMING SPECIFICATIONS

Review your project for completeness with the specifications given below.

I. QUALITY OF THE SOURCE CODE

A. Variable Names

Use variable names with a clear meaning in the context of the program whenever possible. Use symbolic names when appropriate. Symbolic names should be in lower case characters. B. Format Include adequate white-space in the program to improve readability. Insert blank lines to group sections of code. Use indentation to improve readability of control flow. Avoid confusing use of opening/closing braces. C. Internal Comments Main program comments should describe overall purpose of the program. Function comments should describe their purpose and other pertinent information, if any. Compound statements (control flow) should be commented. Finally, see that commenting is not overdone and redundant. D. Modularity in Design Avoid accomplishing too many tasks in one function; use a separate module. Also, avoid too many lines of code in a single module; create more modules. Design should facilitate individual module testing. Use local variables instead of global variables whenever possible. II. PROGRAM PERFORMANCE

A. Correctness of Output

Ensure that all outputs are correct. Incorrect outputs can lead to substantial loss in credit. B. Ease of Use The program should facilitate repeated use when used interactively and should allow easy exit. Requests for interactive input from the user should be clear. Incorrect user inputs should be captured and explained. Outputs should be well-formatted.