So I'm going to take part in a competition to make a line following robot. I am not allowed to use arduinos so I am doing AVR programming. I have this ATmega16a with me and I think it contains a bootloader called Blips? but I'm not completely sure.

What I want to know is, can I overwrite the bootloader that is already present in this thing with optiboot? I am using my Arduino UNO R3 as an ISP. Also, Is the optiboot compatible with a 40 pin ATmega16A?

Or can I just ignore the bootloader and upload files into the ATmega16A using my Arduino as an ISP?

You can write some sophisticated complex programs on the Arduino, using C++. Forcing you to write in hex is a bit crazy, IMHO, because no-one writes like that these days. It's not a useful skill to acquire. Assembler, perhaps.

It would be like having a writing competition, but make you tap out the essay with a pencil taped to your nose. It's adding a ridiculous extra level of complexity that doesn't prove anything.

Please post technical questions on the forum, not by personal message. Thanks!

You can write some sophisticated complex programs on the Arduino, using C++. Forcing you to write in hex is a bit crazy, IMHO, because no-one writes like that these days. It's not a useful skill to acquire. Assembler, perhaps.

It would be like having a writing competition, but make you tap out the essay with a pencil taped to your nose. It's adding a ridiculous extra level of complexity that doesn't prove anything.

Also, after reading your comment, I think I may have given the wrong impression. I am programming AVRs using C code written in WinAVR. I'm not allowed to use arduino code in the sense that I am not allowed to use functions like digitalWrite() and delay() which are intended to make coding on the arduino easier.