CSI 32 Introduction to Computer Programming II     

D01 (50442)

Monday, Wednesday, 12:00 pm-1:50 pm, room CP 320
 

 
Date Class Materials HW assignment
12/16 Final Exam

12pm - 1:50pm

 More details can be found on the Midterm and Final Exams page.
 

Week 16
 
You can see your grades here. Use the last four digits of your school id.
 
12/09 Review / Preparation for the Final Exam

Review problems, set 2

Meeting recording

File with an answer for problem 7

 
 
12/07 "Ads Engineering Technical Talk" given by Google engineers

Today at 3 pm, at Google Meet (I sent you the link through CUY FIRST), e-mail me if you didn't get it.

And if you can, it would be great if you could register (see the flyer).

Here is the flyer
12/07 Review / Preparation for the Final Exam

Review problems, set 1

Meeting recording

text file: movies.txt
 

Week 15
 
12/03 Summer Internship opportunity: NSF REU summer research in Biophysics at Princeton

Please consider attending the program presentation meeting on Thursday, December 3rd at 12pm

More details are attached in the flyer. The Zoom link will be posted shortly.

Here is the link to more information about the program and application: https://reumolbiophysics.princeton.edu/
Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) see the lecture slides from 11/30 meeting
2) see the lecture slides from 12/02 meeting
3) Chapter 17 Summary and Self-Review Exercises
4) Chapter 20 Summary and Self-Review Exercises

Self-Study:
read Section 17.8 (Processing new Failures)
read Section 20.3.1 (Insertion sort)
12/02 Chapter 20 Searching and Sorting

Lecture slides

Meeting Recording

source code: linearSearch.cpp, linearSearch2.cpp, binarySearch.cpp, bubbleSort.cpp, selectionSort.cpp


Additional Resources:
1) Bubble sort demonstration
2) Selection sort demonstration


11/30 Chapter 17 Exception Handling: A Deeper Look

Lecture slides

Meeting recording

source code: catchingAndThrowingExceptions.cpp, definingExceptionClass.cpp, definingExceptionClass2.cpp, rethrowingException.cpp, stackUnwinding.cpp, unique_ptrExample.cpp and SomeClass.h

Self Study: read Section 17.8


Additional Resources:
1) <stdexcept>
2) <exception>



Week 14
 
11/25
Wednesday, but follows Friday schedule


Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
(1)Write a program that allows the user to play with two sets of integer values, with names A and B. At the beginning of the program the user must be given an opportunity to enter the elements of the sets A and B.
Then he or she should be provided with a menu that will allow to:
  *   find the intersection of sets A and B
  *   find the union of sets A and B
  *   find the difference of sets A and B
  *   find the difference of sets B and A
  *   add the elements to the set A
  *   add the elements to the set B
  *   empty the set A
  *   empty the set B
  *   quit the program

After each iteration, the result must be displayed, and the user should be able to continue playing with the operations.

(2) Given a vector of decimal values, write the code that uses the algorithm for_each and finds the average of all the values in the vector. Here is the beginning of the program:

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int main(){
      vector<double> V = {1.1, 7.6, 2.3, 9.7, -3.2, -10.4, 7.6, 12.3};
      int s; // used to find the sum

      for_each(
// put the rest of the code
}


You must use lambda expression or function pointer

(3) Chapter 16 Summary and Self-Review Exercises
11/23 Chapter 16 Standard Library Algorithms

Lecture slides

Meeting recording

source code: lambdasExamples.cpp, functionObjectExample_beginning.cpp
Source code after the class meeting: lambdasExamples_full.cpp, basicSearchSortExamples.cpp, functionObjectExample.cpp

Quiz 11 today at the end of the lecture, based on Chapter 14 (part 2), can be found on the Blackboard - this is the last quiz!

Self Study: read Section 16.4

Additional Resources:
1) lambda expressions

Week 13
 
11/18 Chapter 15 Standard Library Containers and Iterators
( Sections 15.1 - 15.6 only)

Lecture slides

source code: dequeUse.cpp, listUse.cpp, dequeWithIterators.cpp, listWithIterators.cpp, inputOutputWithIterators.cpp, mapUse.cpp

Meeting recording

Quiz 10, today at the end of the lecture, based on Chapter 14 (part 1) and Chapter 13

Additional Resources:
1) deque
2) list
3) map
4) make_pair vs pair
HW 11 (due date: Friday, November 27th Wednesday, December 2nd) - last HW assignment

1) Exercise 14.11
(feel free to reduce the number of records to 10)

2) Write the program that will read the ages of the people from a given file (file name should be requested from the user), store them (choose between three data types: vector, deque, map), and then output the count of each age that was read from the file to the display.
For example, given the file data.txt:
23 67 1 4 7
67 4 1
7 4 23 1


The output will be:
Age       Count
23             1
67             2
1                3
...


Self-Study:
read Section 15.5.1 (vector)

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 14, Self-Review Exercises
2) Chapter 15, Self-Review Exercises and other exercises: 15.1 (all, except i, l, o), 15.2 (all except c, g, n, s), 15.6, 15.8, 15.9, 15.13

Optional (for self-development): Section 14.11
11/16 Chapter 14 File Processing (part 2)

Lecture slides

source code: writingAndReadingFilesForRandomAccess.cpp;
Account.h, Account.cpp, one more source file will be posted after the class: usingAccounts.cpp

HW 10 (Complex stream extraction discussion)
Meeting recording

Additional Resources:
1) write() function info
2) read() function info
3) copy() function

Week 12
 
11/11 Chapter 14 File Processing (part 1)

Lecture slides

source code: seqFileCreation.cpp, readSeqFile.cpp; seekExamples.cpp, file3.txt;

In-class work files to grab:
Account.txt (has the account information),
transactions1.txt (a set of transactions),
transactions2.txt (a set of transactions),
transactions3.txt (a set of transactions)

Meeting recording

Quiz 9, today at the end of the lecture, based on Chapters 11 and 12, can be found on the Blackboard

Additional Resources:
1) exit() function
2) seekg (istream)
3) seekp (ostream)
4) tellp (ostream)

HW 10 (due date: Friday, November 20th Wednesday, November 25th)

1) Exercises 13.6, 13.7

2) recall the class Complex:
re-define the stream extraction operator (input stream) to be able to get the input in the form 4 – 9i from the user. It should determine whether the data entered is valid, and if it is not, it should set failbit to indicate improper input.

3) The in-class work from November 11th meeting

Self-Study:
1) read sections 13.7 and 13.8
2) Chapter 13, Summary and all Self-Review Exercises

Optional (for self-development): Section 13.6.4
11/09 Chapter 13 Stream Input/Output: A Deeper Look

Lecture slides

Meeting recording
WE didn't cover all the slides. I will record the rest and will post it here by Friday evening.

Additional recordings (MAKE SURE YOUR WATCH THEM and READ the assigned sections):
1) Manipulators/Stream Error State
2) In-Class Work

source code:
outputExamples.cpp, inputAndOutputExample.cpp, inputAndOutputExample2.cpp , inputAndOutputExample3.cpp, inputAndOutputExample4.cpp, inputAndOutputExample5.cpp, outputStreamManipulation.cpp, flags.cpp, errorStates.cpp

in-class work: inClassWork1_draft.cpp
in-class work answer: inClassWork.cpp

Additional Resources:
1) ASCII table
2) ostream::put()
3) ostream::write()
4) istream::get()
5) istream::ignore()

Week 11
 
11/04 Chapter 12 Object Oriented Programming: Polymorphism

Lecture slides

source code:
set1: Point.h, Point.cpp, Quadrilateral.h, Quadrilateral.cpp, Trapezoid.h, Trapezoid.cpp, Example1.cpp, Example2.cpp Example3.cpp
set2: virtualFunctionsExample.h, virtualFunctionsExample.cpp

Meeting recording

Quiz 8 based on Chapter 10, covered during the week of October 26th - October 29th

I finally posted the recording of the rest of the slides for our October 28th meeting (Chapter 10). Here is the recording.
HW 9 (due date: Wednesday, November 11th Friday, November 13th)
1) Use the classes we defined in class, write the header and the implementation of the Rectangle and Square classes as child/derived classes from Trapezoid class.

(a) The objects of class Rectangle will be created from two points : top left point and bottom right point (see slides for picture)

An example of the declaration: Rectangle r1(Point(10,200),Point(80,50));

The two points must be stored as attributes of the class

(b) The objects of class Square will be created from the center point and the length of the side (See slides for picture)

An example of the declaration: Square s1(Point(60,100), 80));

The center point and the length of each side should be stored and attributes of the class.

(c) For both of the classes, define Area member function, overload Perimeter member function and overload output stream operator << to display the corresponding information about them.

When overloading the output stream operator<<, note that you should display approriate information.
For Rectangle: the four points, the length and the width (or two points: top left and bottom right) and length and width.
For Square: the four points and the length of a side or the center point and the length of a side.

(d) Define the Point::slope method. At this moment, the method simply returns 0.

(e) for the class Rectangle, add public methods getLength() and getWidth() that return the length and the width, correspondingly.

(f) for the class Square, add public method getSide() that returns the length of each side.

2) Explore the idea of making functions of Area() and Perimeter() as virtual functions in our Quadrilateral class hierarchy that so far consists of classes Quadrilateral, Trapezoid, Rectangle and Square.

What do you need to do for it?

Do you need to also announce these functions as virtual in Quadrilateral and Trapezoid classes?

Do it!

Self-Study
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 10, Summary and all Self-Review Exercises
2)Read Sections 12.6 - 12.7

Optional (for self-development): (not for grade, no questions will be asked based on this material):
Read Sections 12.8 - 12.9
11/02 Chapter 11 Object Oriented Programming: Inheritance

Lecture slides

Meeting recording

source code: Point.h, Point.cpp, Quadrilateral.h, Quadrilateral.cpp, Testing.cpp
Source code we created in class: Trapezoid.h, Trapezoid.cpp

Quiz 7 based on Chapter 10 material covered on October 14th

Additional Resources:
1) C++ Inheritance
2) Inheritance and Composition (with the example of Point class and Quadrilateral class)

Week 10
 
10/28 Chapter 10 Operator Overloading; Class String (continues)

Lecture slides

Meeting recording

I didn't cover all the slides from the lecture. Here is the recording of the rest.

Code to begin with: array.h, array.cpp, testingArray.cpp
Completed code: array.h, array.cpp, testingArray.cpp

On Monday, November 2nd we will have Quiz 7 based on Chapter 10 material

The Midterm Exam Grade scores are available now at the Blackboard along with the feedback from me.
Make sure to review the scores and the feedback, and work on all the problems you didn't get the full score at.
HW 8 (due date: Friday, November 6th)

Recall the class Complex we used in class on October 7th (and re-use the code from it!).

Use the header and the implementation file to do the following:

(a) overload the output stream operator<< to display the complex number object (and remove the toString() member method)

(b) overload the input stream operator>> to get the real and the imaginary parts of a complex number (Example: cin << a)
You might have to take a design decision there on how the user will enter the complex number.
For example, you might ask the user to enter only real and imaginary parts,
so for 3 + 5i the user should type in 3 + 5,
for -6i the user should type 0 - 6, and
for number 14 the user should enter 14 + 0.
Make sure to put your design decision (description) when you are submitting your implementation!!!

The rest of the methods do as member-methods:
(c) overload the += operator that adds a number on the right (rvalue) to the number on the left (the lvalue) :
Complex operator+=(const Complex& other);

Example: if a = 2+3i and b = 9-2i, then operation a+= b will update the value of a to 11 + i

(d) do the same for -=, *= and /= compound assignment operators as well:
Complex operator-=(const Complex& other);
Complex operator*=(const Complex& other);
Complex operator/=(const Complex& other);


(e) overload the + , -, /, and * operators:
Complex& operator+(const Complex& other) const;
Complex& operator-(const Complex& other) const;
Complex& operator*(const Complex& other) const;
Complex& operator/(const Complex& other) const;

and
remove the Complex add(Complex other) const; and other methods that will no longer be needed from now on(but re-use the code from them!)

(f) overload the operator == , the comparison for equality of two complex numbers
bool operator==(const Complex& other) const;

(g) overload the operator != , the comparison for not-equal of two complex numbers (do it as member method)
bool operator!=(const Complex& other) const;

Here are the header file to help you with the implementation and the test file to test your code: complex.h and testingComplex.cpp

Self-Study:
10.12 Converting Between Types
10.13 explicit Constructors and Conversion Operators

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 10, Summary and all Self-Review Exercises
2) add the copy constructor and the assignment operator to the Complex class above
3) Exercises 10.10 and 10.11
10/26 Chapter 10 Operator Overloading; Class String (continues)

We discussed the midterm exam

Lecture slides

Meeting recording

source code:
from the previous class meeting: Date.h, Date.cpp
completed: Date.h, Date.cpp, Date.cpp

Week 9
 
You can see your grades here. Use the last four digits of your school id.
 
10/21 Midterm Exam

Midterm Exam covers Chapters 1-9

The exam is timed at 2 hours and 40 minutes, but it will be available from 11am till 3pm, so that you can find a best time to take it.

If you have any questions, I will be available at our Zoom meeting 12pm to 1:50pm only (cannot do before nor after the exam).

It will be available at the Blackboard, in the Content (right under the week 9), starting from 11am. No password.

Do not rush, do not panic.
Relax and concentrate.
Keep the book and all your notes handy.
A cup of coffee/tea/whatever you prefer.
Do the questions you know how to do first, then get to the others.
Save your answers regularly. Blackboard tends to log-us-out in 5-10 minutes.

Good luck on the exam!
no HW assignments
10/19 Preparation for the Midterm Exam

Meeting recording

Here is a shortened sample midterm exam we will go over on Monday. Please take a look at it. This will give you even more understading on the type of questions that might be asked on the Midterm Exam.

Problems 3 and 4 answers: average.cpp
Problem 5 answers: (a) block scope, (b) block scope, (c) global scope, (d) global scope
Problem 6 answer: Google Photos picture
Part III, TV class answer (note that it is one of many possible implementations): TV.h, TV.cpp, testingTV.cpp (note that if you run the code, you won't see anything printed in the console)

To prepare for the Midterm Exam:
1) Review all quizzes on the Blackboard
    I believe this is the way to access the quiz details: Tools -> My Grades . You should see your quizzes scores there. If you click on the score, then you will see the list of questions in the quiz. You should be also able to see what was your answer and what is the correct answer. May be there will be an arrow down near the score ... click it ... do you see "View Details"? If yes, then click on it.

2) Review all suggested exercises (those Self-Review exercises at the end of each chapter and the additional ones I gave you)

3) Use this midterm review guide which has items 1) and 2) re-iterated in it. Answers to questions are at the end of the document.

Week 8
 
10/14
Wednesday, but follows Monday schedule

Chapter 10 Operator Overloading; class string


Lecture slides

Meeting recording

source code: stringsWork.cpp, staticMembersOfClass.cpp, staticMembersOfClass_2.cpp, Date.h, Date.cpp
We will continue working on the Date class in the meeting after the midterm exam.

Additional resources:
1) C++ string class
2) [] operator on strings
3) static member variables
4) static member functions
HW 8 (due date: Wednesday, November 4th)

1) will be posted after October 26 meeting

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 10, Summary and all Self-Review Exercises
10/12 BCC is closed. Columbus Day.
 

Week 7
 
10/07 Chapter 9 Classes: A Deeper Look (part 2)

Lecture slides

Meeting recording

source code: complex.h, complex.cpp, usingComplexClass.cpp, dma.h, complex2.h, complex2.cpp, constOandMF.cpp, friendFunction.cpp

Quiz 6, today at the end of the lecture, based on Chapter 8, can be found on the Blackboard
HW 7 (due date: Wednesday, October 14th)

1) Exercise 9.23

Self-Study:
1) Read Section 9.6.2 and answer the question in exercise 9.17


Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 9, Summary and all Self-Review Exercises
2) Chapter 9, Exercises: 9.3, 9.16
10/05 Chapter 9 Classes: A Deeper Look (part 1)

Lecture slides

Meeting recording

source code: complexNumber.h, complexNumber.cpp, testingComplexNumber.cpp, testingComplexNumber2.cpp, ConstructorsAndDestructors.cpp


Week 6
 
You can see your grades here. Use the last four digits of your school id.

Our Midterm Exam will be on Wednesday, October 21st.
It will be based on the material from Chapters 1-9
 
09/30 Chapter 8 : Pointers

no Zoom meeting (technical issues), so we will have asynchronous mode: Watch the videos given along with examples.

Lecture slides

Video recording (~42 mins)

source code: operationsPrecedence.cpp, passingByReference.cpp, passingByReference2.cpp, sizeOfExample.cpp

Quiz 5, today at the end of the lecture, based on Recursion from Chapter 6 and Chapter 7 material we covered on September 23rd, can be found on the Blackboard
HW 6 (due date: Wednesday, October 7th)

1) items (2) and (3) here: https://condor.depaul.edu/ntomuro/courses/309/notes/pointer_exercises.html
All the answers must be presented along with pictorial explanations (see the examples 1 and 2 I showed during the lecture). If the work is not shown, only half the credit will be given.
2) Exercise 8.12.
You can read the tale here: http://read.gov/aesop/025.html
Please use this draft: tortoiseAndHare.h and tortoiseAndHare.cpp
and watch this video-explanation (~9 mins)

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1)Chapter 8, Summary and all Self-Review Exercises
2) Chapter 8, Exercise 8.11, 8.13, 8.14
09/29
Tuesday, but follows Monday schedule

Chapter 7 : Catching Exceptions
Chapter 8 : Pointers


Lecture slides

Meeting recording

source code: exceptionsHandling_1.cpp, pointersExample1.cpp, pointersExample_2.cpp

09/28 no classes

Week 5
 
You can see your grades here. Use the last four digits of your school id.
 
09/23 Chapter 7 Class Templates: array and vector; Catching Exceptions

Lecture slide

Meeting video recording

source code: arraysExample.cpp, arraysExample2.cpp, arraysExample3.cpp, arraysExample4.cpp, vect1.cpp, vect2.cpp, vect3.cpp, vect4.cpp

In-class work: see slides
Solutions: in-classWork.cpp , in-classWork2.cpp

Quiz 4, today at the end of the lecture, based on Chapter 6 (everything we covered from it during the previous week), can be found on the Blackboard
HW 5 (due date: Wednesday, September 30th) extended to Sunday, October 4th

1) Exercise 6.41
2) Exercise 7.13
3) Exercise 7.14
4) Exercise 7.28
Send your homeworks to natna20@gmail.com

Self-Study:
1) Read Section 6.19: Order of Evaluation of Operands
2) Read Section 6.20

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 6, Summary and all Self-Review Exercises
2) Chapter 6, Exercises: 6.40
3) Chapter 7, Summary and all Self-Review Exercises
4) Chapter 7, Exercises: 7.6 - 7.9, 7.11, 7.12, 7.17, 7.20
09/21 Chapter 6 Functions and Introduction to Recursion (recursion)

Lecture slides

Meeting video recording

source code: recFib_1.cpp, iterativeFib.cpp, rec_Fib_2.cpp, factorial.cpp

In-class work: see slides, and the draft: HanoiTower_draft.cpp
Solution: HanoiTower.cpp



Week 4
 
You can see your grades here. Use the last four digits of your school id.
 
09/16 Chapter 6 Functions and Introduction to Recursion

Lecture slides


Videos:
1) Meeting video recording
2) Video recording of in-class practice 2 from the previous meeting

source code: refParameters.cpp, defaultParameters.cpp functionOverloading.cpp unaryScope.cpp templateFunctionExample.cpp

Quiz 3, today at the end of the lecture, based on Chapter 5, can be found on the Blackboard
HW 4 (due date: Wednesday, September 23rd)

1) Exercise 6.31
2) Exercise 6.33
3) Exercise 6.49
4) Exercise 6.51
Send your homeworks to natna20@gmail.com

Self-Study:
1) Read Sections 6.7 - 6.8

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 6, Summary and all Self-Review Exercises
2) Chapter 6, Exercises: 6.11, 6.16, 6.17, 6.18, 6.46, 6.53
09/14 Chapter 6 Functions and Introduction to Recursion
Sections 6.1 - 6.12

Lecture slides

Videos from the meeting:
1) lecture
2) in-class practice 1
We did in-class practice 2 problem in the next meeting. Here is the video recording:
3) in-class practice 2

source code: Prototypes.cpp, RandomNumbersExample.cpp, scopesExample.cpp, scopesExample2.cpp, inlineFunctions.cpp

In-class work: see slides
Solutions: SomeFunctions.h, SomeFunctions.cpp, someFunctionsTesting.cpp; reverseNumber.cpp

Additional resources:
Codecademy: Functions

Week 3
 
You can see your grades here. Use the last four digits of your school id.

 
09/09 Chapter 5 Control Statements: Part 2, Logical Operators

Lecture slides

Recording of the meeting

source code: forLoop.cpp, outputFormatting.cpp, stringExample.cpp, switchExample1.cpp, switchExample_2.cpp, doWhileExample.cpp,

In-class work: see slides and Exercise 5.19
Solutions: switchInClassWork-answer.cpp, Exercise5_19.cpp

Quiz 2, today at the end of the lecture, based on Chapters 3 and 4, can be found on the Blackboard

Additional resources:
Codecademy: Conditionals and Logic, Loops
HW 3 (due date: Wednesday, September 16th)

1) Exercise 5.13
2) Exercise 5.16
Send your homeworks to natna20@gmail.com

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 5, Summary and all Self-Review Exercises (pages 203-205)
2) Chapter 5, Exercises: 5.9, 5.10, 5.22, 5.23
09/07 BCC is closed. Labor Day.

Week 2
 
09/02 Chapter 4 Algorithm Development and Control Statements: Part 1

Lecture slides

1) video of the class meeting
2) video of the "study at home" material

source code: danglingElseExample.cpp, refinementExample_pseudocode.cpp, increment.cpp
refined code: refinementExample.cpp

In-class work: exercise 4.28
Solution: binaryToDecimal.cpp

Quiz 1, today at the end of the lecture, based on Chapter 2, can be found on the Blackboard

Additional resources:
Codecademy: Conditionals and Logic, Loops
HW 2 (due date: Wednesday, September 9th)

1) Exercise 3.10
2) Exercise 3.13
3) Exercise 4.27
4) Exercise 4.37
Send your homeworks to natna20@gmail.com

Suggested exercises
(not for grade, but the questions related to these will appear on a quiz or a test):
1) Chapter 3, Summary and all Self-Review Exercises (pages 95-100)
2) Chapter 3, Exercises: 3.5 - 3.8
3) Chapter 4, Summary and all Self-Review Exercises (pages 141-147)
4) Chapter 4, Exercises: 4.11, 4.12, 4.21, 4.23, 4.32
08/31 Chapter 3 Introduction to Classes, Objects, Member Functions and Strings

Be ready to use programming environment during the class meeting!

Lecture slides (typos are fixed!)

source code from the book: Account.h, AccountTest.cpp,
modified code: Account2.h, AccountTest2.cpp

Training Quiz, today at the end of the lecture can be found on the Blackboard. Look under Week 2. Password: CSI32

1) Video of lecture
2) Video of the first in-class practice problem
3) Video of the second in-class practice problem + Blackboard quiz
4) Video for the third in-class practice, exercise 3.12 (the one we didn't do during our meeting)

In-class work: exercises 3.9, 3.14; 3.12
Answers: Exercise3_9.cpp, Account3_exercise3_14.h (only the header), 3.12: Date.h , DateTest.cpp

Additional resources:
Codecademy: Classes & Objects

Week 1
 
08/26 Chapters 1 and 2

Lecture slides

For those who missed our meeting or would like to review some moments:
1. Course organization: https://youtu.be/XNw3De_yyCA
2. Covering Chapters 1 and 2 (part 1): https://youtu.be/O6X_ysE4Ac8
3. Covering Chapters 1 and 2 (part 2): https://youtu.be/TkPnamkK6rI
4. Example 2 video recording (we didn't cover it during the meeting): https://youtu.be/lVsG57CklAc
5. Example 3 video recording (we didn't cover it during our meeting): https://youtu.be/AXjC01QdOQc
Remember that you can watch a youtube video at a higher speed (1.25, 1.5, 2, etc.)

source code: Example1.cpp, Example2.cpp, Example3-operators.cpp

Announcements:
First two chapters of the book are available through e-reserves:
http://bcc-cuny.libguides.com/er.php?b=c
Choose CSI32 from the list

Additional resources:
Codecademy: Hello World and Variables ; Conditionals & Logic has a little bit more that what we covered, but if you have time, go ahead and do it.

You can also enroll into the edX C++ course from Microsoft (free withouth the certificate, select Audit this course)

Udemy has C++ Tutorial for Complete Beginners (free)

edX and Udemy's courses seem to have more information about C++ in them.
HW 1:

due Monday, August 31st:
1) Chapter 2, Summary and all Self-Review Exercises (pages 64-67) - not for grade, but the questions related to these will appear on a quiz and test.
2) Chapter 2, Exercises (pages 68-69): 2.7 - 2.15 - not for grade, but the questions related to these will appear on a quiz and test.

due Wednesday, September 2nd: both programming assignments will be graded
1) Chapter 2, Exercise 2.25 on page 70
2) Write a program that reads in three integer numbes from the keyboard, then
  • determines and prints the largest and the smallest integers in the group (use only the programming techniques you learned in Chapter 2),
  • determines and prints whether each number is odd or even (hint: use the remainder operator %)

Please remember:
  • All homeworks have the due date and must be submitted by the midnight of the due date. Late homeworks are not accepted.
    Example: if the due date is September 23rd, then the latest time for the submission is 11:59 pm on September 23rd.

  • When submitting your homework via e-mail:
    1. put HW number in the Subject field, for example: HW 01
    2. attach all the source file(s)(with the extention '.cpp' or the extention '.h'), and, when needed, a file with the input and output of your program(s)
    3. your program must run (no syntax errors!)
    4. your code must be well-commented
    5. when I send you back a reviewed homework submission with comments and allow to re-submit your program, do so as Reply; do not compose a new e-mail message.

  • All homeworks must be done on your own. No group work, no copying.

  • Several of the worst homeworks will be dropped.
due Wednesday, September 9th:
Read Chapter 1, sections 1.1 - 1.9, 1.11 - 1.14- not for grade, but the questions related to these will appear on a quiz.