CSCI-14/003 Introduction to Structured Programming in C++

Introduction to Structured Programming in C++
Lecture TR 3:00-4:15 PM, lab TR 4:20-5:35 PM in room 1804
Instructor: Keith Mehl Office: 2019 e-mail:
Web site:
Office Hours: Per the schedule on my Web site, and by chance/arrangement.
Spring 2016
4 units
Phone: (510) 723-7493
Text: Tony Gaddis, Starting Out With C++, 8th ed., ISBN-13 978-0-13-376939-5, Pearson. If you want to
use a different book, clear it with me FIRST. Any book you use MUST follow the C++ 2011 standard
and present the material in "late-objects" sequence.
Course description: Introduction to structured programming and problem solving using the C++ language.
Problem solving techniques, algorithm design, testing and debugging techniques, and documentation
standards. C++ syntax: elementary operators, data types, control structures, user-defined and library
functions, basic input/output, sequential files, arrays and structs. Appropriate for students with little or no
programming experience, but comfortable using computers with modern GUI operating systems.
Prerequisite: Math 54, 54L, 55, 55B or 55L, or CSCI 7 (completed with a grade of “C” or higher).
This is an introductory computer-programming course, but this is NOT an introductory computer-using
course. I assume you are completely familiar with the Windows operating system as a user: i.e., you can
move around the directory tree; can use an editor (e.g., Notepad); can execute and stop programs; and can
create, delete, print and copy files. I assume you can use the Internet. You should also be (or soon
become) generally familiar with the DOS Command shell.
For this course, you will need good verbal and written communications skills, good general mathematics
skills (i.e., you are comfortable with algebra and geometry), and good problem-solving skills. If you do
not have this minimal background, you should take CSCI-8, CSCI-7 and/or appropriate Math or English
courses before trying to take this course. You should get a USB flash drive or online storage (e.g.,
Google docs) to store work for this course. Do not store your work on the lab computer's Desktop.
This demanding course will require considerable out-of-class effort. Be here on time, every time, and
keep up! Take good notes! If you often miss class or are late, DROP.
Turn off your cell phone and put it where you can't easily get to it. If you use a computer for notetaking, use it ONLY for note-taking, and stay off the Internet unless you are using it directly for the class.
If I catch you texting, playing games or otherwise goofing off with your cell phone or computer, I will ask
you to leave class for the day.
When emailing me, put CS14, then your name, then why you are emailing me. The 'why' terms that
get immediate attention are 'absent' and 'question'. I look at everything else only as time permits. Attach
any code about which you have questions, and assignment source/output. Use PLAIN TEXT only (.cpp
source files ARE plain text) and NEVER attach zipped, object or executable files. DO NOT send me
links to Google-docs files.
Grading policy:
Programming assignments/labs
Numerous short (pop) quizzes
The final programming project
Midterm exam (probably week 8)
The final exam
(assignment programs are worth much more than labs)
(I will grade these on a discounted basis)
(BUT -- see below)*
(must be taken as scheduled)
Approximate grade ranges: 90%-up - A, 80%-89.9% - B, 65%-79.9% - C, 55%-64.9% - D, less than 55%
- F. I may adjust these ranges depending on the overall performance of the class. I grade only by the
number of points you accrue.
THERE WILL BE NO MAKEUP EXAMS OR QUIZZES. If you cannot take an exam as scheduled, you
MUST contact me BEFORE the exam. If you miss class regularly (I define this as missing two or more
pop quizzes without contacting me, which, with class and lab, is six cumulative instructional hours), I
may drop you from the course. You must take the final exam as scheduled to pass the course.
* You must turn in the final programming project (essentially
working, submitted with test data and output) to make a grade higher
than C.
Unless I specify otherwise, I will not grade programs (homework or labs)
submitted without output (or input files when needed) – they will get a ZERO
score. A single test (e.g., with my example test data) is not enough.
Programs are due at 11:59 PM (email sent time stamp) on the posted due date. Late work will be
penalized 20% per calendar day late.
Unless I specify otherwise in the lab, you MUST work in groups of two on the labs. Do your own work
on the assignment programs and final project. Copying assignments will result in severe
consequences, possibly including a grade of F in the course. Please, ask me for help, not your
classmates. It's my job.
For use of the college only (this assessment is after-the-fact, and does not affect your grade) the college
assesses course-level learning outcomes for students. For CSCI-14, these are as follows:
1: Produce well-documented, user-friendly programs of short to medium length
2: Demonstrate steps involved in program development
3: Code void and value-returning functions with value and reference parameters and use them in a
4: Understand the mechanics under C++ of passing argument values by values and by reference to a
function. Given the relevant code, the student will demonstrate their knowledge of parameter passing
by correctly determining what would be output of that function.