Hi S H,
This behavior actually began with my son last year, whe he was 5/6. In his case, though, he is such a sensitive kid, that he was feeling like he was doing everything "WRONG". In order for him to try not to cry about feeling wrong, he would respond with "I don't care", and "No" and things like you're saying. It was hard for me to figure out the best way to handle it without TEARS all of the time, and his feelings of failure. Your boy is 3 1/2, and I believe this behavior comes with the age anyway.
First, I tried giving "a look" then walking away......but he thought I didn't hear him....so he would find me and say it again :O) Testing me, of course...
Then, I tried a really firm voice, which is something I had stopped using because I felt like I was always yelling at my boys. That brought straight tears and would bring on the words, "See, I know I'm such a bad boy".....
So finally, I said in my calmest voice...."Please find different words to talk to me, or else I'll need to remove 3 tickets from your jar...." He tested me at first, because he didn't think I would remove the tickets. But, I seriously walked over to his ticket jar, grabbed 3 tickets, and told him to find nicer words to talk to me or I was taking the tickets. He grabbed me and hugged me, and cried saying he was "sorry"....so now, I just need to remind him to talk nice, or he will lose a reward.
My son is getting ready to turn 7, and it's finally tapering off. He just had a real maturity "growth", so I'm thinking that's why. He suddenly does homework without struggle, is helpful with others and is not as "sensitive" about feeling wrong all of the time...what do ya' know...a grown up kid :O)
Anyway, at almost 4, I'm certain that he's probably just testing you to see your limits.....like all kids do :o)
As far as "stupid" and "shut up" go....those words have not been allowed in my house EVER! Even I (try) not to say them. My 12 yr old just found out that "stupid" is not really a cuss word! HOWEVER, these words are said all of the time by those around them. I had to say, "Some Mommy's let their kids say those words, but I don't. You can really hurt someone's feelings and that's not the kind of boy you are"....I had to explain it quite a bit, and give mild examples of somemone telling him he was stupid....he got what I was saying then.
As far as the "potty mouth"....NORMAL. Just like clockwork those potty words are so funny each and every time! Anyway, I use the term "potty mouth" and ask for none of it. Or remind him by saying, "OK, no more potty mouth".
Yeah, I remember 3 1/2 being a funny boy age. Much more personality comes through. It can be really fun, though :O)
I hope something from my experiences can help guide you with your situation. Have a nice day!
~N. :O)