CS 200: Concepts of Programming with C++, Summer 2023


Schedule

Week #Week ofUnitsDue datesNotes
1 June 5 This week's items are due on Thursday, June 15 June 5 - First day of classes
2 June 12 This week's items are due on Thursday, June 22 Aug 28 - Last day to drop and receive full refund
3 June 19 This week's items are due on Thursday, June 29
4 June 26 This week's items are due on Thursday, July 6
5 July 3 This week's items are due on Thursday, July 13 (Tues) July 4 - Independence day holiday, classes not in session.
6 July 10 This week's items are due on Thursday, July 20
7 July 17 This week's items are due on Thursday, July 27
8 July 24 This week's items are due on Thursday, July 27 July 27 - Last day of summer session. Grades entered by July 31.

Course info

Course
CS 200: Concepts of Programming with C++

Section
350, CRN 60371, Online only

Semester
Summer 2023

Dates
06/05/2023 - 07/27/2023

Instructor
R.W. Singh (they/them)

Email
rsingh13@jccc.edu

Office
RC 348H (Not on campus during Summer, except by appointment)


Links

Course Discord
https://discord.gg/jj7U6HtVeh

Course status
Grading/prep status

Book & Lectures

Course Policies

Quick Search

Quick Reference
- How to use Visual Studio
- How to use Code::Blocks
- How to use git
- C++ style guide
- C++ commands reference
- Coding Style Guide

JCCC Course Catalog

🔗 Unit 00: Welcome to the course! (Week 1 - June 5th)

Hey there! I'm Rachel Wil Singh, aka R.W., and I will be your instructor for CS 200 this semester! Let's take a bit of time to get you acclimated to how my courses work, especially if you've never had one of my classes before.
First week of class!
  • SYLLABUS
    Review the syllabus to learn about course layout and policies
  • 👋 Introductions!
    Get to know your teacher and classmates!
  • Student Group Discussion Board
    Say "Hello!" to your teammates
  • 📝 Notes - Course Notes [CS200.CN]
    Throughout the course you will be submitting your notes (answers to questions) for a grade. This assignment has a downloadable version of the notes in .odt, .docx, and .pdf format, and you will submit your notes here throughout the semester for it to be reviewed.
    (You don't have to do anything with this assignment right now but download it to your computer.)
  • Join the Discord! (optional but recommended)
    Discord is a chat program and I have a server set up for my courses. I will also have channels created for each team in the course so you can coordinate with classmates there.

  • Make sure to continue on to Unit 01, 02, 03, and 04 for the first week!

🔗 Unit 01: Exploring software (Week 1 - June 5th)

During this unit we are going to learn a bit about software, run some command line programs and programs written in C++, and just generally explore.
Step 1: Learning new topics (solo effort) 🆕

Take notes while learning - resubmit your notes after completing the questions.

Watch the following:

Read the following:

Review concepts
These assignments can be redone as many times as you'd like to get a better grade. But to start with, you might focus on doing them once and come back to them later because there are other units to complete!

Step 2: Practicing new topics (group effort) 🏋️

First, you'll have to join the Replit team for this course. You can do that at this link: https://replit.com/teams/join/qnmgcojqmjmsmjqspztbndxcqvzptgqb-2023-06-CS200

🔗 Unit 02: main() - Intro to the structure of a C++ program (Week 1 - June 5th)

For this unit we are going to learn to create very basic C++ programs. All C++ programs have a single starting point: The main() function.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts

Practicing new topics (group effort) 🏋️

🔗 Unit 03: Variables - Storing data (Week 1 - June 5th)

We can use variables to store information for access later in our programs. In this section we'll learn about data types, declaring variables, and assigning values to them.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Practicing new topics (group effort) 🏋️

🔗 Unit 04: cin/cout - Getting input and output from the console (Week 1 - June 5th)

Let's learn more details about how we display text to the screen, as well as how to get input from the keyboard while the program is running.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Tech literacy (solo effort)

Practicing new topics (group effort) 🏋️

Class archives (optional) 🎥️

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doin gin the course, and if there are any adjustments that need to be made!

🔗 Unit 05: if/else if/else - Branching if condition is true or false (Week 2 - June 12th)

Branching is a core part of computer programming. We need to be able to "branch" our program's flow depending on some test criteria, such as if one value is greater than another.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Practicing new topics (group effort) 🏋️

Class archives (optional) 🎥️

🔗 Unit 06: switch - Branching for certain values (Week 2 - June 12th)

Switch statements are important in programming because they allow you to handle multiple cases or conditions in an efficient and easy-to-read manner.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Practicing new topics (group effort) 🏋️
  • 🏋️ Unit 06 Exercise - Branching with switch statements [CS200.U06EX] (Due Sunday, June 18th)
    📄 Documentation (Will be posted soon!)
    Canvas assignment
    replit: Assignment "U06EX - switch statements"

Class archives (optional) 🎥️

🔗 Unit 07: while - Looping while true (Week 2 - June 12th)

A while loop in programming is a control flow statement that allows a block of code to be executed repeatedly, as long as a certain condition remains true. The code block inside the loop will continue to execute as long as the specified condition is evaluated to true.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Tech literacy (solo effort)

Practicing new topics (group effort) 🏋️

Class archives (optional) 🎥️

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doin gin the course, and if there are any adjustments that need to be made!

🔗 Unit 08: Pointers and memory (Week 3 - June 19th)

In C++, a pointer is a variable that stores the memory address of another variable. It allows direct access to the memory location of the variable it points to, providing the ability to manipulate the value of the variable indirectly.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

🔗 Unit 09: Functions - Delegating tasks elseware (Week 3 - June 19th)

Functions are an essential building block of programming because they allow programmers to break down a program into smaller, more manageable pieces of code.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Tech literacy (solo effort)

Class archives (optional) 🎥️

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doin gin the course, and if there are any adjustments that need to be made!

🔗 Unit 10: struct - Organize related data in a new type (Week 4 - June 26th)

With structs we can create our own data types. Structs are similar to classes in many ways, though classes are still used in C++, which we will cover later on. For now, we will keep our structs small and simple.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

🔗 Unit 11: class - Writing Object Oriented programs (Week 4 - June 26th)

In C++, a class is a user-defined data type that encapsulates data and functions that operate on that data into a single entity. It provides a way to organize and modularize code, enabling object-oriented programming (OOP) concepts such as inheritance, polymorphism, and encapsulation.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Tech literacy (solo effort)

Class archives (optional) 🎥️

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doing in the course, and if there are any adjustments that need to be made!

🔗 Unit 12: for - Looping with a counter (Week 5 - July 3rd)

In C++, a for loop is a control structure that allows a block of code to be executed repeatedly for a specific number of times. It has a syntax that consists of three optional statements in the initialization, condition, and update expressions, separated by semicolons, enclosed in parentheses, followed by a statement or a block of statements to be executed in the loop.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Class archives (optional) 🎥️

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

🔗 Unit 13: Storing sets of data with Arrays, Dynamic Arrays, and Vectors (Week 5 - July 3rd)

In C++, an array is a collection of elements of the same data type that are stored in contiguous memory locations. It can be initialized with a fixed size, and the individual elements can be accessed by their index position within the array.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

  • Chapter 14: Pointers, memory management, and dynamic variables and arrays, Chapter 18: The Standard Template Library the CS 200/235 textbook

Review concepts (solo effort)

Tech literacy (solo effort)

Class archives (optional) 🎥️

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doin gin the course, and if there are any adjustments that need to be made!

🔗 Unit 14: string - Working with text using the string library (Week 6 - July 10th)

In C++, std::string is a class in the Standard Library that represents a sequence of characters as a string object. It provides many built-in functions that allow manipulation of strings, making it a more flexible and powerful alternative to C-style character arrays.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

🔗 Unit 15: ifstream and ofstream - File input and output with the fstream library (Week 6 - July 10th)

Programs aren't very useful if they can't save data for later uses. In this section we will learn some basics of file input and output.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Review concepts (solo effort)

Tech literacy (solo effort)

Class archives (optional) 🎥️

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doin gin the course, and if there are any adjustments that need to be made!

🔗 Unit 16: Inheritance - More Object Oriented Programming (Week 7 - July 17th)

In C++, inheritance is a mechanism that allows a new class to be based on an existing class, inheriting its data members and member functions. The derived class can then extend or modify the functionality of the base class, providing a way to reuse and extend existing code.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following:

Class archives (optional) 🎥️

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

🔗 Unit 17: Searching and sorting - Where's my data? (Week 7 - July 17th)

Searching and sorting algorithms are fundamental concepts in computer science used to organize and retrieve data efficiently. Searching algorithms help to find specific items within a collection of data, while sorting algorithms arrange data in a specific order, such as numerical or alphabetical.
Learning new topics (solo effort) 🆕

Take notes while learning:

Read the following:

Practicing new topics (group effort) 🏋️

Semester project (group effort) 💻

Check in (solo effort) 🧑‍🏫

Check-ins help me find out how you're doin gin the course, and if there are any adjustments that need to be made!

🔗 Unit 18: Recursion basics - Another way to solve problems (Week 8 - July 18th)

Recursion is a technique where a function calls itself repeatedly until a specific termination condition is met. It can be used to solve complex problems that can be broken down into simpler, similar sub-problems, making the code more concise and easier to read.
Learning new topics (solo effort) 🆕

Take notes while learning:

Watch the following:

Read the following (optional)

Review concepts (solo effort)

Tech literacy (solo effort)

Practicing new topics (group effort) 🏋️

We're going to be lazy and not have any coding assignments for this week. 😎

You'll be seeing Recursion again in Discrete Math and future programming courses, so it's good to at least watch the lecture!

Semester project (group effort) 💻