Course Syllabus
Computer Science 16
Winter 2018
Problem Solving with Computers I
Course Description
Fundamental building blocks for solving problems using computers.
Topics include basic computer organization and programming constructs:
memory, CPU, binary arithmetic, variables, expressions, statements,
conditionals, iteration, functions, parameters, recursion, primitive
and composite data types, and basic operating system and debugging tools.
C++ is the programming language used this quarter.
Pre-requisite and Recommended Preparation
- Pre-requisite: Mathematics 3A with a grade of C or better (may be taken concurrently).
- Recommended: CS 8 or Engineering 3, or significant prior programming experience.
Course Goals
- Students gain experience solving problems with computers.
- Students expand their beginning knowledge of programming, and
learn to apply structured programming techniques.
- Students learn to write C++ programs in a Unix-like environment.
Instructor
Dr. C. Michael Costanzo,
mikec@cs.ucsb.edu
Office hours: Monday and Wednesday, 11-12 in Trailer 936 room 103
Teaching Assistants
Instruction Schedule
- Lectures - 2 per week - MW 9:30-10:45, in Buchanan 1940
- Lab - Wednesday in Phelps 3525:
- 1-1:50, 2-2:50, 3-3:50 or 4-4:50
Required Text
Walter Savitch.
Problem Solving with C++, 10th Edition,
Prentice Hall, 2018. [Earlier editions are probably okay - BUT students are responsible for determining
correspondence with 10th Edition.]
Grading Policy
Overall course scores will be calculated according to the following distribution of credit:
- 40 percent - assignments (including labs).
- 60 percent - 2 exams: best counts 35 percent, other counts 25 percent.
The schedule is as follows
(unless announced otherwise):
- Monday, February 12.
- Wednesday, March 14.
(No final exam this quarter.)
If the class average overall course score is less than 80 percent, then a curve
may be applied to establish letter grades. Otherwise, letter grades will be assigned
as follows:
Overall score | Grade | Notes |
≥ 93% | A | Exceptional scores may earn A+ |
90-92.9% | A- |
Scores will be rounded to
the nearest 0.1 percent |
87-89.9% | B+ |
83-86.9% | B |
80-82.9% | B- |
77-79.9% | C+ |
73-76.9% | C |
70-72.9% | C- |
67-69.9% | D+ |
63-66.9% | D |
< 63% | D- | Very poor scores may earn F |
Course Outline - and required reading from the textbook
- Introduction to Computers and C++ Programming - Chapter 1
- C++ Basics, and Flow of Control- Chapters 2 and 3
- Functions - Chapters 4 and 5
- I/O Streams as an Introduction to Objects and Classes - Chapter 6
- Arrays, Strings and Vectors - Chapters 7 and 8
- Pointers and Dynamic Arrays - Chapter 9
- Introduction to Defining Classes - Sections 10.1 and 10.2
- Introduction to Linked Lists - Section 13.1
Notices
- The course's web pages
(http://www.cs.ucsb.edu/~mikec/cs16)
are mandatory reading. Students are responsible for monitoring them
throughout the quarter.
- Make-up exams can only be arranged at least 48 hours prior to the
exam, and only in extraordinary circumstances (which do not include having
other exams that day).
- Assignments must be completed, and correctly turned in on time for
full credit - no exceptions, no extensions, no excuses.
- IMPORTANT: All of the work you turn in for CS 16 must be your own,
personal work, or a sanctioned collaboration with your assigned lab partner.
The university's honor code
will be strictly enforced, and we may use an automated system to detect
plagiarism and collusion.