C++ and Data Structures (CS162/163)

Canvas

GitHub

C++ and Data Structures Syllabus

Assignments (From multiple years; I've added and removed them over the years.)

The first semester of this class we will learn about the C++ programming language. We will use Cygwin (a Unix emulator) and a text editor (I will demonstrate emacs) to create the code, compile it, and run it. (UPDATE: OnlineGDB is a reasonable web editor, if you are working on a Chromebook.)

The second semester we will learn about various Data Structures which allow data to be better organized, more easily accessible, and generally make your code cleaner. This is one of the fundamental classes necessary in Computer Science.

C++ Visualizer

Video Tutorials

Cygwin, Unix, and Emacs Videos

Introduction to C++ Videos

CStrings and Arrays

Functions

Value, Reference, and Pointers

Structs

Pointers

Basic Classes and Vectors

Inheritance

Linked Lists and Recursion

GNU Debugger (GDB)

Infix Translator

Binary Search Tree

List Efficiency and Trees

Red-Black Tree

Priority Queue and Checkout Simulation

Graph Creator

Hash Table

PSU Class Pages

PSU Home Page (Karla Fant, CS162)

CS162 Lecture Notes

CS162 Videos

CS163 Lecture Notes

CS163 Videos

Classes lecture and materials

Resources for Git and bash

Over the Wire: Bandit (Help with bash commands)

Git - Hello World

Learn Git (Game for learning git structure)

Git for Beginners

Codecademy - Git Module

Online Resources

Unix Tutorial

emacs Commands

C++ Stack and Heap Visualizer

C++ Reference

The New Boston C++ Tutorials

Cygwin home page

Memory allocation in C++

Memory Leak

Red-Black Tree Resources

Red-Black Wikipedia

Description of Red-Black Trees

Red-Black Visualizer

Red-Black resource for insertion

Red-Black resource for deletion

Red-Black Tree description

Cygwin Packages:

Devel:

gcc-core

gcc-g++

gdb

make

Editors:

emacs

vim

Char arrays and pointers

Header Guards

Infix Help

http://en.wikipedia.org/wiki/Shunting-yard_algorithm

http://en.wikipedia.org/wiki/Polish_notation

YouTube on Linked Lists

Programming Contest