CSCI-14/003 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: kmehl@chabotcollege.edu Web site: http://www.chabotcollege.edu/faculty/kmehl 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 20% 10% 5% 25% 40% (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 program 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.