Question: I've got an assignment to make some kind of alarm. When user presses the push button, 1kHz sound should be generated and outputted on some kind of speaker (I'll use buzzer). 

That part I know how to make. I can use NE 555 to make astable to generate 1kHz output. But other part of the assignment is the problem. Is says that duty cycle should change from 50% to 0% while user is holding the push button ... I don't even have an idea what to try ...

EDIT: Duty cycle should decay from 50% to 0%.

Answer: 
Personally I'd use a small microcontroller.

Something like an ATTiny, or a PIC10F for example. Both incredibly cheap, and pretty much no external components needed other than some resistors, a button and a piezo transducer.
Have you considered multiple 555 timers? The first setting the variable duty cycle as an input to the 1khz generator?