Unit 00: Welcome/setup

  1. Welcome to CS 200!
  2. Syllabus highlights / course policies
    1. Supplies
    2. Computer skills
    3. Learning skills
    4. Tentative schedule
    5. Due dates
    6. Attendance, class format
    7. Academic honesty
    8. JCCC resources
  3. Course tour
    1. Canvas 1
    2. Canvas 2
    3. Textbook
    4. GitLab
  4. Take a little break?
  5. Setting up our tools for the semester
    1. Setup 1
    2. Setup 2
    3. Setup 3

This week's stuff:

Welcome to CS 200!

Class Code CS 200
Class Name Concepts of Programming Algorithms with C++
Section 400
InstructorR.W. Singh
Schedule Mondays, 6:00 - 8:50 pm, RC 347
Delivery method HyFlex

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

Supplies needed:

  • Textbook (https://moosadee.gitlab.io/courses/202401_Spring/book_corecpp.html)
  • Zoom - Needed for office hours or attending class remotely
  • Tools - A compiler (MinGW for Windows, g++ for Linux and Mac), a text editor, a document editor.
    We will set these up during the Unit 00 lab today.
  • Accounts - We will be using GitLab to store our code. Please set up a GitLab account and let me know what your username is. (https://gitlab.com/users/sign_up)

  • * Mac users: We may need to sit down together to set things up; I don't have a Mac computer so it is harder for me to pre-write the instructions for setup.

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

Computer skills:

  • Installing and running software
  • Using Windows Explorer / Finder / etc. to find files on your computer
  • Writing text documents, exporting to PDF - I'm on a Linux computer so I require PDF files; MS Word documents won't be formatted correctly.
  • Editing .txt files with a program like Notepad
  • Taking screenshots (print-screen key, then paste into an image editor to save).
  • Navigating the internet, using links
  • Sending emails
  • Uploading attachments

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

Helpful learning skills:

  • Breaking down problems - Looking at a problem in small pieces and tackling them one part at a time.
  • Organizing your notes so you can use them for reference while coding.
  • Reading an entire part of an assignment before starting - these aren't step-by-step to-do lists.
  • Learning how to ask a question - Where are you stuck, what are you stuck on, what have you tried?
  • Recognizing when additional learning resources are needed and seeking them out - such as utilizing JCCC's Academic Achievement Center tutors.
  • Managing your time to give yourself enough time to tackle challenges, rather than waiting until the last minute.

Asking useful questions - Sometimes if you're vague, I might have to respond with a follow up question to find out what you're having trouble with. In general, try to...

  • Be sure to let me know WHICH ASSIGNMENT IT IS, the specific assignment name, so I can find it.
  • Include a SCREENSHOT of what's going wrong.
  • What have you tried so far?
  • What are you unsure of?

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

Tentative schedule:

Week # Monday Topic A Topic B
1 Jan 22 Unit 00: Setup Unit 01: Exploring software
2 Jan 29 Unit 02: Command line Unit 03: C++ basics
3 Feb 5 Unit 04: Control flow  
4 Feb 12 Unit 05: Structs  
5 Feb 19 Unit 06: Functions  
6 Feb 26 Unit 07: Strings Unit 08: File I/O
7 Mar 4 Unit 09: Pointers Unit 10: Arrays and vectors
9 Mar 18 Unit 11: Classes Unit 12: Inheritance
10 Mar 25 Unit 13: Searching & sorting Unit 14: Recursion
11 Apr 1 Semester project v1  
12 Apr 8 Semester project v1  
13 Apr 15 Semester project v2  
14 Apr 22 Semester project v2  

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

Due dates:

  • Due dates are set as a guide for when you should have your assignments in by.
  • End dates/available until dates are a hard-stop for when an assignment can be turned in. Assignments cannot be turned in after this date until The Reopening.
  • The Reopening happens at the end of the semester once I have finished preparing all content for the rest of the semester. This period allows you to turn in late assignemnts that you didn't get in by the Available Until Date for a slight reduction in maximum total points.
    • Assignments that WERE NOT TURNED IN by the Available Until Date will receive a maximum points penalty.
    • Assignments that WERE TURNED IN on time will still have a 100% maximum potential grade. This is for resubmissions to fix previous issues.
  • Resubmissions to some assignments are permitted:
    • Concept Introductions are auto-graded and you can resubmit them as much as you'd like, with the highest score being saved.
    • Labs are manually graded but you can turn in fixes after receiving feedback from the instructor.

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.


JCCC requires us to take attendance during the first week of the semester. Students are required to attend class (if there is a scheduled class session) this first week. If there are scheduling conflicts during the first week of class, please reach out to the instructor to let them know. JCCC auto-drops students marked as not in attendance during the first week of class, but students can be reinstated. See https://www.jccc.edu/admissions/enrollment/reinstatement.html for more details.

HyFlex classes: The following three scenarios count as student attendance for my classes:

  1. Attending class in person during the class times, or
  2. Attending class remotely via Zoom during class times, or
  3. Watching the recorded Zoom class afterwards

Class format:

Class sessions are flexible and can be changed to suit student requests. By default, class sessions are usually used for, (a) Working through example code, (b) An overview of the assignments for the week, (c) In-class working time.

Generally, I do not lecture during class times; there are video lectures and reading assignments that students can complete independently. Class times for this course are better used for students to get hands-on experience with the new topics while having the instructor available to answer questions and make clarifications.

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

Academic honesty:

The assignments the instructor writes for this course are meant to help the student learn new topics, starting easy and increasing the challenge over time. If a student does not do their own work then they miss out on the lessons and strategy learned from going from step A to step B to step C. The instructor is always willing to help you work through assignments, so ideally the student shouldn't feel the need to turn to third party sources for help. Generally, for R.W. Singh's courses:

  • OK things:
    • Asking the instructor for help, hints, or clarification, on any assignment.
    • Posting to the discussion board with questions (except with tests - please email me for those). (If you're unsure if you can post a question to the discussion board, you can go ahead and post it. If there's a problem I'll remove/edit the message and just let you know.)
    • Searching online for general knowledge questions (e.g. "C++ if statements", error messages).
    • Working with a tutor through the assignments, as long as they're not doing the work for you.
    • Use your IDE (replit, visual studio, code::blocks) to test out things before answering questions.
    • Brainstorming with classmates, sharing general information ("This is how I do input validation").
  • Not OK Things:
    • Sharing your code files with other students, or asking other students for their code files.
    • Asking a tutor, peer, family member, friend, AI, etc. to do your assignments for you.
    • Searching for specific solutions to assignments online/elseware.
    • Basically, any work/research you aren't doing on your own, that means you're not learning the topics.
    • Don't give your code files to other students, even if it is "to verify my work!"
    • Don't copy solutions off other parts of the internet; assignments get modified a little bit each semester.

If you have any further questions, please contact the instructor. Each instructor is different, so make sure you don't assume that what is OK with one instructor is OK with another.

Syllabus highlights / course policies

You can find the Syllabus at the end of the textbook.

JCCC resources:

How do I get accommodations? - Access Services
https://www.jccc.edu/student-resources/access-services/ Access Services provides students with disabilities equal opportunity and access. Some of the accommodations and services include testing accommodations, note-taking assistance, sign language interpreting services, audiobooks/alternative text and assistive technology.
What if I'm having trouble making ends meet in my personal life? - Student Basic Needs Center
https://www.jccc.edu/student-resources/basic-needs-center/ Check website for schedule and location. The JCCC Student Assistance Fund is to help students facing a sudden and unforeseen emergency that has affected their ability to attend class or otherwise meet the academic obligations of a JCCC student. If you are experiencing food or housing insecurity, or other hardships, stop by COM 319 and visit with our helpful staff.
Is there someone I can talk to for my degree plan? - Academic Advising
https://www.jccc.edu/student-resources/academic-counseling/ JCCC has advisors to help you with:
  • Choose or change your major and stay on track for graduation.
  • Ensure a smooth transfer process to a 4-year institution.
  • Discover resources and tools available to help build your schedule, complete enrollment and receive help with coursework each semester.
  • Learn how to get involved in Student Senate, clubs and orgs, athletics, study abroad, service learning, honors and other leadership programs.
  • If there’s a hold on your account due to test scores, academic probation or suspension, you are required to meet with a counselor.
Is there someone I can talk to for emotional support? - Personal Counseling
https://www.jccc.edu/student-resources/personal-counseling/ JCCC counselors provide a safe and confidential environment to talk about personal concerns. We advocate for students and assist with personal issues and make referrals to appropriate agencies when needed.
How do I get a tutor? - The Academic Achievement Center
https://www.jccc.edu/student-resources/academic-resource-center/academic-achievement-center/ The AAC is open for Zoom meetings and appointments. See the website for their schedule. Meet with a Learning Specialist for help with classes and study skills, a Reading Specialist to improve understanding of your academic reading, or a tutor to help you with specific courses and college study skills. You can sign up for workshops to get off to a Smart Start in your semester or analyze your exam scores!
How can I report ethical concerns? - Ethics Report Line
https://www.jccc.edu/about/leadership-governance/administration/audit-advisory/ethics-line/ You can report instances of discrimination and other ethical issues to JCCC via the EthicsPoint line.
What other student resources are there? - Student Resources Directory

Course tour

We will be using three main websites throughout this course:

1. Canvas LMS - https://canvas.jccc.edu/

  • Assignment turn-ins
  • Announcements, emails
  • Grade tracking

πŸ“–οΈ2. Textbook - https://moosadee.gitlab.io/courses/202401_Spring/book_corecpp.html

  • Reading assignments
  • Links to lectures
  • Assignment documentation
  • Quick reference and syllabus

3. Source Control - Link provided later

  • Download starter code
  • Upload finished code
  • Backup code on GitLab server
  • Why? - It's an important tool used by software developers, so we will begin learning about it in this class.

Course tour - Canvas

Canvas navigation:

  • Home - Shows the Modules pages by default
  • Announcements - Course announcements; default settings also send these to your email
  • Modules - View course content by WEEK/UNIT
  • Assignments - View course content by DUE DATE, or by ASSIGNMENT TYPE
  • Quizzes - View quiz-based course content
  • Discussions - view discussion board based course content
  • Grades - View your grades and course progress
  • Zoom - Find the Zoom links for each class session

Course tour - Canvas


  • πŸ”— Quick links - Link to textbook, other important places
  • πŸ—ƒοΈ Late assignments dropbox - You will turn in late assignments HERE

Course tour - Textbook


  • Reading to do, links to these Presentations, and the Assignment Instructions are all located in the textbook.
  • You will also find the Quick Reference, which contains various extra resources.
  • The full Syllabus is at the end of the book.
  • Use the Table of Contents to navigate to a given assignment; each one has a unique ID you can do a "Find" with. (CTRL+F)

Course tour - GitLab

We'll be learning to use GitLab throughout the semester, and assignments will include documentation on how to use it.

Take a little break?

Before working on getting everything set up, let's take a little break.

Setting up our tools for the semester

Assignment: πŸ§‘β€πŸ”¬ Unit 00 Lab - Set up (U00.LAB.202401CS200)


Follow along with the DOCUMENTATION for how to set up. I can also show how to set things up if you get stuck with anything.

In this assignment, you will be:

  • Setting up required programs/tools for this course:
    • A Compiler
    • A Code Editor
  • Configuring your system (as needed) to make compiling from command line easier.
  • Getting access to a repository on the GitLab server (basically, a place to store your code online).
  • Downloading, building, and running some example C++ code.
  • Uploading code to GitLab and turning in a link to your code.

Setting up our tools for the semester

FIRST! Create a GitLab account: https://gitlab.com/users/sign_up

Once you have it set up, let me know what your username is and I will add you to your repository.
❓ Unit 00 Setup - GitLab Username

Once you do this, go ahead and start on the next set of things. In the meantime, I will get you set up for your repository.

Setting up our tools for the semester


LAB COMPUTERS - Should already have required software set up. Verify that you can find these programs:

  1. g++
  2. Notepad++
  3. PowerShell

YOUR COMPUTER - Do the following set up. Use the DOCUMENTATION for a step-by-step guide.

  1. Install a code editor, such as Geany or Notepad++
  2. Install MinGW (Windows) or g++ (Linux/Mac)
  3. Set up your Environment Variables - Path to point to MinGW's bin folder (Windows) - See documentation for steps

* If you have a favorite code editor already then great, use whatever tools you'd like! We will be learning to build C++ programs from the command line, so you won't need a full IDE like Visual Studio though.

Setting up our tools for the semester

Follow the documentation in the textbook. If you get stuck anywhere, let me know!