In a heavy bottomed saucepan over medium-high heat, mix together 3 cups of half and half and 1 cup of sugar. Cook just until the sugar dissolves stirring constantly. Add the chocolate chips. Stir until melted.
Whisk in the cocoa powder. Lower the heat and continue to cook for 2-3 minutes until the cocoa powder is fully incorporated.
In a separate bowl, whisk egg yolks. Slowly add ¼ cup of the hot half and half mixture to the egg yolks to temper Stir well.
Slowly pour the tempered eggs, into the chocolate, whisking constantly over medium heat.
Dissolve 3 tablespoons of cornstarch in 3 tablespoons of cold half and half. Drizzle into the chocolate it should immediately begin to thicken.
Continue to simmer over low heat for 5-7 minutes or until it reaches your desired thickness, whisking constantly.
Remove from the heat and add 2 tablespoons of butter, ½ teaspoon of pure vanilla extract and a pinch of salt.
Test the texture of the pudding. If the eggs or cornstarch caused any lumps use a spatula to press the pudding through a mesh strainer into a clean bowl to remove the lumps..
The pudding can be served immediately warm.
If making in advance, press plastic wrap directly onto the surface to prevent a film from forming on top. Place into the refrigerator to chill.
To serve, divide evenly into serving dishes. Dollop with sweetened whipped cream and garnish with fresh berries, if desired.
The process of tempering allows you to gently warm the egg yolks prior to adding them to the hot liquid; preventing them from becoming scrambled and making the pudding stringy.