Preheat oven to 350° if you are baking the pasta.
Break the broccoli florets into very small pieces, no bigger than 3/4 inch each. Shred the blocks of cheese and set aside.
Cook the 8 ounces (half box) pasta 1 minute shy of al dente, according to package directions.
Meanwhile, in a deep skillet, melt the butter over medium-high heat. Add the broccoli florets and sauté for 4 minutes. Sprinkle the flour, ground mustard, garlic powder and salt over the broccoli and mix with the broccoli for 2 minutes.
Very slowly, start gradually adding in the cream, stirring continuously. Continue doing this until all of the cream is incorporated. Then start stirring in the milk very gradually until it is all incorporated in the broccoli cream sauce. (Only use 1 1/2 cups milk if you aren't baking the pasta with breadcrumbs.)
Add the ham to the cream sauce and slowly start mixing in the grated cheddar and gouda cheese, until you have a silky smooth cheese sauce.
When the pasta is done cooking, immediately drain it and drizzle with olive oil. Mix the pasta with the olive oil so it is well coated. Fold the pasta into the cheese sauce until everything is well combined.
At this point you can serve the mac and cheese as a saucy pasta topped with Parmesan, or you can continue with baking the pasta with breadcrumbs.
OPTIONAL - Pour the mac and cheese into a 9x13 sprayed baking dish. Sprinkle the top with the shredded Parmesan.
Add 2 tablespoons butter to a small bowl and cook in the microwave for 30-60 seconds until melted. Stir the breadcrumbs into the butter until they are well coated. Sprinkle the buttered breadcrumbs over the top of the mac and cheese in the casserole. Bake at 350° for 30 minutes.