Q:

Basic bottom up algorithm homework

So here is the problem my professor gave me:
Develop a bottom-up algorithm to teach someone how to send a flattering e-mail to your professor. 
This is the example based on cooking that he gave us to base it off of:

Chef.Mix(eggs, flour, sugar, milk, mixing bowl)
Chef.Preheat(oven)
Chef.insert(batter, oven)
Oven.bake(batter)
Chef.remove(batter, oven)

This is what I got, any problems or did I mess up by adding the "path" I guess you can call it at the end of each step. 

Sender.Press(PcPowerButton)
Sender.Open(Browser,PC)
Sender.LogOn(EmailClient,Browser,PC)
Sender.Click(ComposeButton,EmailClient,Browser,Pc)
Sender.Click(AddressBox,EmailClient,Browser,PC)
Sender.Type(RecieverAddress,AddressBox,EmailClient,Browser,Pc)
Sender.Click(SubjectBox,EmailClient,Browser,PC)
Sender.Type(FlatteringText,SubjectBox,EmailClient,Browser,PC)
Sender.Click(SendButton,EmailClient,Browser,PC)

thank you so much for the help :)
This is what I've changed it to thus far

Sender.Press(PcPowerButton)
Sender.Open(Browser,PC)
Sender.LogOn(EmailClient,Internet)
Sender.Click(ComposeButton,EmailClient,Internet)
Sender.Click(AddressBox,NewMessage)
Sender.Type(RecieverAddress,AddressBox,NewMessage)
Sender.Click(SubjectBox,NewMessage)
Sender.Type(FlatteringText,SubjectBox,NewMessage)
Sender.Click(SendButton,NewMessage)

A:

A few of points.

Note that the example does not include steps like "Oven.TurnOn()" and "Oven.SetTemprature()". Instead it just says "Oven.Preheat()" and later "Oven.Bake(batter)". So, this is a matter of abstraction. The programming primitive can be low level, or a high level one. A high level primitive encapsulates larger behavior / functionality. You could presumably invent and use higher level primitives.
You seem to be using the object oriented paradigm. The primitives / methods should belong to the appropriate object.

So, conceivably, you could have the following primitives.

PC.PowerOn()
OS.Login(SenderUserID, SenderPassword)
OS.Start(Browser)
Browser.Navigate(EmailWebsiteURL)
EmailWebsite.Login(SenderUserID, SenderPassword)
EmailWebsite.Compose(ProfessorEmail, FlatteringSubject, FlatteringBody)
EmailWebsite.Send()

You could also try to program the process of discovering something flattering about the professor, if you want to make it interesting.

FlatteringAttributes = Professor.SelectAttributes(Flattering)
EmailBody = Sender.Write(Theme, FlatteringAttributes)

