Resistive Switching Devices And Their Applications For Computing Beyond Von Neumann Architecture