I'm the family cruise editor for CruiseMates.com. We took my daughter on an Alaska cruise when she was four years old and she loved it. Make sure you bring a pair of kiddie binoculars for your son so he can stand on deck and try to spot hawks, eagles, whales, etc. My daughter got really good at identifying hawks during the cruise! Also, make sure he has good sneakers or hiking boots -- my daughter loved the short walks/hikes we took her on
In Juneau, don't miss the cable car ride to the top of Mt. Roberts tramway. We had a great time taking photos at the top as well as walking/hiking on the trails. We went in June and my daughter got such a kick out of the few mounds of snow we came across up there. (Snow ball fights in June are quite a novelty to a kid!)
Skagway has a good little Junior Ranger program in the Klondike Gold Rush Nat'l Historical Park building that my daughter enjoyed. (There are a few activities that you do on your own with your child and come back and the rangers give your little one a badge.)
In Ketchikan we took my daughter on an excursion sold through the cruise line which featured Native American dancers which she loved. In the afternoon we walked independently to the Deer Mt. Hatchery and Eagle Center which is home to a salmon hatchery and bald eagles.
I don't advise taking too many shore excursions with your four year old because they tend to be long and expensive. There's plenty to do on your own. You can either query me for additional independent shore excursion ideas or purchase the book "Cruise Vacations with Kids" (By Candyce Stapen, Prima Publishing) for ideas on what to do with a child in all the major Alaskan ports.
Luisa Frey Gaynor
Family Cruise Editor