home
data structures index > data structures course schedule

Data Structures and Programming C++

The following table maps course session dates, lesson topics, text references, and content links for CIT-245: Data Structures and Programming C++

Zoom meeting link

This course is held via live zoom connection with Eric Darsow at the Technology Rediscovery shop in Swissvale, PA.

zoom
Zoom into Technology Rediscovery shop

MtngID: 614 961 8122
Ph:+1 646-558-8656

Course FA20 Est. Wk. Sess. Session description Resources Language objectives Out-of-class work
CIT-245 MON
17-AUG-2020
1 1 Syllabus and course overview

For week 1, please choose an area of interest to you, choose a specific example of that area--such as the settings for your favorite game, your movie collection, the way folks are organized at your work, etc. Use the symbols on our data structures posters to create your own diagram of your chosen object/process.

Remember, we might have nested structures, such as a list of smaller lists, or a tree filled with lists of items within each node.

Take a photo/scan your diagram and upload it to the module 1 folder in our shared drive linked below, name your file your FIRST NAME only.

CIT-245 WED
19-AUG-2020
2

Deepening basic knowledge of Data Structures

Create customized notes on each of our core structures on the buttons inside this module

CIT-245 MON
24-AUG-2020
2 1
  1. Register your Unique public identifier and private codename with Eric
  2. Create a repl.it account and C++ repl
  3. Post a mapping of your public ID to the URL of your C++ repl in our tracker

CIT-245 WED
26-AUG-2020
2
  1. Coursekeeping: Slack channel
  2. NOC List Clip
  3. Working with lists and maps in C++
  4. Team optimizer project
  5. Socrative quiz
CIT-245 MON
31-AUG-2020/td>
3 1

List and Map project

  1. Clarify naming triumviarte
  2. Candidate Mapping project overview
  3. Flow charting logic
  4. Writing in functions
  5. Code together on maps
  1. Organize code into functions, and call those functions strategically to reduce repeat code
  2. Write to a vector object and read from inputted values
  3. Create a map object and write keys and extract values using keys
CIT-245 WED
2-SEP-2020
2
CIT-245 MON
MON-7SEP-2020
4 1 NO CLASS-LABOR DAY

Class-based C++

video link to recording of online class

Please have your team optimizer in a fully-baked form by Sunday at Morning light for instructor review and planing for our next phase of the course.

CIT-245 WED
19-FEB-2020
2

Class-based C++

Stroustrup Chapter 9: Classes, etc. is our guide for this session

CIT-245 MON
14-SEP-2020
5 1

References and pointers

Exploring function call essentials in chapter 8, sections 4 and 5

Write code that demonstrate the use of pointers to objects on the free store

  1. Fully-bake your team optimizer project if already done, and make an entry in the "ready for instructor review" column
  2. Study sections 8.4 and 8.5. and 17.3 and 17.4, and 17.9: Try typing in and tinkering with examples from the book
  3. Easy TODO: Bring a set of items "collectible" to the zoom meeting and prepare to search through them, and model in a C++ class. (e.g. a stack of books, kitchen itensils, food items, coins, pens & pencils)
  4. For Monday: Please create a simple program that includes a object model of your chosen item and demonstrates creating one or more instances of your model and manipulating its member variables. See Chapter 9: Technicalities, Classes, etc.
CIT-245 WED
16-SEP-2020
2

Finish our pass-by-pointer example for functions

Begin algorithms

CIT-245 MON
21-SEP-2020
6 1

Object design and algorithm intro

Create a model of an object in C++ with public and private members and a constructor

Conceptualize a sorting algorithm as a logical sequence of steps

STEP 1: Create a class representing your chosen collectible object that includes private members and public accessor methods and a constructor

STEP 2: Use your class in a simple program and create a vector of several of your objects for use in our sorting exercise next week.

STEP 3: Demonstrate as we did in class on Wednesay, that you in fact have multiples different objects with different member variables.

STEP 4: Begin the design process by tinkering with the bubble sort visualization linked at left, and relying only on pseudocode, not other folks' C++

IDEA: Investigate (try in documentation, not stack overflow) how to randomly create values for the various objects in your vector.

For Monday: please setup an account on GitHub.com

CIT-245 WED
23-SEP-2020
2
CIT-245 MON
28-SEP-2020
7 1

Video recording of sesion

video link

Implementing Bubble sort

Git essentials

  1. Fully bake your sorting project for Monday, 5 October
  2. Make a good-faith effort at pushing your project to your git rep
CIT-245 WED
30-SEP-2020
2

Session recording: git

video link

Peer help recording: Debuggin

video link
CIT-245 MON
5-OCT-2020
8 1

Session recording

video link

Tree Algorithms

Peer project sharing

Mid-term grades & benchmarking

For Monday, build three trees like Eric's Nuclea reactors, randomly choosing a root node and record how many visits in your tree are required to find a pre-selected random node.

Attempt to diagram out a in-order walk of one of your trees, using the recursive algorithm in the Corman text posted in Resources of our tree module

Take a photo of your work, and upload to one-drive.

CIT-245 WED
7-OCT-2020
2

Session Recording

CIT-245 MON
12-OCT-2020
9 1

Tree traversals in C++

Monday's Seession Recording

video link

Topics in video: Creating a TreeNode class; Building a tree and linking nodes manually; Encoding the in-order traversal algorithm

Modules

  1. Encode a tree node in C++
  2. Manually build a tree, node by node

For wed, 14 Oct, Please have your custom tree encoded in at least 10 nodes--manually building each node and making the links from parent to child and child to parent

Conduct an in-order walk of your tree and demonstrate that it works

Try coding up a function which can take in a root of a tree and a node to insert, and it will carry out the locating and linking of the new node.

For Monday, 19-OCT: If you haven't gotten traversal to work, iron that out. Make a good-faith effort at insertion function, but if you get stuck, that's fine.

We'll plan on Wrapping up Tree traverse, insert, and delete for Wed 21-OCT, or Mon 26-OCT

CIT-245 WED
14-OCT-2020
2
CIT-245 MON
19-OCT-2020
10 1

Insert & delete algos continued

19-OCT Session recording

video link

21-OCT Session recording

video link

Insert/delete continued

Install MinGW

Install Eclipse IDE

Push code from repl to your github

Document code in Markdown

Binary search tree code due Monday 26 October

Arrive at a fully-baked project, regardless of its level of complexity. Include well-commented code, output screen shots, and a profile written in a readme.md markdown file on git.

CIT-245 WED
21-OCT-2020
2

Building a project profile in git

CIT-245 MON
26-OCT-2020
11 1

Decision trees conceptual overview and modeling.

Monday's Session Recording

video link

Wednesday's Session Recording

video link
passcode: %t3chnology%

Install git on your local machine

Create a remote repository in github.com

Once your account is setup, create a new repository named something like cit245_Loretta

Decision tree reading

Please read through chapter 3, section 3 for Wednesday in the emailed PDF part 1

  • 11.L.1:
  • 11.L.2:
CIT-245 WED
28-OCT-2020
2

Encoding a decision tree in C++

CIT-245 MON
2-NOV-2020
12 1

Problem definition and notation

Session Recording: Monday

video link

Session Recording: Wednesday

video link
passcode: %t3chnology%

Describe a simple problem using set notation

Encode a problem definition from a sample scenario

Create a set of state diagrams in a search tree representing the possible ways of solving the Interstellar problem using Vacuum world as a guide and your reading's description of problem definitions.

CIT-245 WED
4-NOV-2020
2
CIT-245 MON
9-NOV-2020
13 1

Depth-first and breadth-first algorithms

Session Recording: Monday

video link

Session Recording:Wednesday

video link
passcode: %t3chnology%

We worked through a socrative quiz together and dove into depth-first and breadth-first algorithm traversal

Make an attempt at coding the guts of our expand_node function which takes in a state and returns a set of child nodes containing information about which actions would lead to that node. Build other infrastructure as needed in our SearchTools class.

CIT-245 WED
11-NOV-2020
2
CIT-245 MON
16-NOV-2020
14 1

Session Recording: Monday

video link

Session Recording: Wednesday

video link
passcode: %t3chnology%

Search Tree Algos continued

Implementation of search tree algorithm

CIT-245 WED
18-NOV-2020
2
CIT-245 MON
23-NOV-2020
- - TURKEY DAY BREAK - NO CLASS ENTIRE WEEK
CIT-245 WED
25-NOV-2020
-
CIT-245 MON
30-NOV-2020
15 1

Culminating Project: Coding

FA20: Session Recording-Monday

video link

FA20: Session Recording-Wednesday

video link

We'll form breakout rooms by project choice and Eric will pop into project groups to offer assistance as needed.

Pointers

Review of key pointer concepts from Stroustrup 17.3

For Wednesday: Dedicate an hour or so to reviewing pointer fundamentals and consider their use in your project. See Stroustrup Section 17.3: Memory, Addresses, and pointers

CIT-245 WED
2-DEC-2020
2
CIT-245 MON
7-DEC-2020
16 1

Culminating Project: Debugging

CIT-245 WED
9-DEC-2020
2 "FINAL EXAM" Session
Please bring a fully-baked final project ready to share on your repl!