One way you can improve your aim and reaction time is by using cs bots. I would recommend a deathmatch server over this technique most of the time, but using bots can help in a few unique ways over deathmatch servers. First, most deathmatch servers stay on de_dust2 all the time. With bots, you can improve your aim, reaction time, and map knowledge for other maps besides de_dust2. A second advantage to this techinique is that it allows you do play more realistic situations. Most death matches will spawn you in odd places and not allow you to use smoke grenades or flash grenades. By using bots, you can practice taking choke points, holding choke points, using flashes, using smokes, and more. Another advantage is that you can use bots at times when you can't find a good deathmatch server with good players in it.
I would recommend just starting your own server on your own computer and then adding a few bots to the other team only. I don't really find it that helpful to have any bots on my team. The number of bots and skill level of the bots will depend on your skill level. I would make it challenging, but don't make it so you can't get any frags.
Here are some helpful bot commands:
0 is the easiest, and 3 is the hardest
bot_join_team: any / CT / T
Add a bot to a specific team
Adds a bot to the CT team
Adds a bot to the T team
Kicks the specified bot, or all bots if no name is given
bot_chatter: (off, radio, minimal, normal)
Controls the amount of bot talking
The bots are allowed to use all weapons