Problem Solving with Computers I
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 (primary) programming language used this quarter, and C++ is
Mathematics 3A with a grade of C or better (may be taken concurrently).
CS 8 or Engineering 3, or significant prior programming experience.
Thu, 10:00-12:00, HFH2123
(TA office hours are at Trailer 936 Room 104):
Yuanshun Yao, email@example.com, Office hours: Tuesday 2:00-4:00
Ankita Singh, firstname.lastname@example.org, Office hours: Friday 1:00-3:00
Yi Yang, email@example.com, Office hours: Friday 10:00-12:00
Jordan Hughes, firstname.lastname@example.org, Office hours: Monday 10:00-12:00
Plane Janthong, email@example.com, Office hours: Monday 1:00-3:00
Suraj Rajesh, firstname.lastname@example.org, Office hours: Thursday 4:00-6:00
Roman Kazarin, email@example.com, Office hours: Monday 3:00-5:00
Tuesday/Thursday 12:30-1:45 Location:
Wednesday 9:00-9:50 Location:
Wednesday 10:00-10:50 Location:
Wednesday 11:00-11:50 Location:
Wednesday 12:00-12:50 Location:
Wednesday 1:00-1:50 Location:
Wednesday 2:00-2:50 Location:
Class mailing list:
We will Piazza for class discussion.
Please post your questions to Piazza instead of directly e-mailing to the
Instructor or the TAs. We will continuously monitor the Piazza and answer
the questions for everyone to see.
Find our class page at:
To sign up use this link:
Compute the expression (perm-number % 98887) to see your grade.
Class Schedule, Lecture Notes and Reading Assignments
- Programming Assignment 01, due on Monday, April 4th at 23:59.
- Programming Assignment 02, due on Monday, April 11th at 23:59.
- Programming Assignment 03, due on Monday, April 18th at 23:59.
- Programming Assignment 04, due on Monday, April 25th at 23:59.
- Programming Assignment 05, Extended: due on Tuesday, May 3rd at 23:59.
- Programming Assignment 06,
Extended: due on Tuesday, May 10th at 23:59.
- Programming Assignment 07,
Extended: due on Tuesday, May 17th at 23:59.
- Programming Assignment 08,
due on Monday, May 23rd at 23:59.
- Programming Assignment 09,
Extended: due on Tuesday, May 31st at 23:59.
- Programming Assignment 10,
due on Wednesday, June 8th at 23:59.
- Homework 1, due on Thursday, April 14th at 5:00PM.
- Homework 2, due on Thursday, April 21st at 5:00PM.
(There was a typo in problem 5(c) in the printed version of the homework, the electronic version
here is fixed. For double values in problems 4 and 5 writing two digits after the decimal point
- Homework 3, due on Thursday, May 12th at 5:00PM.
- Homework 4, due on Thursday, June 2nd at NOON.
- Midterm 1, April 26, Tuesday, in class
- Midterm 2, May 19, Thursday, in class
- Final Exam: June 6, Monday at 12:00-2:00
W. Savitch. Problem Solving with C++. 9th Edition, 2014.
- Introduction (Chapter 1)
- C++ Basics (Chapter 2), Control Flow (Chapter 3)
- Functions (Chapter 4, Chapter 5)
- I/O Streams (Chapter 6)
- Arrays, Multi-Dimensional Arrays (Chapter 7)
- Strings and Vectors (Chapter 8)
- Pointers and Dynamic Arrays (Chapter 9)
- Structures (Chapter 10.1)
- Pointers and Linked Lists (Chapter 13)
- Attending lectures.
- Reading the book chapters listed in the reading assignments.
- Programming assignments: There will be 10 programming assignments.
Programming assignments will be posted online and they will be discussed by TAs
in the labs. Programming assignments and lab attendance will make 40% of the
overall grade (4% lab attendance, 36% programming assignment grade).
- Homeworks: There will be 4 homeworks. Homeworks will make 15% of the overall grade.
- There will be two midterms and one final. Each exam will be 15% of the
- All assignments will be posted to the class webpage.
- Announcements will be posted to the class webpage or to Piazza. Students
are responsible for monitoring the class webpage and Piazza.
- All assignments will be individual assignments.
- You can turn in programming assignments up to 24 hours late for a 10% penalty. They will not be accepted if they are more than 24 hours late.
- You have to submit programming assignments via http://submit.cs.ucsb.edu
- No late homework will be accepted.
Homeworks must be turned in on the due date as hard copy to the homework Box in HFH 2108.
- Exams will be closed book, closed notes.
- You must follow UCSB's rules of
Programming Assignment Policy: Cooperative work is an important part of learning. You are encouraged to study together, discuss the lectures, and discuss the software solutions. However, you are not allowed to share your
- DO NOT turn in duplicate work (even one line of code or comment).
- DO NOT copy work (even one line) from another student's assignment or file.
- DO NOT copy work (even one line) from a published source other than the textbook or lecture material.
- DO NOT lend another student your assignment.
- DO NOT look at someone else's working code to fix your problem.
- DO NOT write part (even one line) of another student's assignment.
- DO NOT e-mail, post or transfer any of your files to another student.
- DO NOT store your program on a computer to which another student in the class has access.
If you violate these rules, you risk receiving a grade of F, and a letter will be sent to the campus Judicial Affairs Office to report the incident.