Computer Science I - Spring, 2012
Instructor: Geoff Hagopian,
office: Math 12
phone: 760-776-7223 Meetings: TR: 11 — 2:05
Description: This course is an introduction to computer programming and is designed primarily for computer science and related transfer
major. Its primary objective is to teach fundamentals of computer
science and problem solving using the C++ programming
language. Topics include structured procedural programming
with program control structures (sequence, selection, iteration),
modular program structures (functions and parameter passing),
data types (primitive types, arrays, files and structures) and an
intro to object-oriented programming.
NOTE: No prior knowledge of computer programming is required.
Computer Science I provides a hands-on opportunity for learning the relationship between the theory involved in solving problems in math and
science and the practice of implementing algorithms on a computer.
Course Objectives: Upon completion of this course, students will be able to:
a. Understand the history and structure of the digital computer.
b. Locate and operate the basic components in the structure of a computer system.
c. Explain the organization of the classical von Neumann machine and its major functional units.
d. Experiment with and test various computer software and hardware
e. Understand binary data representation in the modern computer, including the representation of non-numeric data.
f. Demonstrate the grammar, punctuation, and vocabulary of a programming language by composing original programs.
d. Demonstrate good program design principles to do problem solving, creating programs that are correct, easy to write, read, modify, and repair.
e. Describe the sequence of steps to go through, in designing, writing, testing and debugging a program.
f. Synthesize application-specific knowledge (e.g. to write a program that draws geometric shapes on the screen, you have to know something about geometry.).
Textbook: Starting Out With C++ From Control Structures through Objects (7th edition),
ISBN 978-0132576253, by Tony Gaddis of Hayward College. Note: the 6th edition is nearly identical to the 7th edition so if you get the 6th edition, that's ok. Also, the Brief Version is very similar and will do.
Recommended: Schaum's Outlines; Fundamentals of Computing With C++, by John R. Hubbard.
· Programming Assignments: This course involves inventing C++ code to accomplish computing tasks. This is a first course in computing science, so the programs you will be asked to write will be either very basic, console-oriented (input and output involved in the program will be limited to ascii text data, not graphics), or programs interfacing with a simple graphics environment.
It is hoped you will find the programming assignments interesting and challenging. A big part of writing code involves debugging - that is, rewriting your code to eliminate various kinds of "bugs", improving the efficiency of algorithms and/or improving the way the code provides flexibility in interation with other code and/or human beings. This can be quite time-consuming and even frustrating. You are encouraged to consult with me and your classmates--but ultimately you must invent your own code and to understand it all by yourself!
If your work duplicates in whole or in part the work of someone else, both works will receive a grade of 0. If there is doubt about your authorship, you may be required to orally defend your work. If you submit work copied from the Internet, that's plagiarism. According to the Student Conduct Code in the College Catalog, plagiarism "shall constitute good cause for discipline, including but not limited to the removal, suspension or expulsion of a student."
The programming projects are listed on the calendar page. These should be emailed to my cod email address attaching the file named using the format <your initials>_<assignment name> and the file type either .txt or .cpp depending on whether you are submitting plain text or C++ code. It his helpful to zip multiple files together in a bundle, in which case the file type will be .zip.
· Quizzes: These may include on-line or pencil/paper quizzes in various formats such as multiple choice, fill-in-the-blank, short essay, etc. These are designed to help you get acquainted with the vocabulary and theoretical concepts to be successful in designing computer programs in C++.
· Exams: There will be midterm in-class exams and a final in-class exam.
Grading: Programming assignments: 55%; Quizzes: 10%; Exams: 25% (20% midterms, 15% final)