The other answers advocate the use of stepper motors. They can be easy to control by just sending a certain number of pulses to the stepper controller. However, they do not guarantee that you will not attempt to overtravel the mechanism. Steppers can slip, or miss steps, if the torque is marginal. If that happens going one direction, you will likely try to overtravel in the return direction.
I don't know of any motor that is easier for a newbie to control than a brushed dc motor. To get it to rotate you just apply the proper voltage across the windings. This is easily done using a relay. Rotation in the other direction is accomplished by applying the same voltage, but opposite polarity, to the same windings.
If you needed to control the motion profile accurately then you'd need some sort of position feedback, such as an encoder. If this was the case then steppers would be more relevant. But your application does not require that. You simply need a switch to be made when the window is opened, and another switch when the window is closed. Simple.
Be careful, though. Manually opening and closing the window lets the operator stop motion if pets or fingers are in the way. By doing this automatically you need to make sure no fingers or tails will be chopped off by the motion. That is a bigger challenge unless you will always be present and watching the window when you open or close it.
In response to the question you ask in the comment ("Do they provide some feedback back to the code if, for example, something was holding the window back?"): you can monitor the current to the motor. That is proportional to the motor's torque. This signal is usually pretty noisy, though, so you would likely need to low-pass filter it either using a capacitor, or in your software.