LA HARBOR COLLEGE Student Learning Outcomes (SLOs) Assessment Report Course Assessment Division: Math Physical Science Discipline/Program: Computer Science Information Technology Course Number and Name: COSCI 340 Programming in C++ Program Contact Person: Lora Lane Phone: X4178 Reviewed by: Elena Reigadas, SLO Assessment Coordinator Date: October 2013 Outcomes changed to reflect requirements of the statewide Course Identification Number System (C-ID) Institutional Learning Outcomes 2 2 2 2 Course Intended Outcomes 1. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions. Means of Assessment and Criteria for Success Students will be asked to design, implement, test and debug a program that gets input from the user repetitively, performs calculations on that input with if statements and outputs the results. The code will be broken into procedures and functions for readability and efficiency. 2. Use pseudocode or a programming language to design, implement, test, and debug algorithms for solving simple problems. 75% of students will submit a working program that meets all of the requirements. Given a problem description in English, students will create a pseudocode algorithm to solve the problem. They will then translate the pseudocode to a working program with documentation. 3. Summarize the evolution of programming languages illustrating how this history has led to the paradigms available today. 75% of students will submit an algorithm and a matching operational program. Students will perform research using the textbook and the Internet and summarize it in a written description of the evolution of objectoriented languages like C++. 4. Demonstrate the proper declaration and use of variables 80% of students will submit a report scoring a ‘C’ or better according to a rubric. Students will answer short answer questions to evaluate code and write program segments demonstrating the appropriate use of block, local Summary of Data Collected Use of Results considering their address, value, scope, persistence and size. and globally defined abstract and primitive data types. 75% of students will score a ‘C’ or better on the questions. October 2012 Institutional Learning Outcomes 2 Course Intended Outcomes 1. Carry out activities in the program creation process; design, code, compile and debug. 2 2. Choose the appropriate data type of structure for a problem. 2 3. Choose a suitable control structure and code it in a program. 2 4. Design a variety of classes using object oriented principles and implement them in programs. Means of Assessment and Criteria for Success Students were asked to write the following program: Imagine you own a company and you want to develop an electronic system for your customers to browse inventory and purchase items you have in stock. Your inventory is kept in a text file and may include some items that are on sale. Your customers can browse your inventory, add items to their cart, and check out when they are done. They will get a receipt with the items they purchased and their total amount. (additional instructions followed) To be measured in Spring 13 Students are asked to write the following program: Write a program to prompt the user for an integer between 1 and 20 and then print out a table with the one column being the numbers going from 1 to the user's number, and the second column being the square of those numbers (including the column headings shown in the sample output below). If the user enters a negative number, or a number outside of the range 1-20, prompt them to try again. As long as they keep entering any number other than zero, your program should keep looping and printing their table. If the user enters 0, your program should quit. Students are asked to write the following program: Write a program to store and calculate a student's grades using a StudentGrade class. Their overall grade will be calculated based on the following (160 points total): a) One quiz worth 10 points b) One midterm worth 50 points Summary of Data Collected Spring 2012 1 online section Final Project 11 90% or higher 03 80% or higher 01 70% or higher 02 60% or higher 01 50% or higher 01 15% 06 did not attempt Spring 2012 1 online section Assignment 4 21 90% or higher 02 80% or higher 01 got 3% 01 did not attempt Use of Results This was the final project for the class that incorporated almost all of the concepts learned throughout the semester. The distribution of grades seems to indicate that it was a fair final project. Of the students that did not attempt, most had already stopped participating and one had been struggling throughout the semester. The scores indicate that this assignment was too simple. Students incorporated two kinds of loops: for-loops and while-loops, but they obviously had no problems with the concepts. A more difficult assignment is recommended. The student that scored 3% guessed on the multiple choice portion and did not submit the programming assignment. She stopped participating in the class shortly after. Spring 2012 1 online section Assignment 6 13 90% or higher 07 80% or higher 03 70% or higher 01 60% or higher 02 did not attempt The distribution of scores from this assignment seems to indicate that it was about the right level of difficulty. The most common problems were related to the newly-learned concepts of classes, including public vs. private variables and member functions. c) One final worth 100 points Their overall grade will be A-F based on the typical grading scale: 0-60% is an F, 60-70% is a D, 70-80% is a C, 80-90% is a B, and 90-100% is an A. The program will prompt the user for the quiz score, the midterm score, and the final score. It will then set these values on a StudentGrade object and call a method called getOverallLetterGrade() to get the student's overall letter grade (like 'B') and getOverallNumericGrade() to get the overall percentage (like 84.375). You can assume that each of the scores are integers but the overall calculated grade will need to be a double. Below is the sample output: Please enter the quiz score (0-10): <user enters 8> Please enter the midterm score (0-50): <user enters 42> Please enter the final score (0-100): <user enters 85> The student's overall grade is: B (84.375%) 2 5. Use predefined classes in programs. Students are asked to write the following program: We will use two files for this new class: StudentPrinter.h and StudentPrinter.cpp. I will provide the .h and .cpp files for the original StudentGrade class as well as the original main() since it is based on the solution to Assignment 6 (attached below). Your assignment is to modify main() to create a vector of StudentGrades and also develop the .h and .cpp files for a new class called StudentPrinter that will take the vector as a parameter to the constructor and stores it in a private member variable, and then has a Spring 2012 1 online section Assignment 10 13 90% or higher 06 80% or higher 01 70% or higher 05 did not attempt Some students had trouble understanding the concept of a vector that contained objects. Spring break fell between the classes and vectors modules and this module, so maybe a refresher would have been helpful. The students who did not attempt this assignment had already stopped participating in the class at this point. 2 6. Utilize an array to code a solution to a repetitive problem. method called printGrades() that will print the final grades for each student in the vector. Students are asked to write the following program: Write a program that tells the user which of their numbers is out of order, if any. To do this, you will prompt the user to enter 10 numbers, store them into an array using a loop, and then pass that array to a function called outOfOrder which will check if they are in increasing order. If they are in increasing order, your function will return -1, otherwise it will return the index of the first element that was not in increasing order. Your main() function should check the return value of the outOfOrder function and print either a message telling the user their numbers were in order, or tell them which was the first number out of order. Below is a sample run: Please enter ten numbers: <user enters 1 2.2 3 4.6 5 6.9 7.3 8 9.7 100> Your numbers are in order! Another sample run: Please enter ten numbers: <user enters 5 6 7.9 1.2 8 9.35 10 15 20.6 50.2> The number 1.2 is the first number out of order. 2 7. Write a program that reads input data from a file or keyboard and formats it for output to the screen or file. Students are asked to write the following program: Read student scores from a text file called Scores.txt, and print the overall grades to another text file called OverallGrades.txt. The format of your input file (Scores.txt) will look like the following: # students quiz midterm final (for Student 1) quiz midterm final (for Student 2) ... etc, one line per student For example, if you wanted to list scores for 3 students, Scores.txt would look like the following: 3 Spring 2012 1 online section Assignment 5 14 90% or higher 08 80% or higher 01 70% 02 did not attempt Many of the errors made by students were in passing parameters to functions and returning values. Some students also had trouble getting the logic right of looping until they encountered a number out of order. Assignment was fairly early in class and maybe students weren’t comfortable enough with the required concepts. Spring 2012 1 online section This was the 11th assignment. 14 scored 90% or above 03 scored 80% or above 03 scored 70% or above 01 scored 25% 04 did not attempt This assignment was probably too easy since the majority of students scored above 90%. It was very similar to the previous assignment with the addition of using files. The difficulty should be increased. The students who did not attempt this assignment had already stopped participating in the class at this point. 9 45 96 8 35 88 5 23 67 The format of your output file should look like the following: Student 1's overall grade is: A (93.75%) Student 2's overall grade is: B (81.875%) Student 3's overall grade is: F (59.375%)