Governor's Career & Technical Academy Arlington

CSC 223 Weekly Goals and Tasks: Week 1

CSC 223


Overview

Welcome to CSC 223: Data Structures and Analysis of Algorithms! Since we made the jump from 1975 forward to 2025 about a month ago there will be a lot of continuity in our study as we move to this new course.

Friday, February 7th

Classwork

Today we will learn how to use class templates in C++ and discuss how they can be used to implement generic data structures such as the linked list that we have been studying.

Homework

I asked Python to choose groups, and it gave me back the following:

  • Akshay, Luis, Adonis, and Parker
  • Johan, Anfal, Anar and Cody
  • Jamethiel, Ved, Trostin and Marin
  • Turner, Issac and Caleb

We will divide up the exercises in Chapter 17 Exercise Set 1: Templates among these groups.

Wednesday, February 5th

Classwork

The grade distribution for this first assignment in CSC 223 was A: 10, C: 1, D: 2, and E: 2. That means that 2/3 of the class was on point, and 1/3, to varying degrees, was not. Not a terrible result, but I'm convinced we can do better.

We have a short class today, so we will use it to:

  1. Properly set up your git repos so that:
    • they have a .gitignore file that excludes unwanted digital artifacts from creeping into your repo.
    • unwanted digital artifacts that already have crept into your repos (.vscode subdirectories, .DS_Store subdirectories, build subdirectories, etc.) are removed, never to return. Note: after today, the presence of such unwanted artifacts will result in a letter grade reduction on repo evaluations.
  2. Help those of you who do not have your LinkedList files arranged properly to get them so arranged.
  3. Introduce class templates and finish Chapter 17: Linked lists, if time allows.

Homework

Complete the new exercises just added to Chapter 17 Exercise Set 0: Chapter Review.

Monday, February 3rd

Classwork

At the beginning of class you should create a new git repo for this class named csc223 on your favorit git host and email me a link. Please confirm that the link on the students page (Jose's already does ;-) from your name works before you leave class today.

We will then have a discussion of the following:

First Definitions

Efficient Program
An efficient program is one that executes in the minimum time using the minimum memory space.
Data Structure
A data structure is a collection of data elements grouped under one name that are organized and stored so they can be used efficiently.
Abstract Data Type (ADT)
An abstract data type (ADT) consists of a set of data values and the associated operations which can be performed on them precisely specified independent of any particular implementation.
Algorithm
An algorithm is a finite sequence of instructions used to solve a class of specific problems or to perform a computation.

Steps for Choosing a Data Structure

  1. Analyze the problem to determine the operations on the data that must be supported.
  2. Quantify the resource constraints for each of these operations.
  3. Select the data structure that provides the required operations within the resource constraints as efficiently as possible.

The we will then look through Chapter 17: Linked lists in our textbook together and discuss the things you should pay particular attention to as you read through it on your own during your homework.

Homework

Use TDD to complete all the test cases in Chapter 17 Exercise Set 0: Chapter Review, reading (and rereading the chapter as you do, with the aim of truly understanding what you read.

This assignment is due at 11:59 pm on Tuesday, February 4th.