A binary code C ⊆ F2n with minimum distance at least d and codewords of Hamming weight w is called an (n,d,w) constant weight code. The maximum size of an (n,d,w) constant weight code is denoted by A(n,d,w), and codes of this size are said to be optimal. In a computer-aided approach, optimal (n,d,w) constant weight codes are here classified up to equivalence for d=4, n ≤ 12; d=6, n ≤ 14; d=8, n ≤ 17; d=10, n ≤ 20 (with one exception); d=12, n ≤ 23; d=14, n ≤ 26; d=16, n ≤ 28; and d=18, n ≤ 28. Moreover, several new upper bounds on A(n,d,w) are obtained, leading among other things to the exact values A(12,4,5)=80, A(15,6,7)=69, A(18,8,7)=33, A(19,8,7)=52, A(19,8,8)=78, and A(20,8,8)=130 . Since A(15,6,6)=70, this gives the first known example of parameters for which A(n,d,w-1) > A(n,d,w) with w ≤ n/2. A scheme based on double counting is developed for validating the classification results.