I learned a "trick" to getting into these types of courses when I was in college. I was always polite to the department secretaries and treated them like human beings instead of people who exist only to serve me. The number of other students that failed to treat the department staff like people always shocked me. In any case, they were almost always able to just add me to classes, even when the registrar indicated they were full.
There's often the ability for professors to accept more than the limit on a case-by-case basis, at their discretion. If you approach a professor and come across as a motivated and serious student, there's a good chance you'll be able to get in. Contrary to popular belief, most professors care about undergraduate education and want to help motivated students.
I worked in the CS Dept in college and this is a big one. Everyone in the department is there to support you and is happy to help, and the chair too. It's surprising how few CS students actually take advantage of these resources.
You can also use this to get into grad classes as an undergrad even if the course scheduling system blocks you.
Signing up on a course waitlist also helps give the department more info to be able to potentially move it to a bigger room or add additional sections.