Effective: Late Fall 8-Week, 2018/2019

CISS 241: Programming I

Back to Top

  Course Description

Program design and development using C++. A disciplined approach to problem solving and algorithm development will be stressed using top-down design. Topics include syntax and semantics, input/output, selection, iterative constructs, functions, data types and recursion.

Prerequisite: MATH 150 and CISS 170 or CISS 176

Proctored Exams: Final



  Textbooks

As part of TruitionSM, students will receive their course materials automatically as described below.

Required

  •  Gaddis, Tony. (2018). Starting Out with C++: From Control Structures Through Objects (9th). Hoboken, NJ: Pearson.  eText

Bookstore Information

Visit https://www.ccis.edu/bookstore.aspx for details.

eText Information

If a course uses an eText, (see Textbook information above) the book will be available directly in Desire2Learn (D2L) and through the VitalSource eText reader the Friday before the session begins, if registered for courses prior to that date.  Students will have a VitalSource account created for them using their CougarMail email address. Upon first login to VitalSource, students may need to verify their account and update their VitalSource password.  More information about how to use the VitalSource platform, including offline access to eTexts, can be found in D2L.  Students that would like to order an optional print-on-demand copy of eligible eTexts can do so through the VitalSource bookshelf at an additional cost.  Once orders are placed, it can take approximately five to seven business days for students to receive their print-on-demand books.

Physical Course Materials Information

Students enrolled in courses that require physical materials will receive these materials automatically at the address on file with Columbia College.  Delivery date of physical materials is dependent on registration date and shipping location.  Please refer to confirmation emails sent from Ed Map for more details on shipping status.

Returns: Students who drop a course with physical course materials will be responsible for returning those items to Ed Map within 30 days of receipt of the order.  More specific information on how to do so will be included in the package received from Ed Map.  See here for Ed Map's return policy. Failure to return physical items from a dropped course will result in a charge to the student account for all unreturned items.

Note: Students who opt-out of having their books provided as part of TruitionSM are responsible for purchasing their own course materials.

  Course Overview

The foremost objective of this course is to learn the fundamentals of computer programming. This class uses the C++ programming language, but the principles learned and skills obtained are applicable to programming in any language. In fact, one of the objectives of this course is to instill the ability to transfer your knowledge and skills to programming in any domain, with any language.

In this course will first look at how to decompose a problem into its logical steps to perform the task that is being requested. Working with simple problems, you will be shown the fundamentals of how to take those steps, while the greater details, pitfalls, and nuances of C++ syntax and statements are covered in-depth. The process of decomposing the problem is the design step of programming. Towards the end of the course we will talk about functions which allow the programmer to start creating programs that are more modular. This will put us on the path of creating programs that are object-oriented.

As the course moves along you will learn about the different parts of the Microsoft Studio environment and how to use the debugger to help find the problems/errors with your program. These skills will be specific to the Microsoft environment but the concepts will not be. You should be able to apply the concepts to any other programming environment for any language.

  Technology Requirements

Participation in this course will require the basic technology for all online classes at Columbia College:
  • A computer with reliable Internet access
  • A web browser
  • Acrobat Reader
  • Microsoft Office or another word processor such as Open Office

You can find more details about standard technical requirements for our courses on our site.

  Course Learning Outcomes

  1. Declare and use variables and operators of basic types.
  2. Understand and use branching statements, loops, functions, arrays, and references.
  3. Write procedural C++ programs to solve algorithmic problems.

  Grading

Grading Scale

Grade Points Percent
A 720-800 90-100%
B 640-719 80-89%
C 560-639 70-79%
D 480-559 60-69%
F 0-479 0-59%

Grade Weights

Assignment Category Points Percent
Discussions (5) 80 10%
Programming Assignments (14) 350 44%
Quizzes (7) 140 18%
Course Project (1) 100 12%
Final Exam (1) 130 16%
Total 800 100%

  Schedule of Due Dates

Week 1

Assignment Points Due
Introductions -- Saturday
Discussion 1 10 Wednesday/Saturday
Programming Assignment 1 25 Sunday
Programming Assignment 2 25
Quiz 1 20

Week 2

Assignment Points Due
Discussion 2 10 Wednesday/Saturday
Programming Assignment 3 25 Sunday
Programming Assignment 4 25
Quiz 2 20
Proctor Information N/A

Week 3

Assignment Points Due
Discussion 3 10 Wednesday/Saturday
Programming Assignment 5 25 Sunday
Programming Assignment 6 25
Quiz 3 20

Week 4

Assignment Points Due
Discussion 4 10 Wednesday/Saturday
Programming Assignment 7 25 Sunday
Programming Assignment 8 25
Quiz 4 20

Week 5

Assignment Points Due
Discussion 5 10 Wednesday/Saturday
Programming Assignment 9 25 Sunday
Programming Assignment 10 25
Quiz 5 20

Week 6

Assignment Points Due
Discussion 6 10 Wednesday/Saturday
Programming Assignment 11 25 Sunday
Programming Assignment 12 25
Quiz 6 20

Week 7

Assignment Points Due
Discussion 7 10 Wednesday/Saturday
Programming Assignment 13 25 Sunday
Programming Assignment 14 25
Quiz 7 20

Week 8

Assignment Points Due
Discussion 8 10 Wednesday/Saturday
Course Project 100 Saturday
Final Exam 130
Total Points: 800

  Assignment Overview

Discussions

There will be weekly Discussions in Weeks 1-8. Discussion assignments are designed to allow you to utilize what you've learned in the assigned readings and Content area lectures of the course. They will further the understanding of concepts and ideas in programming. You will be required to make an initial response to the prompts of each Discussion topic by 11:59 pm CT Wednesday. You will not be able to view other student responses until you make your initial post. You will then respond to at least two classmates by 11:59 pm CT Saturday. You must respond substantively (more than one word/short phrase). A grading rubric will be provided in D2L for guidance. Discussion posts are worth 10 points each (6 points for original posts, 4 points for responses). Three posts (one initial post and two peer responses) are required for full credit.

Programming Assignments

Each week you will complete two Programming Assignments. Programming Assignments must follow standard code formatting, as shown in the textbook code and examples. They will also be required to have a comment block at the top of the code file with a detailed description of what the program does. Once functions are covered, a comment block is needed for each function with a detailed description of what it does. Once a function is covered, they should be used in subsequent Programming Assignments and the overall scope should stay within the content that has been covered.

Programming Assignments will be due by 11:59 pm CT Sunday of the week they are assigned. They are worth 25 points each.

Course Project

You will be asked to design an airline reservation system. The program must be menu-driven and will require the use of arrays, functions, and all the programming constructs covered in the course material. It must function as a program that allows for the reserving of a seat, checking the seating chart, and displaying the final cost of the tickets.

The Course Project must follow standard code formatting, as shown in the textbook code and examples. It must include a comment block at the top of the code file with a detailed description of what the program does. Functions must also have a comment block with a detailed description of what it does.

The Course Project is due by 11:59 pm CT Saturday of Week 8. It is worth 100 points.

Quizzes

There will be Quizzes in Weeks 1-7. Quizzes will be comprised of 10 multiple-choice or true/false questions. You will be allowed one 20-minute timed attempt at each Quiz. You will be able to review all of the quiz answers once completed. Quizzes will be open from 12:01 am CT Monday and remain open until 11:59 pm CT Sunday. Quizzes are worth 20 points.

Final Exam

There will be a proctored Final Exam in Week 8. Proctor information is due by 11:59 pm CT Sunday of Week 2. The Final Exam will be open from 12:01 am CT Monday until 11:59 pm CT Saturday of Week 8. The Final Exam will be comprised of 100 multiple-choice or true/false questions and writing short code segments (short answer). You are allowed one timed attempt of 2 hours at the Final Exam. You will be able to review all of the Final Exam answers once completed. The Final Exam will be worth 130 points.

  Course Outline

Click on each week to view details about the activities scheduled for that week.

Readings
  • Textbook: Chapter 1
  • Source Code Format and Comments Document (Content area)
  • Lecture Notes and Custom Multimedia
Introductions
During the first week, we will take the time to "socialize" and get to know one another. Introduce yourself to the class. Include information such as what brought you to take this course, what you would like to get out of the course, and a trait you possess that you feel is unique or different from other people. If you feel comfortable doing so, tell us about yourself, including any personal or professional details you’d like to share, or even your location and how long you have lived there.
Discussion 1

The language of C++ is a language that has been in use for many decades now and continues to be used in many major systems. This week’s discussion looks at the history of the C++ language.  Why was the language initially developed, and what changes were made to C to create C++? Critique the past, current, and potential future use of the language in academia and industry. What are the pros and cons of C++ compared to other languages?

Programming Assignment 1

For this assignment, review the pseudocode algorithm below. The algorithm has an error, identify what the error(s) are. This program should ask the user for the length and width of the rectangular room, and display the room’s area.  The program assumes the room is rectangular therefore the area is found by multiplying the width by the length.

area = width x length
Display “What is the room’s width?”
Input width Display “What is the room’s length?”
Input length
Display area

Provide the corrected pseudocode for the above pseudocode. Then create a flow chart for the corrected pseudocode. Submit the corrected pseudocode and the flowchart.

Programming Assignment 2

Write the pseudocode and create a flowchart for the following two problems.

  1. Design a program will calculate the total of a retail sale at a store. The program should ask the user for the retail price of the item being purchased and the sales tax rate as a decimal value. The program should then calculate the sales taxes and the final cost of the item.  The output of the program will display the sales tax for the purchase and the total of the sale.
  2. Design a program that will calculate the current balance in a savings account. The program must ask the user for the current balance, a total dollar amount of deposits made, the total dollar amount of withdrawals made, and the monthly interest rate as a decimal. The program will then calculate the new balance for the savings account and display the new balance.
Quiz 1

Quiz 1 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 1 material covered in Week 1. Quiz 1 is due by 11:59 pm CT Sunday. 

Readings
  • Textbook: Chapter 2
  • Lecture Notes and Custom Multimedia
Discussion 2

We have looked at several basic design tools, such as hierarchy charts, flowcharts, and pseudocode. Each of these tools provide a different view of the design as they work together to define the program. Explain the unique role that each design tool provides (concepts and/or information) to the design of the program.

Programming Assignment 3

In many of today’s automobiles, it will display the current miles per gallon for the vehicle. In this program, the miles per gallon of gas will be calculated. For a car with a 16-gallon gas tank, it averages 345 miles per tankful when driven in town and 460 miles per tankful when driven on the highway. Write a program that calculates and displays the miles per gallon for one tank of gas when driven in town and when driven on the highway.  There is no input from the user so the above values are just assigned to variables declared in the program.  There should be a variable for the tank size (gallons), miles in town, miles on the highway and the calculated MPG. The MPG should have a data type of a double and the output should show decimal places.

MPG = Total number of Miles / Number of Gallons

Pseudocode must be provided in the comment block at the top of the file.

Programming Assignment 4

The theme of this assignment is performing stock market calculations. Cathy bought 600 shares of a stock at a price of $33.77 per share. For the purchase of the stocks, she must pay the stockbroker a 2% commission for the transaction. Design and create a program that calculates and displays the following:

  1. The amount paid for the stock alone (without the commission)
  2. The amount of the commission
  3. The total amount paid (for the stock plus the commission)

Pseudocode must be provided in the comment block at the top of the file.

Quiz 2

Quiz 2 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 2 material covered in Week 2. Quiz 2 is due by 11:59 pm CT Sunday.

Proctor Information
Submit your proctor form to the appropriate Dropbox folder by the end of the week. Remember to “Save” the form before placing it in Dropbox. See the Content area for more information.
Readings
  • Textbook: Chapter 3
  • Lecture Notes and Custom Multimedia
Discussion 3

While no programming language forces programmers to format code a specific way for the code compile, there are best practices regarding the grammar, comments, and formatting. It is considered best practice to provide documentation and consistent formatting in the code of programming projects. Discuss the pros and cons of following formatting and commenting standards in code. How do these inclusions enhance or detract from the code? 

Programming Assignment 5

Compounded Interest Earned – Assume no additional deposits are made other than the original investment. The balance in an account after one year may be calculated as:

New Balance = Principal * (1 + rate/T)T

Principal is the opening balance in the account. Rate is the interest rate, and T is the number of times the interest is compounded during a year (T is 4 if the interest is compounded quarterly). Write a program that prompts the user for the principal, the interest rate, and the number of times the interest is compounded. The output must be formatted in the following format:

 Interest Rate:  4.25%
 Times Compounded:  12
 Principal:  $1000.00
 Interest: $43.34
 Amount in Savings:   $1043.34

Pseudocode must be provided in the comment block at the top of the file.

Programming Assignment 6

A restaurant called Tony’s Pizza Palace needs a program to help calculate the number of slices a pizza of any size can be divided into, and how many pizzas should be ordered for a party. The program will assume each person at the party will eat 3 slices of pizza each.

The program should prompt the user for the diameter of the pizzas they wish to order. It will also ask the user for the number of people who will be at the party. The program will then calculate and display the number of slices per pizza and the number of pizzas needed for the party (must be full pizzas). Facts you need to know:

  • A slice must have an area of 14.125 inches
  • Number of slices per pizza is the area of the pizza divided by the area of a slice
  • Area of a pizza is calculated with Area = PI * r2
    • PI = 3.14159 
    • r is the radius of the pizza
  • The number of slices should be a fixed point and rounded to one decimal place
  • PI must be a named constant

Pseudocode must be provided in the comment block at the top of the file.

Quiz 3

Quiz 3 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 3 material covered in Week 3. Quiz 3 is due by 11:59 pm CT Sunday. 

Readings
  • Textbook: Chapter 4
  • Lecture Notes and Custom Multimedia
Discussion 4

Software maintenance is when a program is released but undergoes changes over the lifecycle of the program, which is how new versions of software are released. What is the role that formatting and commenting of code plays in the maintenance of software during the maintenance phase? 

Programming Assignment 7

Menu-driven programs will display the menu options to the user and then prompt them for a menu choice. This program will display the following menu in the following format:

Calculator Options:

  1. Calculate the area of a circle
  2. Calculate the area of a rectangle
  3. Calculate the area of a triangle
  4. Calculate the area of a trapezoid
  5. Calculate the area of a sphere
  6. Exit Enter your choice (1-6)

Once the user enters a choice for the menu, the program should use a switch statement to determine the user choice and calculate the area of the shape selected.

If the shape selected is a circle, the program must prompt the user for the radius of the circle. The area will be calculated and then displays the area indicating it is a circle.

For a menu choice for the rectangle, the program must prompt the user for the length and width of the rectangle. The program will then calculate the area of the rectangle and display the area indicating it is the area of a rectangle.

If the menu choice is a triangle, the program must prompt the user for the length of the triangle’s base and its height. The area is then calculated for the triangle and displays the area.

If the choice is a trapezoid, the program must prompt the user for the height and the two base lengths. The area is calculated and displayed indicating it is a trapezoid.

If a sphere is selected, the program must prompt the user for the radius. Calculate the area and then display the area of the sphere indicating it is a sphere.

Other requirements and formulas:

  • Make PI a named constant
  • Circle area = PI * r2
  • Rectangle area = length * width
  • Triangle area = base * height * 0.5
  • Trapezoid area = height/2 * (b1 +b2)
  • Sphere area = 4 * PI *r2

The program should validate the user menu choice. If an invalid menu option, is should display a message telling the user what the valid choices are and exit the program.

The program should also not allow the user to enter a negative number for any of the values used to calculate the areas. If they do the program must indicate which value entered was invalid, being specific. For example, for a rectangle, if the length is invalid there should be a message like “Value entered for the length is invalid”.

Pseudocode must be provided in the comment block at the top of the file.

Programming Assignment 8

The commission has ruled that the company you work for, Municipal Power and Light, overcharged customers for two months during the previous year. To compensate the customers, the commission has ordered the company to decrease each customer's bill next month by 12%.

The state levies a 3.5% utility tax and the city levies a 1.5% utility tax, both of which must be applied to the customer's bill before it is discounted. (The state and city want their taxes on the full, undiscounted amount, and the 12% discount does not apply to the utility taxes). Municipal Power and Light charges are as follows:

kWh used

Cost Scale

less than 1000

$0.052 per kWh used

at least 1000 but less than 1300

$0.052 per kWh for first 1000 kWh used

 

$0.041 per kWh over 1000 kWh used

at least 1300 but less than 2000

$0.052 per kWh for first 1000 kWh used

 

$0.041 per kWh for the next 300 kWh used

 

$0.035 per kWh over 1300 kWh used

at least 2000

$0.052 per kWh for first 1000 kWh used

 

$0.041 per kWh for the next 300 kWh used

 

$0.035 per kWh for the next 700 kWh used

 

$0.03 per kWh over 2000 kWh used


Inputs for your program should include the customer name and number of kWh used during the current month. Remember that the state and city taxes are computed on the first amount in the above list.

Output should include in a formatted message:

  • customer name
  • base, undiscounted, untaxed bill amount
  • discount amount
  • state utility tax amount
  • city utility tax amount 
  • total amount due

Pseudocode must be provided in the comment block at the top of the file.

Quiz 4

Quiz 4 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 4 material covered in Week 4. Quiz 4 is due by 11:59 pm CT Sunday. 

Readings
  • Textbook: Chapter 5
  • Lecture Notes and Custom Multimedia
Discussion 5

You are presented with a problem that requires a programmatic solution. What are creation steps and best practices that should be taken at the start of every development project or programming project? Additionally, provide insight on how you approach coding at the beginning of a project and how you code as your project progresses.

Programming Assignment 9

This assignment will have you creating a program to play an old game, the guessing game. The program will need to generate a random number between 1 and 100 and asks the user to guess what the number is. The program will determine if the user’s guess is higher than the random number, notifying them with “Too high, try again.” If the user’s guess is lower than the random number, the program should display “Too low, try again.”

The user will have only 10 guesses to get the random number, it will use a loop that repeats until the user correctly guesses the random number or has made 10 guesses. The program needs to keep track of the number of guesses the user makes.

When the game ends, it will display one of the messages in the table below based on the number of guesses the user took.

The user’s guesses must be validated by making sure the value entered is between 1 and 100. If the value is not between 1 and 100, the user should be told to make another guess. The invalid input should not count as one of the 10 guesses the user is allowed. Pseudocode must be provided in the comment block at the top of the file.

Number of Guesses by the User

Output Message

Less than 5 guesses

"Either you know the secret or you got lucky!"

5-7 guesses

"You're pretty good at this!"

8-10 guesses

"You'll do better next time."

If guess 10 is not correct

"Sorry - You have taken too many guesses."

Programming Assignment 10

The input for this program will come from a file that you will need to create. The file you create will be called Random.txt. The file should contain a list of random numbers (you pick the values) with each number on a different line within the file, use a text editor to create the file.

The program will open the file and reads all of the numbers from the file and calculates or determines the following:

  1. Counts how many numbers were read from the file
  2. Determine the lowest and highest values in the file
  3. The average of all the numbers in the file
  4. The sum of all the numbers in the file (a running total)

The program must validate that the file was opened before reading from the file. If not then provide a message to the user and then the program should end.

Pseudocode must be provided in the comment block at the top of the file.

Quiz 5
Quiz 5 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 5 material covered in Week 5. Quiz 5 is due by 11:59 pm CT Sunday. 
Readings
  • Textbook: Chapter 6
  • Lecture Notes and Custom Multimedia
Discussion 6

As the programs grows in size and complexity, it becomes far easier to introduce bugs into the programs. These can go unnoticed if not tested for and identified properly. For example, an if statement gives you two conditions you must test for, when the condition is true and when it is false.

Is it important to test your work/program? What are the risks of not testing or improper testing? What are your techniques or process for doing this?

Programming Assignment 11

In this assignment, you will be writing a program to help a teacher calculate the final grade for all the exams a student has taken. The student’s lowest grade must be dropped from the average.

The program is required to have the following functions:

  • void GetScore(double & score)
    • This function should prompt the user for a test score, the test scored entered should be stored in the reference parameter.
    • The function should validate the user input before ending the function. The grade entered must be greater than or equal to 0 and less than or equal to 100.
    • The program will get 6 grades from the user, so this method must be called 6 times.
  • void CalcAverage(double score1, double score2, double score3, double score4, double score5, double score6)
    • This function will calculate the average of the five highest test scores.
    • The function will be called by main only one time, the six test scores must be passed all at once via the parameters.
    • Average must be displayed with a precision of 2 decimal places.
    • This function will use the FindLowest function to know which test score to drop.
  • double FindLowest(double score1, double score2, double score3, double score4, double score5, double score6)
    • This function will find and return the lowest score of the scores passed to it.
    • This method must be called by CalcAverage, which uses the function to determine which of the six scores to drop.

Pseudocode must be provided in the comment block at the top of the file.

Programming Assignment 12

In this assignment, you will create the game called Rock Paper Scissors game with a little twist to it. In this version, you will also include Lizard and Spock. This means the players have the choice of Rock, Paper, Scissors, Lizard, and Spock.

The program will play the game between a user and the computer. The game will continue until there is a winner to the game, the user should not be prompted to see if they want to continue when there is a tie in the game. If the game is a tie then the program must make the user play again, until there is a winner. Once there is a winner, the program (game) must end.

The computers choice will be a random number generated by the program using the random number generator. The number must be limited to the following values:

  1. Rock
  2. Paper
  3. Scissors
  4. Lizard 
  5. Spock

Use a menu to prompt the user for their choice, using the same values as above. The program will then display the computer’s choice and the user’s choice in a textual format. Meaning if the computer random number is 3 then it should display something like “The computer choice is Scissors”.

The program will then determine if there is a winner or a tie. If there is a winner the program must tell the user, the rule the winner won by (listed below).

A winner is determined using the following rules:

  • Scissors cut paper
  • Paper covers rock
  • Rock crushes lizard
  • Lizard poisons Spock
  • Spock smashes (or melts) scissors
  • Scissors decapitate lizard
  • Lizard eats paper
  • Paper disproves Spock
  • Spock vaporizes rock
  • Rock breaks scissors

The program must be divided into functions with at least the following functions:

  • int getUserChoice()
    • Displays a menu of choices
    • Prompts the user for their choice from the menu
    • Return the users choice as an integer to main
  • int getComputerChoice()
    • Use the random number generator to create the computer's choice
    • Returns the computer's choice as an integer to main
  • bool determineWinner(int userChoice, int compChoice)
    • Uses the two parameters to determine if there is a winner based on the rules provided above. 
    • Return true if there is a winner, false otherwise (used to determine if tie so that the game can continue in main).
    • If a winner, then the correct message must be displayed indicating who won and by what rule.
  • void displayChoice(int choice)
    • To be used display user choice.
    • To be used to display computer choice.
    • Should be called two times o Display the choice as text not numeric (Such as “Rock” for choice of 1).
      • The program must indicate whose choice it is. Does not need to be done in the function
      • Function just displays the choice, a single word.

Pseudocode must be provided in the comment block at the top of the file.

Quiz 6
Quiz 6 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 6 material covered in Week 6. Quiz 6 is due by 11:59 pm CT Sunday. 
Course Evaluation
Please evaluate the course. You will have an opportunity to evaluate the course near the end of the session. A link sent to your CougarMail will allow you to access the evaluation. Please note that these evaluations are provided so that I can improve the course, find out what students perceive to be its strengths and weaknesses, and in general assess the success of the course. Please do take the time to fill this out.
Readings
  • Textbook: Chapter 7
  • Lecture Notes and Custom Multimedia
Discussion 7

As we learned this week, functions are the first step towards Object-oriented Programming along with arrays. Functions (known as methods in classes) are a big part of classes once you get to that lesson.

What role do you see functions playing in the development of software? What are the pros and cons to functions?

Programming Assignment 13

In this assignment, the program will keep track of the amount of rainfall for a 12-month period. The data must be stored in an array of 12 doubles, each element of the array corresponds to one of the months. The program should make use of a second array of 12 strings, which will have the names of the months. These two arrays will be working in parallel. The array holding the month names will be initialized when the array is created using an initialization list (could also be created as an array of constants). The second array will hold doubles which will be the total rainfall for each month. Using a function, the program will prompt the user for the rainfall for each month (using both arrays) and store the value entered into the array with the rainfall totals; the other is used to display which month the program is asking for the rainfall total.

The output of the program will display the following once the data is all entered:

  • The total rainfall for the year
  • The average monthly rainfall
  • The month with the highest amount of rainfall (must display the month as a string)
  • The month with the lowest amount of rainfall (must display the month as a string)

The program must have the following functions:

  • void CollectRainData(double [ ], string [ ], int);
    • Gets the user input for the rain totals for each month
    • Parameters array for rainfail totals, array of month names and size of arrays
  • double CalculateTotalRainfall(double [ ], int);
    • Calculates the total rainfall from the array parameter.
  • double CalculateAverage(double, int);
    • Calculates the Average rainfall
    • First parameter is the total rainfall, second is number of months
  • double FindLowest(double [ ], int, int&);
    • Finds the month with the lowest amount of rainfall, returns this value
    • Provides the index of the lowest month in the last parameter.
  • double FindHighest(double [ ], int, int&);
    • Finds the month with the highest amount of rainfall, returns this value
    • Provides the index of the highest month in the last parameter.

Pseudocode must be provided in the comment block at the top of the file.

Programming Assignment 14

You have been tasked by the IT department of Acme Electronics to write a program to generate a report about last year’s sales. The report created by the program will be the table shown below. It will also display the division and quarter with the highest sales and the division and quarter with the lowest sales for the year.

The program will need to use a 2-Dimensional array. This array that will hold the sales totals for 4 divisions and for 4 quarters. The array must be created to also hold the total for each division and for each quarter (in other words the total for each column and each row, when thinking about the array as a table or spreadsheet). These totals will be calculated by the program once the values have been inputted by the user. This array will have the quarters as the columns and the divisions as the rows. The last column will hold the totals for the rows (division totals) and the last row will hold the totals for the columns (quarter totals). Note: the very last element in the array will not be used.

Another array should be used to store the division names of North, South, East, and West. This array will be used when getting the inputs from the user and for the outputs.

The program should use two global constants called ROWS and COLS.

The program must provide the following functions:

  • double CalculateTotal(double [][COLS]);
    • Calculates the total of the complete array except for the totals in the last column and last row.
    • Returns the total.
  • double CalculateAverage(double [][COLS]);
    • Calculates the average of all the values in the array except for the column and row with the totals in them.
    • Returns the average.
  • double CalculateRowTotal(double [][COLS], int);
    • Calculates the total for row that is specified by the second parameter.
    • Returns the total for the specified row.
  • double CalculateColumnTotal(double [][COLS], int);
    • Calculates the total for a column that is specified by the second parameter.
    • Returns the total for the specified column.
  • double FindHighest(double [][COLS], int&, int&);
    • Finds the highest sales in the array.
    • Provides the index values (row, column) of where the highest value is located in the array. 
    • Returns the highest amount.
  • double FindLowest(double [][COLS], int&, int&);
    • Finds the lowest sales in the array.
    • Provides the index values of where the lowest value is located in the array.
    • Returns the lowest amount.

The program should output a table in the same format as below which will then be followed by the division and quarter with the highest value and the division and quarter with the lowest value.

 

Quarter 1

Quarter 2

Quarter 3

Quarter 4

Division Total

North

 

 

 

 

 

South

 

 

 

 

 

East

 

 

 

 

 

West

 

 

 

 

 

Quarter Total

 

 

 

 

 

Pseudocode must be provided in the comment block at the top of the file.

Quiz 7
Quiz 7 will be comprised of 10 multiple-choice and true/false questions covering the Chapter 7 material covered in Week 7. Quiz 7 is due by 11:59 pm CT Sunday. 
Readings
  • Review Chapters 1-7
  • Review Weeks 1-8
Discussion 8

Compare and contrast the purpose and use of vectors and arrays. What are the pros and cons of making parameters by reference for a function?

Course Project

The Course Project can be started in Week 7 and is due by 11:59 pm CT Saturday of Week 8. It must follow standard code formatting and have a comment block at the top of the code file with a detailed description of what the program does. Functions must have a comment block with a detailed description of what it does. Pseudocode must be provided in the comment block at the top of the file.

Additional requirements and guidelines can be found in the Course Information module.

Final Exam
The Final Exam will be comprised of 100 multiple-choice, short answer, and true/false questions covering material in Weeks 1-8. It will open at 12:01 am CT Monday and must be completed by 11:59 pm CT Saturday. 

  Course Policies

Student Conduct

All Columbia College students, whether enrolled in a land-based or online course, are responsible for behaving in a manner consistent with Columbia College's Student Conduct Code and Acceptable Use Policy. Students violating these policies will be referred to the office of Student Affairs and/or the office of Academic Affairs for possible disciplinary action. The Student Code of Conduct and the Computer Use Policy for students can be found in the Columbia College Student Handbook. The Handbook is available online; you can also obtain a copy by calling the Student Affairs office (Campus Life) at 573-875-7400. The teacher maintains the right to manage a positive learning environment, and all students must adhere to the conventions of online etiquette.

Plagiarism and Academic Integrity

Academic integrity is a cumulative process that begins with the first college learning opportunity. Students are responsible for knowing the Academic Integrity policy and procedures and may not use ignorance of either as an excuse for academic misconduct. Columbia College recognizes that the vast majority of students at Columbia College maintain high ethical academic standards; however, failure to abide by the prohibitions listed herein is considered academic misconduct and may result in disciplinary action, a failing grade on the assignment, and/or a grade of "F" for the course.

Additionally, all required papers may be submitted for textual similarity review to Turnitin.com for the detection of plagiarism. All submitted papers may be included in the Turnitin.com reference database for the purpose of detecting plagiarism. This service is subject to the Terms and Conditions of Use posted on the Turnitin.com site.

Non-Discrimination

There will be no discrimination on the basis of sex, race, color, national origin, sexual orientation, religion, ideology, political affiliation, veteran status, age, physical handicap, or marital status.

Student Accessibility Resources

Columbia College is committed to creating a learning environment that meets the needs of its diverse student body. If you anticipate or experience any barriers to learning, communicate your concerns with the instructor. In addition to speaking with the instructor, the following resources are available to ensure an opportunity to learn in an inclusive environment that values mutual respect.

  • For students with disabilities/conditions who are experiencing barriers to learning or assessment, contact the Student Accessibility Resources office at (573) 875-7626 or sar@ccis.edu to discuss a range of options to removing barriers in the course, including accommodations.
  • For students who are experiencing conflict which is impacting their educational environment, contact the Office of Student Conduct at studentconduct@ccis.edu or (573) 875-7877.
  • For students who have concerns related to discrimination or harassment based on sex, gender identity, sexual orientation, pregnancy or parental status, please contact the Title IX Office at titleixcoordinator@ccis.edu. More information can be found at http://www.ccis.edu/policies/notice-of-non-discrimination-and-equal-opportunity.aspx

Online Participation

You are expected to read the assigned texts and participate in the discussions and other course activities each week. Assignments should be posted by the due dates stated on the grading schedule in your syllabus. If an emergency arises that prevents you from participating in class, please let your instructor know as soon as possible.

Attendance Policy

Attendance for a week will be counted as having submitted any assigned activity for which points are earned. Attendance for the week is based upon the date work is submitted. A class week is defined as the period of time between Monday and Sunday (except for week 8, when the work and the course will end on Saturday at midnight.) The course and system deadlines are based on the Central Time Zone.

Cougar Email

All students are provided a CougarMail account when they enroll in classes at Columbia College. You are responsible for monitoring email from that account for important messages from the College and from your instructor. You may forward your Cougar email account to another account; however, the College cannot be held responsible for breaches in security or service interruptions with other email providers.

Students should use email for private messages to the instructor and other students. The class discussions are for public messages so the class members can each see what others have to say about any given topic and respond.

Late Assignment Policy

An online class requires regular participation and a commitment to your instructor and your classmates to regularly engage in the reading, discussion and writing assignments. Although most of the online communication for this course is asynchronous, you must be able to commit to the schedule of work for the class for the next eight weeks. You must keep up with the schedule of reading and writing to successfully complete the class.

No late discussion posts will be accepted.

Late assignments will be accepted during the week after the due date for some credit. Assignments will be subject to 5 point deductions for each day it is late.

Course Evaluation

You will have an opportunity to evaluate the course near the end of the session. A link will be sent to your CougarMail that will allow you to access the evaluation. Be assured that the evaluations are anonymous and that your instructor will not be able to see them until after final grades are submitted.

Proctor Policy

Students taking courses that require proctored exams must submit their completed proctor request forms to their instructors by the end of the second week of the session. Proctors located at Columbia College campuses are automatically approved. The use of ProctorU services is also automatically approved. The instructor of each course will consider any other choice of proctor for approval or denial. Additional proctor choices the instructor will consider include: public librarians, high school or college instructors, high school or college counseling services, commanding officers, education service officers, and other proctoring services. Personal friends, family members, athletic coaches and direct supervisors are not acceptable.

  Additional Resources

Orientation for New Students

This course is offered online, using course management software provided by Desire2Learn and Columbia College. The course user guide provides details about taking an online course at Columbia College. You may also want to visit the course demonstration to view a sample course before this one opens.

Technical Support

If you have problems accessing the course or posting your assignments, contact your instructor, the Columbia College Technology Solutions Center, or the D2L Helpdesk for assistance. If you have technical problems with the VitalSource eText reader, please contact VitalSource. Contact information is also available within the online course environment.

Online Tutoring

Smarthinking is a free online tutoring service available to all Columbia College students. Smarthinking provides real-time online tutoring and homework help for Math, English, and Writing. Smarthinking also provides access to live tutorials in writing and math, as well as a full range of study resources, including writing manuals, sample problems, and study skills manuals. You can access the service from wherever you have a connection to the Internet. I encourage you to take advantage of this free service provided by the college.

Access Smarthinking through CougarTrack under Students -> Academics -> Academic Resources.