Computer Science I - Spring, 2013
Instructor: Geoff Hagopian,
office: Math 12
Meetings: MW: 11:00 — 2:05 in B7
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 numeric and 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: Schaum's Outlines; Fundamentals of Computing With C++, by John R. Hubbard. Part of the appeal of this text is its price (inexpensive) but it also has some nice exposition and good source code. There are a number of ancilliary text sources we may wish to access, including
· Programming Assignments: To support your foundation of computer science theory, this course involves writing and rewriting C++ code to accomplish various computing tasks. This is a first course in computing science, so the programs you will be asked to write will be relatively simple, 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.
The programming assignments are designed to be 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 for 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 chapter exams and a final exam.
Grading: Programming assignments: 40%; Quizzes: 10%; Exams: 50% (35% midterms, 15% final)