CSC 222 Weekly Assignments: Week 1

CSC 222


Overview

Welcome to CSC 222: Object Oriented Programming! This is the 2nd in the three course core sequence in computer science at NVCC, following CSC 221: Introduction to Problem Solving and Programming and proceeding CSC 223: Data Structures and Analysis of Algorithms. It is also the first half of a dual-enrolled course high school course that is paired with CSC 208: Introduction to Discrete Structures during the Spring.

In this course we will learn to write object-oriented programs in C++. This week we will dive right into that task, but our first goal is to make sure everyone has the required CLI skills to write, compile, and run C++ programs.

Thursday, September 3rd

Classwork

Okay, grades are in for the first assignment. The results where: A: 21 and E: 4. Those aren't bad numbers, but I know we can do better (I was hoping for 26 and 0). If you're in the first group, you're off to a great start. If you're in the second group, reflect on why and consider whether you have the time in your life to be part of a rigerous, fast-paced college course. We will talk about why I must insist on hard due dates to maintain the approach to learning we will use in this course.

Before we dive into chapter 2, I'll reflect on the emails I received for your first assignment, and talk to you about git repos and binary files. We'll take a look at Brayden Zee's git repo as a model of what you can strive for in your own online tech portfolio.

I'll also talk about the very flexible approach I hope to take toward meeting your widely varying learning needs, and how some of you may find the online C++ Essentials 1 resource to be just what you need to learn C++.

Then we will discuss types, values, and variables. By the end of class, you should be familiar with the following:

  • the process of writing and compiling small C++ programs
  • how to use the cout output stream to display program values on the console
  • what values are in C++
  • what variables are in C++ and how to declare them
  • the assignment statement and how to use it to assign values to variables
  • the increment and decrement operators and how to use them
  • integer literals and the ways they can be represented
  • the decimal, binary, octal, and hexadecimal number systems

Homework

Complete both Exercise Set 0: Chapter Review and Exercise Set 1: CPE Practice from Chapter 2: Variables and types in our text.

NOTE: If you know how to use git, I enourage you to commit your work to your git repo. Since I can not assume familiarity with git at this point, and since we won't have time to practice with it until after we take the CPE certification, I can not require you to use it now.

Madi asked me about what should be in the .gitignore for our class repos. We can add to it over time, but at a very minimum to start, we need:

.DS_Store
a.out

Evaluation

You will have your first quiz with questions similar to those assigned for homework when we meet on Thursday.

Tuesday, September 1st

Classwork

Please create a git repostitory named csc222 that you will use for the work you do for this class. You will be asked to email me a link to this repo in this evening's homework.

After you create your repos, we will write, compile and run what is perhaps the most famous program in the world, hello_world.cc.

The source code for our take today on this classic little gem is:

#include <iostream>
using namespace std;

// main: generate some simple output

int main()
{
    int num = 42;

    cout << "The answer to the ultimate question of life,\n";
    cout << "the universe and everything is (of course) ";
    cout << num  << "." << endl;

    return 0;
}

The reason this silly little program is so famous is that if you can compile it and run it, it means you have a working development environment and you know how to use it. That is no small feat.

While I won't prevent you from using any other development tools you like, the only tools I will be using in class, and the only ones you can ask me for help with, are the Unix CLI, the Vim text editor, the command-line C++ compiler, and the command-line git on your system. If you chose to use any other development tools, you will be responsible for making them work, which includes being able to commit your work to your git repo.

Homework

Using your VCCS email account, send me an email to my VCCS email address: jde232@email.vccs.edu introducing yourself to me by answering the following questions:

  1. Take a look at how I have written your name on our Student Git Repos page. Is that what you want to be called? Let me know if you want me to change it.
  2. What is your past experience with with the Unix CLI, console based text editors like Vim, and revision control using git? Note: If you were here with Chris and me last year, you don't need to answer this question.
  3. What is your previous programming experience? Which programming languages do you know? How well do you feel you know them? With which programming environments do you have experience?
  4. What motivated you to sign up for this course, and what are you hoping to get out of it? Please be as specific as you can. I have some flexibility in the particulars of what we do in this course, so the better I understand what you're looking for, the better I can modify our plans to better align them with your goals.
  5. Read Chapter 1: The way of the program in our text and send me a solution to the two exercises at the end of the chapter.
  6. What is the URL of your csc222 git repo that you will use for this class?
  7. Is there anything you would like to see in a Classroom Charter containing the rules and norms we all agree together to abide in our learning community? I only have three, which are on the wall behind my desk. Last year three students added the following: Giselle's Rule, Hik's Rule, and Arya's Rule. Should we include these again this year?
  8. Is there anything else you would like me to know about you?

NOTE: Please submit this assignment by 11:59 pm today at the latest, so that I have time to reply to your email before our next class on Thursday.

Evaluation

You will earn an A for this first assignment if you provide thoughful answers to my 7 questions, a B if you provide some answer to each question, a C if you answer some of the questions, a D send me an email, and an E if you do not.

For most of our assignments, late submissions will not be accepted. For this one, however, since I really need to get it from you, late submissions will cost a letter grade.