PIC 10A (Fall 2023)
Instructor: Professor Ali Kashefi
Discussion Section Location: MS 5138.
TA Office Hours: Tuesdays 12:00-1:00 PM; Thursdays 3:00-4:00 PM; MS 2943.
You can find a course description through UCLA’s registrar. Official course materials are available on BruinLearn.
The primary goal of the discussion sections is to equip students with the tools and strategies they need to solve the homework problems. However, programming involves far more than just knowing how to type correct code; to that end, the following goals will be incorporated, but secondary to the above:
- being able to plan and design code, i.e. creating pseudocode;
- identifying logical errors within naïve but faulty algorithms;
- identifying syntactic errors by reading compilation messages; and
- writing code with thorough documentation and clean styling practises.
I’ll be posting code written in class to the BruinLearn page; you can find uploads under the “Files” tab. I will also host these materials here. The .cpp
files will be compressed into a zip file and uploaded under their corresponding days.
In addition to the code written in class, I’ll be uploading written review notes and accompanying practise problems. I write these materials as I plan my lessons, and they force me to think about how to organise information, important details, key skills, and common errors.
- 1. Week 1 Tuesday: Input/Output, Variables, and Errors
- 1.1. Practise Problems
- 2. Week 1 Thursday: If Statements and Conditionals
- 2.1. Practise Problems
- 3. Week 2 Tuesday: Practise with If Statements
- 4. Week 2 Thursday: More Practise with If Statements
- 5. Week 3 Tuesday: Problems with Division and the Modulo Operator
- 6. Week 3 Thursday: While Loops and For Loops
- 7. Week 4 Tuesday: Characters and Strings
- 8. Week 4 Thursday: Loop Management
- 9. Week 5 Tuesday: Practise with Loops and Strings
- 9.1. Some Worksheet Solutions
- 9.2. Challenge Problem Solution
- 10. Week 5 Thursday: Vectors
- 11. Week 6 Tuesday: Functions
- 12. Week 6 Thursday: Practise with Functions
- 13. Week 7: Midterm
- 14. Week 8 Tuesday: Object-Oriented Programming and Structs
- 15. Week 9 Tuesday: Practise with Designing Structs
- 15.1. A Guided Solution to Musical Chairs
- 16. Week 9 Thursday: Classes and File Organisation
- 17. Week 10 Tuesday: Destructors and Friends
- 18. Week 10 Thursday: Pointers
- 19. Week 11: Final Exam