<div dir="ltr">First of all,<div>Thank you all who spent your time reading and suggesting about this subject.</div><div>First, some clarifications. When I wrote "modern" my comparison was againts console applications. Even those students who won't do a line of code except in my class realize that console applications are not what they have been using since they approached to a computer.</div><div><br></div><div>Introducing GUI is an efford to make the module more attractive to the students (the droupout rate is high). The module is taught as a basic science. All my students will be civil, environmental or bio engineers but not computer engineers. So I have two modules (Introduction to programming and advanced programming) to give them an idea of what programming is.</div><div><br></div><div>My main focus now is "introduction to programming". It is a four-months course and given your advice, I will split the course in two months parts.</div><div><br></div><div>First part will be all console applications where I will introduce the basics of pascal:</div><div><ul><li>structure of a pascal program</li><li>variable declarations (integers, doubles, strings...)</li><li>read, readln, write, writeln</li><li>operations (+. -, *, /)</li><li>if, case, while, for, repeat/until</li><li>procedures and functions</li><li>algorithms like getting prime numbers, fibonacci series, etc</li></ul><div>The second part will introduce:</div></div><div><ul><li>GUI environment. Dropping components on a form and arrange them. Changing properties.</li><li>Event oriented programming</li><li>simple and multidimensional arrays</li><li>¿files?</li></ul><div>I will use some specific components to help the transition for example:</div></div><div>var</div><div>  a, b, c: integer</div><div>begin</div><div>  ...bla..bla...</div><div>c=a+b;</div><div>end;</div><div><br></div><div>In GUI a, b, and c will be spinedits with a "value" integer property so I can write:</div><div><br></div><div>spineditc.value := spinedita.value+spineditb.value;</div><div><br></div><div>instead of </div><div><br></div><div>editc.Text := IntToStr(StrToInt(Edita.Text)+StrToInt(Editb.Text));</div><div><br></div><div>Comboboxes and list control will be used in case statements with the "ItemIndex" property</div><div><br></div><div>Memo.Lines and arrays will be given at the same time... </div><div>etc...</div><div><br></div><div>What do you think?</div><div><br></div><div><br></div><div>Regards</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-10-13 7:02 GMT-03:00 Graeme Geldenhuys via Lazarus <span dir="ltr"><<a href="mailto:lazarus@lists.lazarus-ide.org" target="_blank">lazarus@lists.lazarus-ide.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 2016-10-13 10:04, Michael Schnell via Lazarus wrote:<br>
> IMHO it's a shame, but new<br>
> projects in Pascal seem to be declining,<br>
<br>
</span>That's got nothing to do with the Object Pascal being modern or not (I<br>
think it is modern enough). The decline is about marketing and<br>
popularity contests, and management decisions (how easy is it to replace<br>
a Object Pascal developers vs a Java developer).<br>
<br>
Delphi being sold every other year doesn't help with the stability of<br>
Object Pascal in the marketplace either.<br>
<br>
Regards,<br>
  Graeme<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
______________________________<wbr>_________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus-ide.org">Lazarus@lists.lazarus-ide.org</a><br>
<a href="http://lists.lazarus-ide.org/listinfo/lazarus" rel="noreferrer" target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus</a><br>
</div></div></blockquote></div><br></div>