Overview
Welcome to 2nd Quarter! With the CPE now behind us, it's time for the promised flip in how we conduct class. Tests and quizzes are out, programs and presentations are in! We are moving from learning to read C++ programs to learning to write them.
Of the 12 students in our class, 5 have now earned CPE certification, while 7 have not. Experience has taught me that it is very difficult, to write in a language you can't effectively read, and I will explain in class this week how I hope to mitigate this challenge to provide extra support for students still struggling to learn to effectively read C++.
Friday, November 7th
Classwork
Today in class we will briefly discuss Chapter 11: Member functions in our textbook, in which we begin our study of object-oriented programming proper.
To make the flipped classroom approach work, you will be assigned to read chapters at home for homework, and then work together programming during class.
One observation I'll add to the chapter text for you Java programmers is that
structs in C++ are the same as classes except that
the former default to having their members public while in the latter they
default to private. Since we're interested in learning and not concerned at
this point with restricting access, we'll use structs, adding
member functions to them, turning them into objects. The chapter uses
two objects as examples, Time objects and Point
objects.
I'll also demo how to separate our member function declarations from their definitions, moving the former into a separate file, called a header file, and we'll talk about why you only need to include these header files in other source code that uses the functions declared in them.
I'll mention C++'s suppport for operator overloading, which you Python programmers are familiar with but not you Java folks, and I'll very briefly introduce the ncurses UI library that we can use to create nice console based user interfaces, which we'll talk about more next Wednesday.
Finally, we pair everyone with a classmate to complete the first evaluated assignment and presentation for quarter 2.
And the Pairs Are... ===================== Sean will pair with Arya on Set 0 Exercise 1. Waleed will pair with Delanie on Set 0 Exercise 2. Evan will pair with Giselle on Set 0 Exercise 3. Dimitrios will pair with Stephan on Set 0 Exercise 4. Mason will pair with Antoan on Set 0 Exercises 5 and 6. Robbie will pair with Nathan on refactoring interrogate_env.cpp.
Be ready to present your solutions to these exercises to the class when we meet next Wednesday.
Evaluation
Your work this quarter will be evaluated using our presentation rubric and our programming assignment rubric, equally weighted. We'll talk about this in class today too.
Homework
There are still 6 of you without linked names on our Student Git Repos page. You can't earn credit in 2nd quarter without that!
Read Chapter 11: member functions in our textbook, making sure you are reading for understanding, including running examples presented and anaylzing how they work.
Wednesday, November 5th
Classwork
As we make the promised switch in focus in our study from reading C++ to writing C++, we will start with a discussion of software engineering, and how a basic understanding of it can help us learn to write clean, maintainable code. We'll watch the first of two delightful videos on this topic from Robert C. Martin's Clean Code series: Fundamentals, Episode 1.
After the video will have a brief discussion of the results of our CPE testing and how I plan to use the results to plan your learning journey during 2nd quarter.
Writing C++ programs effectively will require you to have the skills that enable you to:
- manage and edit files from the unix command line.
- use git and Markdown to submit and share your work.
At the end of class we will talk about the online portfolio you'll begin creating 2nd quarter. I encourage you to take a look at work of APS 2024 graduate Brayden Zee as a model for what can be done.
Homework
Create an account for yourself on Codeberg
and a git repository named csc222. If you don't see your name
linked from our Students page, send me an email
with a link to your repo so I can add it to the page. Spend your remaining
homework time reviewing the skills you will need this quarter: using the
unix cli to manage files and directories, editing text files with
vim, and using git for revision control.
We'll begin applying these skills in class on Friday.