Preheat oven to 400 degrees F.
Cut each sprout in half and remove any outer leaves that are dirty. In a large bowl, toss the sprouts in the olive oil until lightly coated and then spread in a single layer in a baking dish.
Roast sprouts in preheated oven for 30-40 minutes, flipping once half way through cooking time, until golden brown. About five minutes before sprouts have finished cooking, prepare cheese sauce.
In medium sauce pan over medium high heat, melt butter. Add shallot and cook for 3-4 minutes until fragrant. Add garlic and cook another minute until golden brown. Sprinkle flour over mixture, stir well, and allow to cook for a few minutes to develop a roux.
Add milk and whisk mixture constantly while heating. Allow mixture to heat and thicken. As soon as it does, remove from heat and stir in half of the cheese.
Transfer sprouts to a 9 inch square baking dish and cover with cheese sauce. Top with remaining cheese and return to oven until cheese has fully melted, about 5 minutes. Add additional salt and pepper, if desired. Serve hot.