Why Computer Science Inventions Need Patents