# CS 142: Intro to Computer Programming

## Professor Sean Warnick

## Course Description

This course introduces students to the discipline of computer programming, using C++ as the programming language. No prior experience with computers or programming is assumed.

## Sample Schedule

Date | Topic | Assignment |
---|---|---|

30 Aug | Introduction | |

1 Sep | Introduction to Programming in C++ | |

6 Sep | Expressions and Functions | |

8 Sep | Expressions and Functions | Assignment 1 Due |

13 Sep | Functions Composition and Conditionals | Optional Assignment 1 Due |

15 Sep | Conditionals and Strings | Assignment 2 Due |

20 Sep | Objects | Assignment 3 Due |

22 Sep | Objects | Optional Assignment 2 Due |

27 Sep | Objects and Nested Objects | Assignment 4 Due Optional Assignment 3 Due |

29 Sep | Methods | Assignment 5 Due |

4 Oct | Methods | Assignment 6 Due |

6 Oct | Mixed Data | Assignment 7 Due |

11 Oct | Introduction to Lists | Assignment 8 Due Optional Assignment 4 Due |

13 Oct | More on Lists | Optional Assignment 5 Due |

18 Oct | Producing Lists, Sorting | Assignment 9 Due Optional Assignment 6 Due |

20 Oct | Producing Lists, Sorting | Optional Assignment 7 Due |

25 Oct | Lists of Objects | Assignment 10 Due Optional Assignment 8 Due |

27 Oct | More Lists of Objects | Assignment 11 Due |

1 Nov | Trees | Assignment 12 Due Optional Assignment 9 Due |

3 Nov | Trees | Assignment 13 Due Optional Assignment 10 Due |

8 Nov | Trees and Hierarchy | Optional Assignment 11 Due |

10 Nov | More on Hierarchy | Assignment 14 Due |

15 Nov | Introduction to Mutation | Assignment 15 Due Optional Assignment 12 Due |

17 Nov | Program Design with Mutation | Assignment 16 Due Optional Assignment 13 Due |

29 Nov | Changing Structure Contents | Assignment 17 Due Optional Assignment 14 Due Optional Assignment 15 Due |

1 Dec | Changing Structure Contents | Assignment 18 Due Optional Assignment 16 Due |

6 Dec | More on Mutation with Structures | Assignment 19 Due Optional Assignment 17 Due |

8 Dec | Deep Dark Secrets of C++ | Assignment 20 Due Optional Assignment 18 Due |

13 Dec (Final Exam Day) | Assignment 21 Due Optional Assignment 19 Due Optional Assignment 20 Due Optional Assignment 21 Due |

## Assignments

All assignments are due by 1:00 PM on the date listed. You should email your source code to WarnickCS142@gmail.com. NO LATE ASSIGNMENTS WILL BE ACCEPTED, NO EXCEPTIONS. Each assignment will consist of a number of exercises. Each exercise will be awarded a point if it correct or a zero (plus brief feedback) if it is not correct. The assignment score is the average of the scores of all excercises for that assignment. Extra credit worth up to 50% of each assignment is available by solving the optional excercises associated with each assignment. Most of the optional excercises are due one week after the regular assignment is due (see schedule). Note that although you can make up lost points by solving the optional excercises, you can not accumulate more than 100% for any given assignment.

The beginning of each source file should contain a comment which includes your name, assignment number, exercise number, a list of sources you used, and a copy of the exercise text. For example, the heading for assignment 1 exercise 1 might look like

```
/*
```

Devon Harbaugh: Assignment 1: Exercise 1

Sources: My friend, Erik Schull, pointed out a missing semicolon.

Problem: You and your friends decide to order a pizza and share

the cost according to how many slices you eat. The pizza

is cut into 8 slices. You eat 3 of them. If the pizza

costs $12, how much should you contribute? Write a program to perform the computation.

*/

## Tests

The assignments play the role of exams in this class. They are comprehensive up through the date they are assigned, and the final assignment plays the role of a final exam.

## Text

This semester, there is no required textbook. However, the class will be patterned after Professor McCarthy's approach. His course website has a lot of useful information and links to other sites. Please note that Professor McCarthy's class meets MWF, and ours meets TTh — Thus, do not depend on his site for information about topic schedule and due dates for our section. Another useful website is CPlusPlus.com, a popular site with reference information on the C++ language.

## Harrassment

The following is BYU's statement on preventing sexual harassment:

Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an educational program or activity receiving federal funds. The act is intended to eliminate sex discrimination in education. Title IX covers discrimination in programs, admissions, activities, and student-to-student sexual harassment. BYU's policy against sexual harassment extends not only to employees of the university but to students as well. If you encounter unlawful sexual harassment or gender based discrimination, please talk to your professor; contact the Equal Employment Office at 378-5895 or 367-5689 (24 hours); or contact the Honor Code Office at 378-2847.\

## Preparation Time

"The expectation for undergraduate courses is three hours of work per week per credit hour for the average student who is appropriately prepared; much more time may be required to achieve excellence. These three hours may include one hour of lecture plus two hours of work outside class, three hours in a laboratory with little outside work, or any other combination appropriate to a particular course." (page 56, University Catalog)

## Grades

There are 21 regular assignments, and 21 opportunites for extra credit. Your final grade is the total of your 21 assignment scores, including any extra credit, divided by 20. This treats your lowest assignment score as extra credit.

100-93 A | 93-90 A- | 90-87 B+ |

87-83 B | 83-80 B- | 80-77 C+ |

77-73 C | 73-70 C- | 70-67 D+ |

67-63 D | 63-60 D- | 60-0 E |