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

30 AugIntroduction
1 SepIntroduction to Programming in C++
6 SepExpressions and Functions
8 SepExpressions and FunctionsAssignment 1 Due
13 SepFunctions Composition and ConditionalsOptional Assignment 1 Due
15 SepConditionals and StringsAssignment 2 Due
20 SepObjectsAssignment 3 Due
22 SepObjectsOptional Assignment 2 Due
27 SepObjects and Nested ObjectsAssignment 4 Due
Optional Assignment 3 Due
29 SepMethodsAssignment 5 Due
4 OctMethodsAssignment 6 Due
6 OctMixed DataAssignment 7 Due
11 OctIntroduction to ListsAssignment 8 Due
Optional Assignment 4 Due
13 OctMore on ListsOptional Assignment 5 Due
18 OctProducing Lists, SortingAssignment 9 Due
Optional Assignment 6 Due
20 OctProducing Lists, SortingOptional Assignment 7 Due
25 OctLists of ObjectsAssignment 10 Due
Optional Assignment 8 Due
27 OctMore Lists of ObjectsAssignment 11 Due
1 NovTreesAssignment 12 Due
Optional Assignment 9 Due
3 NovTreesAssignment 13 Due
Optional Assignment 10 Due
8 NovTrees and HierarchyOptional Assignment 11 Due
10 NovMore on HierarchyAssignment 14 Due
15 NovIntroduction to MutationAssignment 15 Due
Optional Assignment 12 Due
17 NovProgram Design with MutationAssignment 16 Due
Optional Assignment 13 Due
29 NovChanging Structure ContentsAssignment 17 Due
Optional Assignment 14 Due
Optional Assignment 15 Due
1 DecChanging Structure ContentsAssignment 18 Due
Optional Assignment 16 Due
6 DecMore on Mutation with StructuresAssignment 19 Due
Optional Assignment 17 Due
8 DecDeep 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


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.


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.


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.


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)


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