Giter VIP home page Giter VIP logo

cse12_redesign's Introduction

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!

cse12_redesign's People

Contributors

nate-browne avatar texify[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

cse12_redesign's Issues

C++ --> Rust?

It could be worth to switch to using Rust instead of C++ (or at least adding Rust alongside C++) just to encourage the use of memory safe/type safe languages. Can start by converting the PAs first and moving to the lecture notes second.

idea for final PA

Let students choose what data structure they want to use to solve a problem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.