Take Them Seriously
Authority cannot be demanded or mandated; it must be earned. Frankly, I think you can and must earn it. You obviously take your job seriously, because you took the time to think carefully about these students, their disruptive behavior, take notes, and solicit advice. That's great! When a student challenges you in class, you should buy yourself time by saying: "That's a great point. I'm going to take a note and we will discuss that later." Then write down their objection and move on. Within the next day or so, bring up the objection in class, and delay the rest of your content to do so, so that the rest of the class can see that 1) you are taking all the students seriously, and 2) frivolous or unfounded interruptions cost the entire class.
Since you mentioned these are mainly CS students, I will provide responses tailored for that community.
- Argues against the notion of doing problems on homework that are not exactly identical to the problems in class
We're going to do a mock interview. You three have worked at Twitter for the last 5 years as back-end server engineers. I am the hiring manager at Google where you are looking for your next career transition.
Bobby, tell me a bit about the work you've done at Twitter.
Let him BS an answer for a few seconds to warm them up and build up their confidence. Nod and smile and give small affirmations ("Very good! Impressive!").
Ok, now why do you think you would be a good fit for Google?
More rambling BS...
Ok, that's all well and good, but based on your performance in MATH-243, I am led to believe that you only work on projects that are identical to work you've already done. You are aware that Google does not have any micro-blogging products, are you not? You see, we need engineers to design and build things that have never been done before. There are no examples for them to look at and study. They need to apply the principles they learned elsewhere, and generalize them to completely new areas. Which part of your MATH-243 history demonstrates this skill?
- Refuses to acknowledge differences in if-then statements in natural language versus propositional logic, even when those differences are explicitly addressed in one-on-one conversation (e.g. argues against the professor's statement that "if 3>5 then 3>4" is a true proposition in class and in office hours, and will argue that the instructor does not know anything rather than concede that they could be wrong.)
This one is actually very easy to address. You just need to learn to speak in their language. Ask them this:
Let's try a different proposition:
if rocket_launchers > rifles then rocket_launchers > pistols
Is this proposition true or false?
Any self-respecting gamer will instantly see that this is a trap. Because the natural-language version is true for some games, false for others, and both true and false for yet other games, depending on the map, the team, the enemies, etc. And they know that their friends in the same class will vehemently object to any possible answer they give with embarrassing counter-examples.
But let's not debate this amongst ourselves. Let's ask a computer to decide!
let a = 3
let b = 5
let c = b - 1
if a > b then a > c
Is this proposition true or false?
This instantly teleports the problem directly into the center of their world, and challenges them with an idea that they should have already encountered if they have taken any CS classes at all yet.
- Insists that the model proofs provided by the instructor contain superfluous information, which is in fact necessary to include at their level.
The basic theme here is that you have a core of students with logic bugs in their programming. Unfortunately, you have to put on your hacker hat and debug their wetware. This means coming up with a similar proof which fails without the "superfluous information". That can be quite challenging, but if demonstrated clearly and effectively in class, should also be a real eye-opener for everyone. And I guarantee you it would earn you a tremendous amount of authority, as well. It isn't easy to come up with these on the fly, so don't. Make sure you are well-prepared with whatever background research you need to do before responding to these challenges.
Most importantly, whenever possible, get the students themselves to lead the class down the path of the answer until they get stuck. They and the class should ideally "discover" the bug on their own. Try to avoid saying: "That doesn't work" and replace it with: "What happens if?" "What about this?" Whatever statements you want to put in the students heads will work best if the students themselves say it out loud and believe they are the originators of the statement. Try to work out the "failure modes" of the flawed proofs beforehand so you can readily point them out in class.
- Calls inductive proofs "circular" in complete confidence, not realizing that they do not understand induction.
What is a "circular proof"?
Well, it's a thing where you assume the thing you are trying to prove!
Ok, let's try one out. Everyone come to the front and draw a number from this bowl. Now one of you will be the Prover, and another will be an Oracle. The rest will be the numbers. Now line up, in positions decided by the Oracle. Ok, the Prover will stand over here with his back to the rest of the class.
My theorem is this: the list is in ascending order from left to right iff, for every student, the student to their left has a smaller number.
Now, Prover, you may ask the Oracle to interrogate any student and the one to their left to see which is larger. When you are done, you should announce whether the list is in ascending order or not.
This is not really an "inductive proof" in the conventional sense, but has the same elements as one, and should help programmer types visualize what is actually happening in the abstract mathematical space. The special condition where a student does not have a partner to their left is obviously the base case, and you should leave it to the class to discover it.
The Oracle can decide whether to put the students in order or not, and you should do both ways without announcing it to the Prover.
After the Prover announces their results, you can challenge them: "But you just assumed that to begin with, right? All the rest of the work was unnecessary, because this is circular, right?"
- Makes negative comments about how nothing in the class makes sense during weekly group work, derailing their groups.
This is more difficult, but indicates that some students may require tutoring. Ideally, your dept. has volunteer or paid tutors available to assist. If other students are succeeding in the class, you can simply point out that their sentiment is clearly not universal, but you would like to help them catch up, and here are some tutoring resources we can look at.