Skip to content

nate-browne/CSE12_Redesign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c0bf08d · Oct 4, 2024
Oct 4, 2024
Jun 18, 2020
Nov 17, 2020
Apr 22, 2019
Dec 27, 2019
Apr 20, 2019
Dec 27, 2019
Jul 7, 2019
Apr 19, 2019
Jun 7, 2022
Apr 20, 2019
Apr 20, 2019
Dec 27, 2019
Dec 24, 2019
Apr 29, 2019
Apr 20, 2019
Jan 14, 2020

Repository files navigation

Nate's CSE 12 Redesign

A New Approach to a Basic Data Structures Course

Introduction

I'm not a professor, but if I ever was teaching a Basic Data Structures course, this would be it. It's designed as an alternative to UCSD's current CSE 12.

Since it is designed with UCSD in mind, it is written to work in a 10 week quarter system. It could pretty easily be adapted to work in a semester based system though; just space stuff out more.

This class will be intense. It moves quickly, and has lots of difficult PAs. Hopefully, with a good tutor squad, this course would still be doable by students but they'll have to put work in to excel.

Dicussion sections could be used to give extra aid on the PAs, since this class does not have written assignments.

All are able to modify this and adapt it as you see fit (open source FTW), just give me credit please and thanks.

Required Materials

  1. Either clang++ or g++
  2. valgrind/GDB (for Linux) and leaks/LLDB (for macOS)

There are Makefiles that are written to work natively with both macOS and with Linux distributions, so either of those should be used. Windows is not supported by this project.

To be explicit, clang++ and leaks are part of macOS already (providing you have Xcode tools, which if you've tried compiling anything you already have). MacOS actually aliases g++ to clang++, so you don't even have to type anything different. On Linux, you'll have to install g++, gdb, and valgrind.

For the sake of clarity, I'll now put links to all of the tools (except leaks):

For those new to LLDB who have used GDB, this mapping of commands will probably be of use to you.

To be able to use leaks properly for macOS, you'll need to run the following commands:

cd /usr/local/lib
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/lib/libLeaksAtExit.dylib

Without running these first, you'll run into an error with linking.

The code does not assume IDE support, so something like CLion is not recommended. I personally would stick to either:

The best option, in my opinion, is vscode due to its plugin support. All you'll need is an appropriate C/C++ plugin like this one and you're set.

Contact

Send me an email at npcompletenate [at] protonmail [dot] com if you have any suggestions/fixes/other stuff like that. You can also create an issue!