How you begin discussions will set the tone for the class.
We want to encourage all students to practice. 
Students will come in with different levels of confidence.
Some will know what to do to overcome that. Some won't yet.
For the first few weeks, to encourage everyone to talk, 
ask mostly not c++ related questions. 
So when designing your exercises, find places where you can 
engage with the students, with a general question. 
For example, design a code with if-else that evaluates the temperature. 
Ask a student: 'what temperature do you think is too hot?' 
In future weeks, you can ask less trivial questions. 

In the beginning as they're learning the syntax, you'll mostly code in front of them.
Then take breaks to comment about things. 
Tell them they should try to code along. 


Later on (weeks 3-4) you can have them practice trying to code with some of the exercises. Quiz them on stuff they should know. 
You can work through a couple of them, then let them try. 
Write down general tips on the board for handling these problems. 


Introduction (5 minutes)

- Start by introducing yourself, how you can be reached, when your office hours are. 
- Talk about how you will like to deliver discussions. Reiterate any class policies you think are important.
Ex:
"Tips for Success:
 Practice makes perfect
    Make sure to experiment with code
 Plan first, code later
 Start homework early
 Do not cheat
    Plagiarism checking
    Come to office hours and/or email"

- Distinguish the difference between Lecture and Discussion. Lecture is for learning content and there's often not enough time for exercises. In discussion, student will practice and get to experiment with programming. 

Tutorial (10 minutes -- take your time if you have week 0 discussion.)

- Show them how to get started with their IDE. EVERYBODY PRACTICE. 
- Show them resources they can use if they have to install it and want to try again later. 
- Mention that if they are an XCode / Mac user, they have to make sure to test the code in the PIC lab computer.
- Everyone should try out the PIC lab computers either way in case their computer dies. 
- Back up some of your computer (up to 20GB) to your UCLA Google account. This app will do it automatically for a designated folder: https://www.google.com/drive/download/

- Go over the importance of testing code and how you will practice that in the coming weeks.
- The code will be tested on the same compiler as in the PIC lab. 

(35 minutes) Show them Hello, World! Encourage them to code along. After they've finished break down the code and go line by line. Add comments. Be an example of how they can take notes during class. This is strange for first time programmers. 


##################################### Discussion 2
REVIEW: error spotting and variables
PREVIEW: casting, arthimetic, variables names


(10 minutes) Review the three main types of errors and how you can spot them.
(10 minutes) Discuss tips for debugging. Have them practice the error-spotting exercises in the document. 
(15 minutes) Go over variables and variables naming rules. 
(10 minutes) Preview arithmetic and practice. Start the exercises. 
For these you can write the code out, but before you do. Discuss how you would plan to program it. 
Write something on the board and encourage the students to write out their plan first when programming. 
Let them know in the future you'll have them take some time to try to problem solve it first. 



##################################### Discussion 2 / 3
REVIEW: arithmetic with cmath, variable names, const, doubles, round. 
PREVIEW: chars, bools


(10 minutes) Review arithmetic, variable names, const, doubles, round; and practice. 
(10 minutes) Preview chars and bools. Go over all the variable types. 
Write them on the board --how are they different? what are the useful for?
(20 minutes) Practice some predicting the output and error spotting. 
(5 minutes) HOMEWORK. Remind them they need to start the homework early. 
Open up the homework and run the template. TELL EVERYONE TO CHECK RIGHT NOW THEY CAN DO THIS. 

