Re: [Lazarus] Teaching Pascal at College
On 2017-01-17 20:01, wkitty42--- via Lazarus wrote: > sometimes too much is too much ;) +1 :) Regards, Graeme -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, January 17, 2017 2:22 am, Graeme Geldenhuys via Lazarus wrote: > On 2017-01-16 20:18, Lars via Lazarus wrote: > >> GUI's require wrappers. >> > > No they don't. > Sane GUI programming requires wrappers... Insane programmers will program a GUI without a wrapper... ;-) > >> Delphi 5 as an example, is a wrapper around the win32api >> > > Yes, Delphi's VCL is a wrapper around the common Win32 widgets. LCL is a > wrapper around Win32, Qt, Cocoa, Carbon and even fpGUI. But not all GUI > toolkits are designed like than. > > For example, fpGUI is not a wrapper around any existing widgets on any > platform. fpGUI implements its own widgets (gui controls) from scratch and > talks directly to the underlying libraries (XLib & GDI) to notify the > system about the top-level window and receiving OS events. fpGUI is, in every way possible, a wrapper. It wrapps low level x11/win32 calls into a usable frameworks called fpGUI Object orientation is often a wrapper around system calls, fpGUI is object oriented and makes low level calls so someone can use fpGUI as a wrapper around these obnoxious insane low level calls that no one wants to use directly. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 17.01.2017 10:22, Graeme Geldenhuys via Lazarus wrote: Yes, Delphi's VCL is a wrapper around the common Win32 widgets. LCL is a wrapper around Win32, Qt, Cocoa, Carbon and even fpGUI. And for ease of use as well Delphi as Lazarus come with an IDE that is a combination of source code editor, debugger, compiler controller and *GUI Designer*. Making the use of a simple GUI extremely easy (introducing and suggesting the (dreaded) RAD paradigm. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 16.01.2017 21:24, Lars via Lazarus wrote: Except when you find a bug in the lcl, and have to dig in to it.. I don't suppose Lazrus is so bad that it can't be used for the simple programs the students will start with when learning programming :-):-):-). -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Mon, January 16, 2017 3:19 am, Michael Schnell via Lazarus wrote: > On 15.01.2017 15:30, Martin Vahi via Lazarus wrote: > >> have came to a conclusion that GUI-s are inherently something that >> require "dynamic programming" or the code gets really bloated. >> >> > The nice thing about Lazarus "RAD" paradigm is that this is completely > hidden (in the library) from application programmer. So (s)he only needs to > write the code that is obviously useful for the task at hand. Except when you find a bug in the lcl, and have to dig in to it.. In theory one could never look into the lcl or underlying api's in practice, sometimes there is an issue to be resolved... like when I fired up the macOS laptop and found that moving the mouse crashed the app, and Dmitry helped me figure out why ;-) Had too look into the macOS related lcl code -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Sunday 15 January 2017 15:30:44 Martin Vahi via Lazarus wrote: > > I haven't used Lazarus yet, I need to learn it, > but during the development of my own > JavaScript GUI library I have came to a conclusion > that GUI-s are inherently something that require > "dynamic programming" or the code gets really bloated. > That's the reason why systems like Lazarus, fpGUI and MSEide+MSEgui have been invented. ;-) You really should try them. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 15.01.2017 15:30, Martin Vahi via Lazarus wrote: have came to a conclusion that GUI-s are inherently something that require "dynamic programming" or the code gets really bloated. The nice thing about Lazarus "RAD" paradigm is that this is completely hidden (in the library) from application programmer. So (s)he only needs to write the code that is obviously useful for the task at hand. So adding a GUI for the single purpose of debugging / visualizing the application code makes a lot of sense. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Sun, Jan 15, 2017 at 5:52 PM, Martin Vahi via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > Sorry for sending my previous letter about > teaching Pascal to the mailing list. > The letter was meant to be sent directly to > the Adrian De Armas, not the mailing list. > My mistake. > -- > ___ > Please do not worry , because your message was a very useful contribution to the thread . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Sorry for sending my previous letter about teaching Pascal to the mailing list. The letter was meant to be sent directly to the Adrian De Armas, not the mailing list. My mistake. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 10/27/2016 11:15 AM, Paul Breneman via Lazarus wrote: On 10/25/2016 11:23 AM, Travis Ayres via Lazarus wrote: So...who wants to work on a modern course outline with me? We have a lot of opinions and people willing to chime in, maybe we can do something good for the community? Some suggestions: 1) As the OP wrote (in a later message) "All my students will be civil, environmental or bio engineers but not computer engineers", I would recommend checking out SoftwareCarpentry.org (see links on home page www.ControlPascal.com ) which has been teaching basic programming to non-programmer engineers since 1998. They've already done a *lot* of work that doesn't need to be repeated! But a pascal version would be nice. 2) I just purchased the least expensive PicoScope which I hope to combine with the Basic Stamp kit (see top of this page): http://www.controlpascal.com/tutorial.htm Instant gratification (blinking LEDs, switches to push) has worked for me and others. One of my favorite college courses (in about 1981) combined programming and electronics, and after that I decided to jump into embedded programming (previously I did electronic work). Regards, Paul I just added a link (to a recent magazine article on using a scope to "see" Arduino timing) to the top of this page: http://controlpascal.com/tutorial.htm Just trying to help increase embedded and hobby electronic use of Free Pascal! :) -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 10/25/2016 11:23 AM, Travis Ayres via Lazarus wrote: So...who wants to work on a modern course outline with me? We have a lot of opinions and people willing to chime in, maybe we can do something good for the community? Some suggestions: 1) As the OP wrote (in a later message) "All my students will be civil, environmental or bio engineers but not computer engineers", I would recommend checking out SoftwareCarpentry.org (see links on home page www.ControlPascal.com ) which has been teaching basic programming to non-programmer engineers since 1998. They've already done a *lot* of work that doesn't need to be repeated! But a pascal version would be nice. 2) I just purchased the least expensive PicoScope which I hope to combine with the Basic Stamp kit (see top of this page): http://www.controlpascal.com/tutorial.htm Instant gratification (blinking LEDs, switches to push) has worked for me and others. One of my favorite college courses (in about 1981) combined programming and electronics, and after that I decided to jump into embedded programming (previously I did electronic work). Regards, Paul -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, Oct 25, 2016 at 9:23 AM, Travis Ayres via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > So...who wants to work on a modern course outline with me? We have a lot > of opinions and people willing to chime in, maybe we can do something good > for the community? > > On Oct 25, 2016 4:03 AM, "Michael Schnell via Lazarus" < > lazarus@lists.lazarus-ide.org> wrote: > >> >> >> On 24.10.2016 18:11, Travis Ayres via Lazarus wrote: >> >>> >>> With over 100 replies, we could have already written a course outline, >>> introduction, ... >>> >>> It seems we have lost (or silenced) the OP long since :-( >> >> -Michael >> >> My opinion is that writing a course outline is not an abstract process . It will be delivered in a Department : Goals of Department with its web site Class of Students as Year ( First . ... , Fourth ) Curriculum of Department : Where the course(s) will be embedded Goals of the Course(s) : What is the purpose of course : What will gain the students from the course ? Upward services to other courses : Names of such courses Prerequisite Courses : If any Background courses : Previous courses which can be used as supporting the course Text books selected for course(s) ; How many course(s) with weekly number of class hours are selected Course class schedule ( Two courses , etc. ) will determine load level of classes Possible Goals will serve to determine course Names and contents ( examples , problems , etc. ) . "Pascal" itself may require an independent course "Lazarus" itself may require an independent course "Event driven" programming ( with Petri Nets ) itself may require an independent course "Pascal" may be an independent course as a "First" computer programming course or a "Second" . There may be a previously taken "Computer Programming Algorithms" ( as Introduction ) course or students may need such a course independent from a programming language . All of these affect a course sequence contents . This means that to be able to design a course outline which will serve to your needs , it is necessary to supply the above information ( at least ) without forgetting the instructor factor . Thank you very much . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
So...who wants to work on a modern course outline with me? We have a lot of opinions and people willing to chime in, maybe we can do something good for the community? On Oct 25, 2016 4:03 AM, "Michael Schnell via Lazarus" < lazarus@lists.lazarus-ide.org> wrote: > > > On 24.10.2016 18:11, Travis Ayres via Lazarus wrote: > >> >> With over 100 replies, we could have already written a course outline, >> introduction, ... >> >> It seems we have lost (or silenced) the OP long since :-( > > -Michael > > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus-ide.org > http://lists.lazarus-ide.org/listinfo/lazarus > -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 24.10.2016 18:11, Travis Ayres via Lazarus wrote: With over 100 replies, we could have already written a course outline, introduction, ... It seems we have lost (or silenced) the OP long since :-( -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Mon, Oct 24, 2016 at 11:41 PM, Martin Schreiber via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On Monday 24 October 2016 19:53:21 Mehmet Erol Sanliturk via Lazarus wrote: > > > > > > My opinion is that event based programming needs special care . > > A simulation example may be useful , for example , by using PetriSim > > sources , adapted to Free Pascal . > Please here add the following sentence : Then a Petri Net definition may be represented by Lazarus forms easily . I am not ignoring other works such as fpGUI , mseIDE-mseGUI , but we are talking about mostly Lazarus . > > > The last chapter of "Programmieren macht Spass!" is a lift simulation: > http://mseide-msegui.sourceforge.net/pics/aufzug.mpeg > > Martin > -- > ___ > It is difficult to play *.mpeg files in Linux ( there is no default player ) . If you have a converter to format which can be played with default players of Linux ( for example , Dragon Player ) , it would be a very good contribution . Simulation subjects may be selected easily for the Department related subjects where Lazarus is taught . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Monday 24 October 2016 19:53:21 Mehmet Erol Sanliturk via Lazarus wrote: > > > My opinion is that event based programming needs special care . > A simulation example may be useful , for example , by using PetriSim > sources , adapted to Free Pascal . > The last chapter of "Programmieren macht Spass!" is a lift simulation: http://mseide-msegui.sourceforge.net/pics/aufzug.mpeg Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Mon, Oct 24, 2016 at 1:00 PM, wkitty42--- via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 10/24/2016 01:53 PM, Mehmet Erol Sanliturk via Lazarus wrote: > >> I have the book : >> >> https://www.amazon.com/Lazarus-Complete-Guide-pascal-teachin >> g/dp/9490968021 >> ( Lazarus The complete Guide ) >> > > i've been looking for that book off and on since i heard about it... > amazon currently shows it as unavailable and does not show a price for it > :( :( :( > > -- > NOTE: No off-list assistance is given without prior approval. >*Please keep mailing list traffic on the list* unless >private contact is specifically requested and granted. > -- > ___ > > > I am sorry that I have forgot to write the following sentence : "Please search the phrase Lazarus The complete Guide in Google ." I have obtained my book through a friend in Turkey who ordered it from publisher of the above book or a book seller in Europe , I do not know which one , but for a possible link , please see : http://www.pascalgamedevelopment.com/content.php?229-Lazarus-The-Complete-Guide-is-Finally-Here http://www.blaisepascal.eu/index.php?actie=./subscribers/subscription_mainpageUKPaypalPage2 http://www.blaisepascal.eu/subscribers/UK/UK_Book_Department.html http://www.cul.de/lazarus2.html I do not know the availability of the book at present , but , a name is good to start . Sometimes , I am ordering a used book when a new one is not available . In University libraries , it is very likely that the above book may be found . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 10/24/2016 01:53 PM, Mehmet Erol Sanliturk via Lazarus wrote: I have the book : https://www.amazon.com/Lazarus-Complete-Guide-pascal-teaching/dp/9490968021 ( Lazarus The complete Guide ) i've been looking for that book off and on since i heard about it... amazon currently shows it as unavailable and does not show a price for it :( :( :( -- NOTE: No off-list assistance is given without prior approval. *Please keep mailing list traffic on the list* unless private contact is specifically requested and granted. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
The part I'm most interested in is using Lazarus to full effect with good architecture; I don't think the GUI portion would make a good first (or even second) course in computers/computing. I would like to see a "Software Architecture" course that used Delphi/FreePascal/Lazarus On Mon, Oct 24, 2016 at 3:51 AM, Jürgen Hestermann via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > Am 2016-10-24 um 12:20 schrieb Michael Schnell via Lazarus: > > On 21.10.2016 11:09, Jürgen Hestermann via Lazarus wrote: > >> What is the use of a program? Entertainment? > > Nowadays in 90% of the usage exactly this. > > Maybe other usage cases are more "important", but still the money is > made with Entertainment. > > There may be a misunderstanding: > I did not ask whether the *purpose* of a program is entertainment > but whether *programming* it has to be entertainment? > The aim of programming should be to get a program running > (as the programmer wants it) not to spend time with > juggling gaudy pictures, icons and videos. > > In the end, it is somehow "entertaining" if a program works > but this requires knowledge about how the programming language works. > Ignoring all facts will never lead to a satisfying programming experience. > > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus-ide.org > http://lists.lazarus-ide.org/listinfo/lazarus > -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Mon, Oct 24, 2016 at 9:11 AM, Travis Ayres via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > With over 100 replies, we could have already written a course outline, > introduction, and some notes about events and RAD programming, maybe also > the observer pattern? > > On Oct 24, 2016 3:51 AM, "Jürgen Hestermann via Lazarus" < > lazarus@lists.lazarus-ide.org> wrote: > > Am 2016-10-24 um 12:20 schrieb Michael Schnell via Lazarus: > > On 21.10.2016 11:09, Jürgen Hestermann via Lazarus wrote: > >> What is the use of a program? Entertainment? > > Nowadays in 90% of the usage exactly this. > > Maybe other usage cases are more "important", but still the money is > made with Entertainment. > > There may be a misunderstanding: > I did not ask whether the *purpose* of a program is entertainment > but whether *programming* it has to be entertainment? > The aim of programming should be to get a program running > (as the programmer wants it) not to spend time with > juggling gaudy pictures, icons and videos. > > In the end, it is somehow "entertaining" if a program works > but this requires knowledge about how the programming language works. > Ignoring all facts will never lead to a satisfying programming experience. > > > I have the book : https://www.amazon.com/Lazarus-Complete-Guide-pascal-teaching/dp/9490968021 ( Lazarus The complete Guide ) You can write a course outline about , for example , "Programming Pascal by using Lazarus" from thr above book . For Free Pascal , unfortunately , I do not have a teaching oriented book . For general Pascal programming , the following book may be useful : https://www.amazon.com/Structured-Programming-Pascal-Winston-Crawley/dp/0138540357/ref=sr_1_1?s=books=UTF8=1477331132=1-1=0138540357 ( Structured Programming Using Pascal ) For event based programming , the following pages and links in them may be useful : ( Please see my messages from starting the following link : http://lists.lazarus-ide.org/pipermail/lazarus/2016-October/229807.html ) in page http://lists.lazarus-ide.org/pipermail/lazarus/2016-October/author.html especially : http://lists.lazarus-ide.org/pipermail/lazarus/2016-October/229976.html My opinion is that event based programming needs special care . A simulation example may be useful , for example , by using PetriSim sources , adapted to Free Pascal . Thank you very much . -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
With over 100 replies, we could have already written a course outline, introduction, and some notes about events and RAD programming, maybe also the observer pattern? On Oct 24, 2016 3:51 AM, "Jürgen Hestermann via Lazarus" < lazarus@lists.lazarus-ide.org> wrote: Am 2016-10-24 um 12:20 schrieb Michael Schnell via Lazarus: > On 21.10.2016 11:09, Jürgen Hestermann via Lazarus wrote: >> What is the use of a program? Entertainment? > Nowadays in 90% of the usage exactly this. > Maybe other usage cases are more "important", but still the money is made with Entertainment. There may be a misunderstanding: I did not ask whether the *purpose* of a program is entertainment but whether *programming* it has to be entertainment? The aim of programming should be to get a program running (as the programmer wants it) not to spend time with juggling gaudy pictures, icons and videos. In the end, it is somehow "entertaining" if a program works but this requires knowledge about how the programming language works. Ignoring all facts will never lead to a satisfying programming experience. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-24 um 12:20 schrieb Michael Schnell via Lazarus: > On 21.10.2016 11:09, Jürgen Hestermann via Lazarus wrote: >> What is the use of a program? Entertainment? > Nowadays in 90% of the usage exactly this. > Maybe other usage cases are more "important", but still the money is made with Entertainment. There may be a misunderstanding: I did not ask whether the *purpose* of a program is entertainment but whether *programming* it has to be entertainment? The aim of programming should be to get a program running (as the programmer wants it) not to spend time with juggling gaudy pictures, icons and videos. In the end, it is somehow "entertaining" if a program works but this requires knowledge about how the programming language works. Ignoring all facts will never lead to a satisfying programming experience. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-24 um 11:57 schrieb Michael Schnell via Lazarus: > On 21.10.2016 09:51, Lars via Lazarus wrote: >> The concept of callbacks is very similar to events. > The difference is that with a callback you usually know both sides and hence how exactly it is called, > while with an event (especially when fired by the LCL on behalf of something that happens in the GUI, aka RAD) > you don't need to know exactly how and why it is fired, you just place your user code in it and are happy (at least if you are not a nerd like myself). You cannot "be happy" if you don't know exactly when an event is fired. It is of course important to know that. Otherwise you only assume something (that must not be true). The discussions about events fired by the user but not when changes are done by code showed this clearly. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 21.10.2016 10:12, Lars via Lazarus wrote: Today's bloatware applications are so large no one can understand them IMHO, you did a good job to scare everybody away from even thinking about starting to try programming. So we should just stop "Teaching Pascal at College". -Michael -- _______ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 21.10.2016 11:09, Jürgen Hestermann via Lazarus wrote: What is the use of a program? Entertainment? Nowadays in 90% of the usage exactly this. Maybe other usage cases are more "important", but still the money is made with Entertainment. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 18.10.2016 17:16, Jürgen Hestermann via Lazarus wrote: Yes, therefore start with simple procedural (console) programs that let them have immediate success with all the elementary things that a program consists of (variables/types, loops, commands, etc.). Yep. Satisfying for a Nerd, but it does not get something useful done and hence frustrating for a beginning application developer. If you do it the other way round you only delay the date of frustration but you do not avoid it. That is true if (s)he one day will be confronted with large, complex, unusual or critical tasks. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 21.10.2016 14:05, Martin Schreiber via Lazarus wrote: Win32 API works with message queues. Happily, the application programmer does not need to know about that, as the LCL completely hides the underlying complexity. He sees the same type of "GUI"-events, independent of running on Winx (OS-introduced message queues) or Linux (Event Queues implemented by the LCL itself) (The reality is even more complex). -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 21.10.2016 09:51, Lars via Lazarus wrote: The concept of callbacks is very similar to events. The difference is that with a callback you usually know both sides and hence how exactly it is called, while with an event (especially when fired by the LCL on behalf of something that happens in the GUI, aka RAD) you don't need to know exactly how and why it is fired, you just place your user code in it and are happy (at least if you are not a nerd like myself). -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, Oct 21, 2016 at 12:51 AM, Lars via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On Mon, October 17, 2016 7:32 pm, Mehmet Erol Sanliturk wrote: > > One obvious point is that an "event" driven programming knowledge is a > > must to become a competent programmer . The problem is how this can be > > learned . Without knowing how to program an algorithm when a related > event > > is occurred , will bring any one to nothing means ( not to a success ) . > > > > An interesting question is what is an event and isn't in some way or > another all programming based on events that occur? > > The concept of callbacks is very similar to events. you make a callback > when something happens, just like an event. This can be done even in old > turbopascal programs or console mode programs.. > > I'm not so sure event driven programming is a must to become a competent > programmer, I would have to think about that. Events could (may) force a > programmer to think about programs in a certain way... when there are > alternatives? or are events the only alternative just in another form > (callbacks, or calling procedures). It begs the question about whether > events are just procedures being called, which is the same as any > programming methodology since all programs "call procedures". > > Is a compiler event driven? A competent programmer could write a compiler, > or a parser. Are they necessary to have event driven architectures? > > i.e. is the fpc compiler event driven, even if not officially event driven > someone ended up reinventing events in it? From what I understand Michael > V. C.'s documentation tool is event driven which differs from the fpc > compiler. However I beg the question: is all programming event driven in > some way since events are just "calls to procedures". Of course that is > simplifying it, but "what is an event?" would be a good computing science > article to write. If I had any time.. > -- > ___ > Please see the following pages : https://en.wikipedia.org/wiki/Event-driven_programming ( Event-driven programming ) https://en.wikipedia.org/wiki/Imperative_programming ( Imperative programming ) https://en.wikipedia.org/wiki/Category:Events_(computing) ( Category:Events (computing) ) https://en.wikipedia.org/wiki/Category:Programming_paradigms ( Category:Programming paradigms ) You can find plenty of information in the above pages and in their linked pages . Lazarus IDE : An example of event driven programming FPC : An example of imperative programming Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Friday 21 October 2016 13:26:13 Lars via Lazarus wrote: > On Fri, October 21, 2016 2:11 am, Martin Schreiber via Lazarus wrote: > > On Friday 21 October 2016 09:51:38 Lars via Lazarus wrote: > >> I'm not so sure event driven programming is a must to become a > >> competent programmer, I would have to think about that. > > > > "Event driven" probably means that there is an event queue with a central > > toolkit-main-eventloop which dispatches the events instead a program > > specific flow control. > > What about a pure win32 API app written in C. Do you essentially reinvent > your own event system using callbacks with program flow control? Or the > win32 api has an event system in its api itself? Win32 API works with message queues. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, October 21, 2016 2:11 am, Martin Schreiber via Lazarus wrote: > On Friday 21 October 2016 09:51:38 Lars via Lazarus wrote: > >> >> I'm not so sure event driven programming is a must to become a >> competent programmer, I would have to think about that. > > "Event driven" probably means that there is an event queue with a central > toolkit-main-eventloop which dispatches the events instead a program > specific flow control. > What about a pure win32 API app written in C. Do you essentially reinvent your own event system using callbacks with program flow control? Or the win32 api has an event system in its api itself? Been a while since I did some win32 api programming.. I'm just wondering if pretty much every system out there has some kind of rolled your own event system of some kind. The other common item that pops up everywhere is some kind of messaging system to notify objects, which I guess is what Smalltalk takes credit for. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, 21 Oct 2016 03:41:49 -0600 Lars via Lazaruswrote: >[...] > The word engineer is so overloaded, that I hate it, with my guts. > > What is an engineer? A guy "who makes stuff".. which pretty much describes > every single profession. This is going off-topic. Please stick to the topic. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-21 um 11:28 schrieb Lars via Lazarus: > Hmmm.. I'm not so sure learning about the internals of the CPU is so good. > IMO that is computer science, whereas programming is computing science. > I was interested in how computers physically worked, before I became a > programmer. One of the worst things a programmer can do is think in CPU > cycles because it's a low level detail that has nothing to do with the > program as a mathematical construct. I am talking about the general construction of a computer: That a CPU exists with registers to store data which runs your program and that it has some rudimentary built in commands (a rough overview of them is useful) and that a stack and a heap exits to store data. That's almost enough. I am not talking about knowing how many CPU cycles a certain command takes. But a programmer should know to what his program boils down to in the end. Otherwise he would not know what limits exist and how to avoid exceeding them. > For example in mathematics when you write equations on paper do you ever > think about how the electronic calculator works, to process these numbers, > when you punch the math into your calculator? The last thing a mathematics > student knows about, is the internal architechture of the Casio calculator > he is using, because he's more focused on the maths... which IMO is good. That is a bad comparison. In a calculator you have no choice how to "program" equations. You just type them and get a result. But even here you need to know how the calculator works as you may have polish notation or the calculator may obey point before line calculation or not. If you do not know these details you cannot use the calculator effiently. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, October 14, 2016 4:42 am, Mehmet Erol Sanliturk via Lazarus wrote: > On Fri, Oct 14, 2016 at 1:18 AM, Michael Schnell via Lazarus < > lazarus@lists.lazarus-ide.org> wrote: > >> On 13.10.2016 10:20, Graeme Geldenhuys via Lazarus wrote: >> >> >>> +1 >>> That would be the best solution. GUI programming is based on >>> fundamentals than need to be understood first. >>> >> >> -1 !! >> >> >> The OP explained that his main purpose is to introduce more fun in the >> education. That can be done by plunging into programming directly with >> GUI >> development. >> >> This is why RAD had been invented. >> >> >> Of course there are decent drawbacks regarding relying too much on RAD >> and about not really understanding the fundamentals behind it. >> >> But in the end the addressees are non-computer engineers. >> >> >> -Michael >> -- >> ___ >> >> > > > As an engineer , they need to write programs for doing computations not > available in ready-made packages . Therefore , they need to a sufficient > knowledge to write programs . This can be achieved in a good balance of > learning programming itself and GUI application . > > The word engineer is so overloaded, that I hate it, with my guts. What is an engineer? A guy "who makes stuff".. which pretty much describes every single profession. Do software engineers have to buy an APPEGA subscription? are they registered as professional engineers and have to have a degree to prove it? I think the word engineer should be kept for the oil and gas industry, IMO, where buffoons engineer solutions to rape oil out of the ground. I prefer the term programmer... I made the mistake of thinking of myself as a software engineer at one time, but I'm wondering... since engineering requires a membership with an organization like APEGA, are software engineers misusing the engineer term? Now, if you mean "engineer" as in someone who really does hold an APEGA subscription and is using programming languages to control oil and gas industry PLC's (logic controllers) then I can understand using engineer as a title. Honestly, I just hate the word engineer... as to me an engineer is a vague, meaningless term. It essentially means "guy who makes solutions to problems" or "Guy who makes things"... But since engineers have to have an APEGA subscription to be a valid engineer, why are programmers using the term? It's leaked into the industry and profession, which was a big mistake imo. I just prefer the term programmer. Not hacker. Not engineer. I'm a programmer. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, October 18, 2016 9:16 am, Jürgen Hestermann via Lazarus wrote: > Am 2016-10-18 um 16:47 schrieb Michael Schnell via Lazarus: > >> If you start with complex stuff that does not yield immediate success >> (i.e. a working program that does something that might be useful) The >> students will loose interest and run away, unless they are nerds like >> ourselves. > > Yes, therefore start with simple procedural (console) > programs that let them have immediate success with all the elementary > things that a program consists of (variables/types, loops, commands, > etc.). If that is understood you can switch to GUI applications. > > > If you do it the other way round you only delay the date > of frustration but you do not avoid it. > There are two sides to this story, I'm afraid. I'm a fan of the console program teaching method myself but the issue is: console mode programs are irrelevant and useless. Today, MS DOS doesn't exist any more. Even when ms dos existed, console mode programs were boring, and only complete geeks would be interested in creating console mode programs. We're talking about people who have no social lives who create text mode games here... If I was introduced to ComponentPascal (oberon) or delphi as a person learning programming, where there were actual widgets you could create, it just might convince me that programming is of some use. Console mode programs are utterly useless to a newcomer. Wow you created a console mode program that prints and asks questions... Joy Joy! I think that's why I never got interested in Basic, for ms dos... It was on my machine but I just couldn't see how it was of any use. Now on the other hand if Delphi was on a windows 3.1 machine I may have even been interested, as you could just see a person being drawn into wiz bang widgetsets.. that do something useful, unlike a boring console mode program. Saying that, I still am a fan of console mode program teaching as it teaches you about variables, setting values, incrementing, etc. Today, programmers learn to program in PHP because HTML is the widgetset. Often a first programming language a person learns is PHP these days, IMO. And that's sad, as it creates bad habits galore. All because HTML today is literally "the widget set" being used for programming. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, October 18, 2016 7:23 am, Jürgen Hestermann via Lazarus wrote: > Am 2016-10-18 um 12:53 schrieb Mehmet Erol Sanliturk via Lazarus: > >> Order of teaching is not so critical : As you say , write a GUI program >> for events : Say : "Now it is necessary to define what will be done for >> the events ? ... Its way is the following : Write your program parts in >> that way ..." > > IMO the order is extremly important! > If you start with the fundamental informations > (how does the processor work in general, > how are variables stored (stack/heap/etc.), what does the processor do in > loops, etc.) then this information is remembered very well because > everybody can imagine what goes on in general. You can *predict* what will > (should) happen in your program. > Hmmm.. I'm not so sure learning about the internals of the CPU is so good. IMO that is computer science, whereas programming is computing science. I was interested in how computers physically worked, before I became a programmer. One of the worst things a programmer can do is think in CPU cycles because it's a low level detail that has nothing to do with the program as a mathematical construct. For example in mathematics when you write equations on paper do you ever think about how the electronic calculator works, to process these numbers, when you punch the math into your calculator? The last thing a mathematics student knows about, is the internal architechture of the Casio calculator he is using, because he's more focused on the maths... which IMO is good. To now know anything, and be completely ignorant, of the casio calculator and how it processes your equations and additions and subtractions, is a very good thing. On the other hand, someone interested in physics, and computer science (not computing science) will benefit greatly from learning how the cpu works, memory, etc. Every time they said they were offering "computer science" courses, as a child I always wondered... is that how the capacitors, resistors, and cpu chips work? I never once could possibly grasp how programming a computer had anything to do with the computer itself. As programming can be done on paper and never touch a computer, and still be a a program that is understandable even if it doesn't run on any physical system. I've been very skeptical of any programmer who immediately converts his program to assembly instructions. I can see how it is useful for debugging, and creating a compiler on hardware, but it completely ruins the abstract program concept. It's equivalent of someone writing a beautiful mathematics paper, and then converting it to his casio calculator instruction set. A mathematician would never do such a thing as he couldn't care less about the internals of his casio calculator. So I don't understand why so many programmers are obsessed with low level details. I guess I just find abstract la la land a better place to be in, where there is even a potential for a program to be proven correct and never debugged. > > If you just start with clicking you do not know *why* it works > (if it works) nor do you know *why* it does not work (if it does not do > so). They would always need someone at hand with exprience to tell them > how to continue. This can be very frustrating for studends. > > Therefore I would always present at least a rough overview about > procedural programming before starting with objects and events. In the > end, the latter is still processed in a procedural manner which every > programmer should know. > > >> My application was like the following ( as a very simple example ) : >> Pose a problem "Display your name ." >> After this is done : >> "Display your name 10 times ." >> The students were not able to write their programs . Then , solution was >> "You should use a loop ." >> "A loop is defined in the following ways : ... " >> Such an approach is used frequently in Mathematics text books : >> Subject text . >> Problems .. >> Last problems were "Unsolvable" with the above text . >> Solution : >> "Read the next chapter ..." >> Such approaches are "the Art of Teaching" ... >> > > IMO this "approach" has a severe drawback: > The students do not get an overall picture of what > *can* be done and *how* it can be done. > If they do not know about loops how should they > know that they exist? They would need to read *everything* that is > available and hope to find something helpful. That is very frustrating and > can lead to suboptimal solutions because they get tired of reading yet > another chapter and instead use something else (like copying the code in > the editor 10 times). > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus-ide.org > http://lists.lazarus-ide.org/listinfo/lazarus > > -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-21 um 10:08 schrieb Lars via Lazarus: > Sometimes knowing the internals and details can be a disadvantage because > instead of thinking about the abstract program you are thinking about cpu > cycles, bit popping, bit twiddling, low level API calls. How do you think about "the abstract program" if you have no knowledge about the program language? How can you program without knowing what a variable or a while statement is? Programming is the mapping of an abstract problem into a programming language. But if you do not know how the programming language works, how can you then write programs? > Also, Edsgar Dijkstra was also very much against knowing too many details > about the CPU or computer hardware, as he though computing was math, not > engineering of computers. And how do you do math without knowledge about variables and loops? -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-21 um 09:20 schrieb Lars via Lazarus: > The issue with console mode programs is students see utterly no use for them. Why should they not? A computer is a information processing machine and GUI is not necessary to process information, it's just a cosmetic thing. The interaction of a program with the user can be done in text mode too. Algorithms have nothing to do with GUI or text mode. If students just want to paint graphics and make a game of every program then they will never be real programmers. Not every program must be a game with visual effects. > GUI apps are of much more use to people as they are flashy and rich with > widgets, whereas console mode programs seem utterly boring. What is the use of a program? Entertainment? -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, October 18, 2016 4:42 am, Mehmet Erol Sanliturk via Lazarus wrote: > One unfortunate situation is that there is not much Pascal software for > Petri Nets processing , except the following ( which its license is very > ambiguous means not usable ) Hopefully in these situations, you can find a C dll and then just write a wrapper, in Pascal, to link the the DLL code. Any petri related DLL's that you could bind to? Just because the petri code is written in another language, doesn't mean you can then use fpc to link to it and write layers around it? I have no idea of dll's available for petri.. sorry, just offering this idea. In fact 99 percent of programming today is using other people's code that is stored away in dll's. The entire operating system is a bunch of dll's and likely your typical lazarus application only uses 1-10 percent pascal code and 90 percent DLL code in C. > > > Petri Nets are a vast subject now . There are some Petri Nets processing > software but their licenses being copy left are not friendly for > commercial environment . > Ahh, the age old license war which I've been a part of and why I prefer MIT/bsd code... > > Actually , it is not compulsory to use Pascal , but Pascal will supply > the Pascal programming language learners a very good example , Again you could also use a combination here: c dll's linked in. If that works. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Mon, October 17, 2016 3:07 am, Graeme Geldenhuys via Lazarus wrote: > On 2016-10-17 09:52, Michael Schnell via Lazarus wrote: > >> - do I need know how/why the GUI builder creates the code that makes a >> Button visible on a Form and my Event handler be called when a button >> is pressed ? > > Yes > > > (I.e. do I need to be able to write the code myself > >> without the help of the GUI builder ?) > > Yes > > > >> - do I need to know how the startup code works that make the Form >> visible on the screen ? > > Yes > > >> - do I need to know how the Event-Queue and the checksynchronize() >> system works ? > > If you are using queues and Synchronise, then Yes. > > > >> - do I need to know what system, calls the pascal program performs ? >> > > No > > > > The rest of your questions were just flame bait so don't deserve an > answer. > > > If you don't know any of the above, how do you expect to do any > debugging? Yes, debugging is a major part of being a programmer. I can chime in on this flame here. Although debugging is a major part of a lot of programmers life, it SHOULD NOT be. We should be developing applications knowing the entire source code of the application in our minds, without just knowing little tiny bits of the system and "Winging it". Today's bloatware applications are so large no one can understand them which is what attracts me to systems like Oberon by Nik. Wirth, and OpenBSD, and other small systems that are simple enough you can understand them in a month of reading about them (the basics). Also Plan9 from bell labs... and small programming languages, like oberon, are very interesting because they go against today's trends of bloatware like Firefox (as much as I love firefox) and Lisp, or Emacs. The idea that programmers spend much of their efforts debugging, is a bug, not a feature. Debugging itself, is a bug in a programmers life, that should be fixed. I love a small program that I rarely debug that's been running on a server for years without being touched. I dislike so much apps that need "maintenance". -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Mon, October 17, 2016 2:52 am, Michael Schnell via Lazarus wrote: > On 14.10.2016 16:10, Jürgen Hestermann via Lazarus wrote: > >> >> In most cases they never get to the step "find out how it works". >> If it works, nobody wants to invest time anymore to look under the hood. >> So they always operate on the surface and repeat the same >> subobtimal programming over and over again because they don't know how to >> do it better. >> > That is absolutely correct. > > > But the point where the "knowing how it works" is just a matter of > deliberate choice (or the professor, the student or the situation you get > in and need to crawl deeper into the complexity of the matter.- > > > - do I need know how/why the GUI builder creates the code that makes a > Button visible on a Form and my Event handler be called when a button > is pressed ? (I.e. do I need to be able to write the code myself without > the help of the GUI builder ?) > Sometimes knowing the internals and details can be a disadvantage because instead of thinking about the abstract program you are thinking about cpu cycles, bit popping, bit twiddling, low level API calls. Sometimes it's nice to live in La La land of an abstract layer over top so you can focus on the program construct, instead of low level implementation details. I for one, do not like doing pure Win Api calls, even though that can be so much fun for an intellectual exercise. The first time I really realized this was when I downloaded the Sysinternals tools (procmon, taskmon, regmon) now which no longer exist as sysinternals tools and were purchased by microsoft. I was absolutely fascinated that Mark R. and friend, wrote those tools in pure winapi... I was beautiful code. But I was also disappointed that they would waste their time on such low level code when a lot of it could have been easily abstracted with a tool like Delphi, with just some winapi calls directly, and most of the stuff automated with gui widgets already in a vcl. They didn't use c++ and did it in pure c, AFAIR. It was beautiful code, but then I asked my self.. why? why would you waste your time doing pure api calls? Just as intellectual exercize? Sometimes it's nice to live in a fairy land (abstract) over top of all the low level details. Also, Edsgar Dijkstra was also very much against knowing too many details about the CPU or computer hardware, as he though computing was math, not engineering of computers. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-18 um 16:47 schrieb Michael Schnell via Lazarus: > If you start with complex stuff that does not yield immediate success (i.e. a working program that does something that might be useful) The students will loose interest and run away, unless they are nerds like ourselves. Yes, therefore start with simple procedural (console) programs that let them have immediate success with all the elementary things that a program consists of (variables/types, loops, commands, etc.). If that is understood you can switch to GUI applications. If you do it the other way round you only delay the date of frustration but you do not avoid it. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, Oct 18, 2016 at 6:23 AM, Jürgen Hestermann via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > Am 2016-10-18 um 12:53 schrieb Mehmet Erol Sanliturk via Lazarus: > > Order of teaching is not so critical : As you say , write a GUI program > for events : Say : "Now it is necessary to define what will be done for the > events ? ... Its way is the following : Write your program parts in that > way ..." > > IMO the order is extremly important! > If you start with the fundamental informations > (how does the processor work in general, > how are variables stored (stack/heap/etc.), > what does the processor do in loops, etc.) > then this information is remembered very well > because everybody can imagine what goes on in general. > You can *predict* what will (should) happen in your program. > > If you just start with clicking you do not know *why* it works > (if it works) nor do you know *why* it does not work (if it does not do > so). > They would always need someone at hand with exprience to tell them how > to continue. This can be very frustrating for studends. > > Therefore I would always present at least a rough overview about procedural > programming before starting with objects and events. In the end, the latter > is still processed in a procedural manner which every programmer should > know. > > > > My application was like the following ( as a very simple example ) : > > Pose a problem "Display your name ." > > After this is done : > > "Display your name 10 times ." > > The students were not able to write their programs . Then , solution was > > "You should use a loop ." > > "A loop is defined in the following ways : ... " > > Such an approach is used frequently in Mathematics text books : > > Subject text . > > Problems .. > > Last problems were "Unsolvable" with the above text . > > Solution : > > "Read the next chapter ..." > > Such approaches are "the Art of Teaching" ... > > IMO this "approach" has a severe drawback: > The students do not get an overall picture of what > *can* be done and *how* it can be done. > If they do not know about loops how should they > know that they exist? They would need to read *everything* > that is available and hope to find something helpful. > That is very frustrating and can lead to suboptimal solutions > because they get tired of reading yet another chapter and > instead use something else (like copying the code in the editor 10 times). > > -- > ___ > I have said that "the Art of Teaching" ... Assume that a course is designed by a department , and you are the instructor . For example : Course X : Programming using Lazarus Course outline is the Lazarus components . What can you do ? "I am resigning because this course is not well designed ." or "I am changing the course outline as I want ." ( which you do not have authority to do that ) . or "Lazarus is this ... The following parts are necessary to learn to use when you click ... ( here you will teach what is required which yo described above ... ) " Please select an appropriate one . If you are the designer of the courses you are right what to do . Problem arises when you are not course designer but an instructor of it . Then you need to use "the Art of Teaching" with your "the Science of Teaching" . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Am 2016-10-18 um 12:53 schrieb Mehmet Erol Sanliturk via Lazarus: > Order of teaching is not so critical : As you say , write a GUI program for events : Say : "Now it is necessary to define what will be done for the events ? ... Its way is the following : Write your program parts in that way ..." IMO the order is extremly important! If you start with the fundamental informations (how does the processor work in general, how are variables stored (stack/heap/etc.), what does the processor do in loops, etc.) then this information is remembered very well because everybody can imagine what goes on in general. You can *predict* what will (should) happen in your program. If you just start with clicking you do not know *why* it works (if it works) nor do you know *why* it does not work (if it does not do so). They would always need someone at hand with exprience to tell them how to continue. This can be very frustrating for studends. Therefore I would always present at least a rough overview about procedural programming before starting with objects and events. In the end, the latter is still processed in a procedural manner which every programmer should know. > My application was like the following ( as a very simple example ) : > Pose a problem "Display your name ." > After this is done : > "Display your name 10 times ." > The students were not able to write their programs . Then , solution was > "You should use a loop ." > "A loop is defined in the following ways : ... " > Such an approach is used frequently in Mathematics text books : > Subject text . > Problems .. > Last problems were "Unsolvable" with the above text . > Solution : > "Read the next chapter ..." > Such approaches are "the Art of Teaching" ... IMO this "approach" has a severe drawback: The students do not get an overall picture of what *can* be done and *how* it can be done. If they do not know about loops how should they know that they exist? They would need to read *everything* that is available and hope to find something helpful. That is very frustrating and can lead to suboptimal solutions because they get tired of reading yet another chapter and instead use something else (like copying the code in the editor 10 times). -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Tue, Oct 18, 2016 at 1:11 AM, Michael Schnell via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 17.10.2016 21:05, Lars via Lazarus wrote: > >> The big issue with teaching using a RAD tool, is welding the program logic >> into the onclick events, instead of decoupling the logic in separate >> procedures that can be reused elsewhere. >> > As you point out in the text this is as well a pro (easy fast solving of > small unitary tasks) as a con (bad reusability, bad code when doing big > projects). > > But as Learning of course starts with doing small unitary tasks RAD > obviously is a great help to fight the FUD and prejudice the students might > have regarding programming. > > Of course it's great to dedicate a (later) lesson to un-RAD-ing your code > in order to be prepared for bigger tasks. > > -Michael > > -- > ___ > Order of teaching is not so critical : As you say , write a GUI program for events : Say : "Now it is necessary to define what will be done for the events ? ... Its way is the following : Write your program parts in that way ..." My application was like the following ( as a very simple example ) : Pose a problem "Display your name ." After this is done : "Display your name 10 times ." The students were not able to write their programs . Then , solution was "You should use a loop ." "A loop is defined in the following ways : ... " Such an approach is used frequently in Mathematics text books : Subject text . Problems .. Last problems were "Unsolvable" with the above text . Solution : "Read the next chapter ..." . Such approaches are "the Art of Teaching" ... Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 17.10.2016 21:05, Lars via Lazarus wrote: The big issue with teaching using a RAD tool, is welding the program logic into the onclick events, instead of decoupling the logic in separate procedures that can be reused elsewhere. As you point out in the text this is as well a pro (easy fast solving of small unitary tasks) as a con (bad reusability, bad code when doing big projects). But as Learning of course starts with doing small unitary tasks RAD obviously is a great help to fight the FUD and prejudice the students might have regarding programming. Of course it's great to dedicate a (later) lesson to un-RAD-ing your code in order to be prepared for bigger tasks. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
I'm all for this effort, and hope it leads to new and modern tutorials, books or notes that would be useful for others that use FreePascal/Lazarus to convey graphical system interactions. If there's any need to proofread such materials, I'll gladly help out! On Oct 17, 2016 6:32 PM, "Mehmet Erol Sanliturk via Lazarus" < lazarus@lists.lazarus-ide.org> wrote: On Mon, Oct 17, 2016 at 12:05 PM, Lars via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > > On 14/10/16 08:30, Michael Schnell via Lazarus wrote: > > > > > > Of course there are decent drawbacks regarding relying too much on RAD > > and about not really understanding the fundamentals behind it. But in the > > end the addressees are non-computer engineers. > > The big issue with teaching using a RAD tool, is welding the program logic > into the onclick events, instead of decoupling the logic in separate > procedures that can be reused elsewhere. RAD tools are superior at > prototyping... I can't believe how awesome they are at that. They are > inferior, however, when it comes to bad habits being brought on. With > this warning, RAD tools can still be very useful for writing solid > programs, as long as one knows this warning ahead of time. > > When I first learned delphi I made the mistake of putting code in the > onClick events and similar, and then when you expand your app later you > realize all that code is welded in place and cannot be reused outside of > the events. > > Of course decoupling the logic from the GUI leads to more layers of code. > > - > How I got rid of my bad habits when I first learned delphi: I started > writing console apps with no object oriented programming, no events, and > learned that not everything is a click event in computer programming. > > - My opinion is that the above ideas are really very good to be applied during teaching : First , teach language on , let's say , "atomic" problems . Then , use these "atomic" concepts in further problems either embedded in a GUI or console program . One obvious point is that an "event" driven programming knowledge is a must to become a competent programmer . The problem is how this can be learned . Without knowing how to program an algorithm when a related event is occurred , will bring any one to nothing means ( not to a success ) . - > People late in the game (learned programming when GUI's were available) > and have no experience with console mode apps will earn some bad habits > because of the GUI oriented programming. Those with experience in other > areas of programming such as old Dos programs, web programs (basically > like a dos or unix console program) will learn different ways of > organizing code without everything being tied to a GUI event driven code. > > I suppose even doing a plain Win32 API app with no delphi code (pure win > api) would help someone learn how to organize code from a second opinion > view, without being forced to use the event driven system you were given > by the RAD tool. > > - > Of course, also learning other programming languages helps (although, IMO > learning too many brain dead languages and hip cool ones will not help, as > much as others claim... Basic programmers from the 80's or 70's still > think in GOTO's and line numbers) > -- > - With respect to researches ( I am not able to supply links now because this view is based on old times readings , but I am sure that such research findings can be found ) , people ( mostly ) uses a "primary" language for her/his profession and a "secondary" language for some her/his works as an additional tool . This shows that during teaching , this feature should be taken into consideration : Guide the students to discover which language she/he will prefer to use in much of her/his works , and attempt to teach that language in a "best" way to be used by the students in their profession . A similar approach should also be used for a "secondary" language . If a language is taught just for fun or whatever else other than being a possible candidate for "primary" or "secondary" is likely that , if it not a necessity for the learner , is only a waste of everything is involved . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Generally speaking: Getting confronted with the limits, imposed by lack of knowledge to your work to get a task done is a great motivation for learning. Being forced by the tutor to learn stuff you don't immediately need to get the task at hand done is a great motivation to give up. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-17 09:52, Michael Schnell via Lazarus wrote: > - do I need know how/why the GUI builder creates the code that makes a > Button visible on a Form and my Event handler be called when a button > is pressed ? Yes (I.e. do I need to be able to write the code myself > without the help of the GUI builder ?) Yes > - do I need to know how the startup code works that make the Form > visible on the screen ? Yes > - do I need to know how the Event-Queue and the checksynchronize() > system works ? If you are using queues and Synchronise, then Yes. > - do I need to know what system, calls the pascal program performs ? No The rest of your questions were just flame bait so don't deserve an answer. If you don't know any of the above, how do you expect to do any debugging? Yes, debugging is a major part of being a programmer. You made the [totally wrong] comparison earlier about learning to drive a car and knowing how the engine is constructed. Well, a programmer is not the driver of the car, he/she is the engineer designing and building the car. The driver is more like the end-user using your program. So YES, a programmer needs to know how the internals of a program works and fits together, after all, it is the programmer that designs the program and puts it together (coding). Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 14.10.2016 16:10, Jürgen Hestermann via Lazarus wrote: In most cases they never get to the step "find out how it works". If it works, nobody wants to invest time anymore to look under the hood. So they always operate on the surface and repeat the same subobtimal programming over and over again because they don't know how to do it better. That is absolutely correct. But the point where the "knowing how it works" is just a matter of deliberate choice (or the professor, the student or the situation you get in and need to crawl deeper into the complexity of the matter.- - do I need know how/why the GUI builder creates the code that makes a Button visible on a Form and my Event handler be called when a button is pressed ? (I.e. do I need to be able to write the code myself without the help of the GUI builder ?) - do I need to know how the startup code works that make the Form visible on the screen ? - do I need to know how the Event-Queue and the checksynchronize() system works ? - do I need to know what system, calls the pascal program performs ? - do I need to know what ASM code is generated from a pascal instruction ? - do I need to know how semaphores are done by atomic instructions ? - do I need to tell the difference between CISC and RISC ? - do I need to know what microcode the CPU runs ? - do I need to know how a transistor works ? - do I need to know how dotating silicone is done ? In most cases it's better to first concentrate on the task at hand and dig deeper if necessary. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 14-Oct-16 17:16, Reimar Grabowski via Lazarus wrote: On Fri, 14 Oct 2016 16:24:04 +0100 Lukasz Sokol via Lazaruswrote: D'oh, really. D'oh, really? (fixed that for you) Answer: No (well actually the part about matlab I meant serious) Ah Matlab. Happy TU days. Calculating 2D FFT of a picture or trying to implement discrete audio filters with just a couple of lines of code ;) Transformation of bitmaps through 2D FFT, applying bandpass filters and rev-2D-FFT ;) Reminder to myself: The interwebz dozn't get sarcazm The interwebz dozn't get sarcazm The interwebz dozn't get sarcazm if you want sarcasm, go xkcd (386) ;) R. el es -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, 14 Oct 2016 16:24:04 +0100 Lukasz Sokol via Lazaruswrote: > D'oh, really. > D'oh, really? (fixed that for you) Answer: No (well actually the part about matlab I meant serious) Reminder to myself: The interwebz dozn't get sarcazm The interwebz dozn't get sarcazm The interwebz dozn't get sarcazm R. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Friday 14 October 2016 13:08:13 Mehmet Erol Sanliturk via Lazarus wrote: > > In previous years > > https://sourceforge.net/projects/mseide-msegui/ > > was limited to Linux . MSEide+MSEgui runs on Windows and Linux from start at 1999. Since several years it runs on FreeBSD too. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Friday 14 October 2016 10:50:28 Michael Schnell via Lazarus wrote: > > With a more careful design it's absolutely possible to do "non RAD" > programs by doing "GUI units" and "business code Units" that interact > via Objects with functions, properties and events (callback-properties) . > Separating GUI and program logic is also possible with RAD. See for example MSEkicadBOM, the application I am currently working on. https://gitlab.com/mseide-msegui/mseuniverse/tree/master/tools/kicad/bom It is a component and footprint database program for KiCad. It consists of a datamodule with the program logic and the database and action components: http://mseide-msegui.sourceforge.net/pics/kicadbommainmo.png a mainform with the mainmenu, GUI actions and the main datagrid: http://mseide-msegui.sourceforge.net/pics/kicadbommainfo.png and several editforms: http://mseide-msegui.sourceforge.net/pics/kicadbomcomponented.png The editforms inherit from a common base editform with base functionality (datasource, navigator, timestamp display, window close logic...) and have no or GUI-code only. The connection GUI<>datamodule is made with TDataSource, action- and ifi-dataendpoint-components. If done right the RAD-approach is productive and convenient, the projects are easily extendable and maintainable. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-14 12:08, Mehmet Erol Sanliturk wrote: > program can not be compiled as a Lazarus program or an fpGUI program as it > is like compiling the same program by Delphi ( with required compiler > directives ) . It is necessary either use Lazarus or fpGUI programming . I am yet to see that in reality! [excluding all but he most basic "Hello World" programs] I've never come across a real-world Delphi project that can simply be opened in Lazarus IDE and compiles 100% correctly first time. As proof of that, it would also explain why Lazarus IDE includes the "Tools -> Delphi conversion" set of menu items, which does a one-way conversion (thus you can't go back to Delphi). Saying that, yes it is partly possible to have a single project that is compilable in both Delphi and Lazarus, but it requires significant amounts of changes and compromises. I don't see any benefit in having dual compiler and dual toolkit support in a single project. > As an example , I want to convert my program to fpGUI . If I can do it , it > may be more easy to convert it to C program. To convert it to fpGUI > program is a hard problem because it is necessary to convert all of the GUI > related parts. And you think moving to C with a totally different GUI toolkit is any easier? I seriously doubt that. I think it is pretty straight forward to convert a Lazarus project to fpGUI - I've done it many times with components and whole applications. It's not a 5 minute job, but will be significantly less effort that moving to C/C++ and using GTK, Qt or wxWidgets etc. > was limited to Linux . I do not know whether the same program can be > compiled as a Lazarus or MSEide program . GUI programs - definitely not. Lazarus LCL and MSEgui are very different toolkits. Much more so than LCL vs fpGUI. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, Oct 14, 2016 at 3:48 AM, Graeme Geldenhuys via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 2016-10-13 23:13, Erwin van den Bosch via Lazarus wrote: > > The problem is that you should separate your business logic and > > the GUI. With Delphi like RAD it's very difficult to do that. (but it is > > possible) Everything is coded in events and connected to database aware > > GUI controls. (In the case of a database application) > > Exactly why I use tiOPF for every application I write - even > non-Database applications. Also exactly why I implemented the MGM > (Model-GUI-Mediator) design pattern for use with VCL, LCL and fpGUI > Toolkit - also included in the tiOPF repository. > > All my form units are now VERY empty as all the real functionality lives > in mediators. This also makes unit testing of my code much easier. > > > > Another problem with the RAD way is that a lot is stored in forms (.lfm > > files) and it's difficult to see/notice changes to those files. > > And exactly why I designed the fpGUI Visual Forms Designer to generate > actual Object Pascal code in a AfterCreate() method, instead of using > *.lfm or *.dfm files. I now have one unit in my source code revision > system that shows all changes (no need review two files for form > changes), I can easily do a search & replace for form components and > other code, and I also don't need to fire up a visual form designer if I > just want to make one small tweak to a property. > > > Regards, > Graeme > > -- > fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal > http://fpgui.sourceforge.net/ > > My public PGP key: http://tinyurl.com/graeme-pgp > -- > ___ > I am reading/studying the fpGUI system . The problem here is that it is NOT an alternative to , let's say , Lazarus , in the sense that , the SAME program can not be compiled as a Lazarus program or an fpGUI program as it is like compiling the same program by Delphi ( with required compiler directives ) . It is necessary either use Lazarus or fpGUI programming . As an example , I want to convert my program to fpGUI . If I can do it , it may be more easy to convert it to C program . To convert it to fpGUI program is a hard problem because it is necessary to convert all of the GUI related parts ( because all of the unit names are different , I did not study their contents very much ) . In previous years https://sourceforge.net/projects/mseide-msegui/ was limited to Linux . I do not know whether the same program can be compiled as a Lazarus or MSEide program . During teaching , it is necessary to take care about such differences . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-14 12:01, Graeme Geldenhuys via Lazarus wrote: > and maybe incite them every now and again Oops, that meant to read: "...and maybe entice them..." Regards, Graeme -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-14 09:18, Michael Schnell via Lazarus wrote: > The OP explained that his main purpose is to introduce more fun in the > education. That can be done by plunging into programming directly with > GUI development. So for somebody that doesn't know anything about programming, then suddenly using a Visual Form Designer, but when they look at the code that was generated they have NO idea what is going on. The don't know what a Class is, they don't know what Inheritance is. They don't know what Event Handlers are, what Properties are, what's the difference between 'var' and 'const' parameters etc. They will be thrown into the deep end and sink. The result - if they keep their head above water - they become "programmers" like that rubbish Visual Basic generation we saw in the late 90's, early 2000's. Writing horrific code because they actually don't have a clue what they are doing. Yeah, that sounds great! [major sarcasm] Start with the fundamentals, and maybe incite them every now and again with the same example done in a GUI environment. Just enough to keep them interested and excited in programming, but you have to get those fundamentals down, otherwise they have no base to build on. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-13 23:13, Erwin van den Bosch via Lazarus wrote: > The problem is that you should separate your business logic and > the GUI. With Delphi like RAD it's very difficult to do that. (but it is > possible) Everything is coded in events and connected to database aware > GUI controls. (In the case of a database application) Exactly why I use tiOPF for every application I write - even non-Database applications. Also exactly why I implemented the MGM (Model-GUI-Mediator) design pattern for use with VCL, LCL and fpGUI Toolkit - also included in the tiOPF repository. All my form units are now VERY empty as all the real functionality lives in mediators. This also makes unit testing of my code much easier. > Another problem with the RAD way is that a lot is stored in forms (.lfm > files) and it's difficult to see/notice changes to those files. And exactly why I designed the fpGUI Visual Forms Designer to generate actual Object Pascal code in a AfterCreate() method, instead of using *.lfm or *.dfm files. I now have one unit in my source code revision system that shows all changes (no need review two files for form changes), I can easily do a search & replace for form components and other code, and I also don't need to fire up a visual form designer if I just want to make one small tweak to a property. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, Oct 14, 2016 at 1:50 AM, Michael Schnell via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 14.10.2016 00:13, Erwin van den Bosch via Lazarus wrote: > >> >> I'm not a big fan of the RAD development way any more. (I was years ago). >> The problem is that you should separate your business logic and the GUI. >> > This is absolutely true especially when doing large systems or (embedded) > systems that don't are tightly bundled with the GUI. But even there using > RAD for testing/debugging is a way for speed up the development. > > " > And here the addressees are non-computer engineers who most likely will > not do large systems on their own, but just should understand what > programming means to enable them to talk decently with their colleagues who > will do the programming for appropriate projects. > > " The above paragraph is not correct very much , because the computer engineers and the other engineers are different professions . The other engineers are using computer programming to solve their own problems , the computer engineers are using computer programming to solve other people's problems . Mehmet Erol Sanliturk > So a fast way ("RAD") to do and test a rather simple working project and > understand the basics > > With Delphi like RAD it's very difficult to do that. (but it is possible) >> Everything is coded in events and connected to database aware GUI controls. >> (In the case of a database application) >> > I don't think so. > > With a more careful design it's absolutely possible to do "non RAD" > programs by doing "GUI units" and "business code Units" that interact via > Objects with functions, properties and events (callback-properties) . > > I believe this is not more effort that using an external GUI designer. > > I did this for embedded projects using the GUI units for debugging and > testing and then replacing them by dummies without needing to modify the > business code units and hence being able to start testing again at any > time, while the "GUI-stripped" executable can used on a "headless" target > system > > -Michael > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus-ide.org > http://lists.lazarus-ide.org/listinfo/lazarus > -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Fri, Oct 14, 2016 at 1:18 AM, Michael Schnell via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 13.10.2016 10:20, Graeme Geldenhuys via Lazarus wrote: > >> +1 >> That would be the best solution. GUI programming is based on >> fundamentals than need to be understood first. >> > > -1 !! > > The OP explained that his main purpose is to introduce more fun in the > education. That can be done by plunging into programming directly with GUI > development. > > This is why RAD had been invented. > > Of course there are decent drawbacks regarding relying too much on RAD and > about not really understanding the fundamentals behind it. > > But in the end the addressees are non-computer engineers. > > -Michael > -- > ___ > As an engineer , they need to write programs for doing computations not available in ready-made packages . Therefore , they need to a sufficient knowledge to write programs . This can be achieved in a good balance of learning programming itself and GUI application . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 14.10.2016 00:13, Erwin van den Bosch via Lazarus wrote: I'm not a big fan of the RAD development way any more. (I was years ago). The problem is that you should separate your business logic and the GUI. This is absolutely true especially when doing large systems or (embedded) systems that don't are tightly bundled with the GUI. But even there using RAD for testing/debugging is a way for speed up the development. And here the addressees are non-computer engineers who most likely will not do large systems on their own, but just should understand what programming means to enable them to talk decently with their colleagues who will do the programming for appropriate projects. So a fast way ("RAD") to do and test a rather simple working project and understand the basics With Delphi like RAD it's very difficult to do that. (but it is possible) Everything is coded in events and connected to database aware GUI controls. (In the case of a database application) I don't think so. With a more careful design it's absolutely possible to do "non RAD" programs by doing "GUI units" and "business code Units" that interact via Objects with functions, properties and events (callback-properties) . I believe this is not more effort that using an external GUI designer. I did this for embedded projects using the GUI units for debugging and testing and then replacing them by dummies without needing to modify the business code units and hence being able to start testing again at any time, while the "GUI-stripped" executable can used on a "headless" target system -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 13.10.2016 10:20, Graeme Geldenhuys via Lazarus wrote: +1 That would be the best solution. GUI programming is based on fundamentals than need to be understood first. -1 !! The OP explained that his main purpose is to introduce more fun in the education. That can be done by plunging into programming directly with GUI development. This is why RAD had been invented. Of course there are decent drawbacks regarding relying too much on RAD and about not really understanding the fundamentals behind it. But in the end the addressees are non-computer engineers. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 10/14/2016 08:28 AM, Mehmet Erol Sanliturk via Lazarus wrote: I consider QT a very big trap . Please be careful about its license if you want to develop commercial software and also if you want to teach computer programming to the students that they will work for commercial companies . I am seeing many student projects in , especially , Github , which I consider a total disaster for the students because over time , when they start as a worker in a commercial company , they will not be able to use their knowledge if the company does not buy a commercial license from QT owner . Trap is the following : QT is using LGPLv2 license in some parts . This seems to be a good choice , BUT , the same sources are using in some parts LGPLv3 ( Three ) license . Since software is developed or contributions accepted by QT owner , this LGPLv3 license is NOT compulsory , means they can have it LGPLv2 license . Really , I consider GPLv3/LGPLv3 licenses not suitable for a service to humanity as a whole because they are very hostile to commercial companies . If any LGPLv3 part is used , is only a disaster for all of the other software . In QT , this fact is a seemingly hidden trap . AFAIK, LGPLv3 is applied only to Qt extra modules (like QVirtualKeyboard etc), but not to the core lib which is LGPLv2, and we are using core/gui lib only for lazarus, so no problems with commercial usage. zeljko -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Thu, Oct 13, 2016 at 3:13 PM, Erwin van den Bosch via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > Although I use Free Pascal/Lazarus a lot (because we have a lot of > existing pascal code) I think C++ and some GUI framework like QT might be a > better option. C/C++ is the number one used programming language. C/C++ > code is much more portable to other systems. There are more compilers. QT > has a very nice IDE (QT Creator) and is available for Windows, Mac and > Linux. Nobody is using Pascal these days. So why learn it? > > I'm not a big fan of the RAD development way any more. (I was years ago). > The problem is that you should separate your business logic and the GUI. > With Delphi like RAD it's very difficult to do that. (but it is possible) > Everything is coded in events and connected to database aware GUI controls. > (In the case of a database application) > Another problem with the RAD way is that a lot is stored in forms (.lfm > files) and it's difficult to see/notice changes to those files. They can be > very big and it's difficult to see if some control is missing, for example, > an event or so. The Lazarus IDE does frequently change the properties of > controls on the form. For example the width and the height properties > frequently change with no reason as it seems. As specially when you do > development on both Windows and Linux. That makes tracking code changes > (and so potential new bugs) not very easy. > > Regards, > Erwin > I consider QT a very big trap . Please be careful about its license if you want to develop commercial software and also if you want to teach computer programming to the students that they will work for commercial companies . I am seeing many student projects in , especially , Github , which I consider a total disaster for the students because over time , when they start as a worker in a commercial company , they will not be able to use their knowledge if the company does not buy a commercial license from QT owner . Trap is the following : QT is using LGPLv2 license in some parts . This seems to be a good choice , BUT , the same sources are using in some parts LGPLv3 ( Three ) license . Since software is developed or contributions accepted by QT owner , this LGPLv3 license is NOT compulsory , means they can have it LGPLv2 license . Really , I consider GPLv3/LGPLv3 licenses not suitable for a service to humanity as a whole because they are very hostile to commercial companies . If any LGPLv3 part is used , is only a disaster for all of the other software . In QT , this fact is a seemingly hidden trap . I am not a commercial person . I am a retiree of the Government of Turkey from a State University . I have attempted to a business to produce furniture , it turned to be a disaster . I decided that business activities is not for me . I am trying to produce software to supply it to market just to obtain money at least to support its maintenance . If more money , there may be possibility to produce more software . I know that software development is an extremely costly process . To try to enforce commercial companies to make their software open source unconditionally , really it is not a friendly action . Or trying to entrap into a situation that they will be enforced to buy a software by tricking them in any way . It is not my business to discuss the issues about QT , but it is necessary to be at least friendly to the people . My trouble is that point . To expect that everyone ( especially students ) will know details of the licenses and their legal consequences is not very realistic . Here , main responsibility lies on the schools and their instructors . A huge number of student projects ( in order of many ten thousands ) even does not contain any single sentence about their license . With this structure , no one of the students in job search can use their projects to show their achievements because most of the project copyrights are belong to their universities . When a software does not contain any explicit license about what can be done with it , its rule is with respect to copyright laws : You can NOT touch to this ! So simply . Since I have mentioned the above issue about student projects , I want to also mention the following disastrous issue about them : Quality of projects is so low that ( even in best universities of the world ) , the only my feeling was a big disappointment and sorrow . It is not necessary to each everything listed in a manual of a programming language , but teach a subset that , at least the student can write a program which can be used in a production environment with its inherent quality . It is not important of its size also , but its quality . Quality of software is the most important feature . Use knowledge found in "Software Engineering" books in a way that it can be used even in an introductory course . A starting point may be https://en.wikipedia.org/wiki/Software_development_process Instead of
Re: [Lazarus] Teaching Pascal at College
On 10/13/2016 05:13 PM, Erwin van den Bosch via Lazarus wrote: ... Another problem with the RAD way is that a lot is stored in forms (.lfm files) and it's difficult to see/notice changes to those files. They can be very big and it's difficult to see if some control is missing, for example, an event or so. The Lazarus IDE does frequently change the properties of controls on the form. For example the width and the height properties frequently change with no reason as it seems. As specially when you do development on both Windows and Linux. That makes tracking code changes (and so potential new bugs) not very easy. Regards, Erwin I've used Beyond Compare since (about) 1995 to always compare my form files. Here is a related topic: Cleaning up the Delphi uses statements http://brenemanlabs.com/Uses.htm Regards, Paul www.ControlPascal.com -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Although I use Free Pascal/Lazarus a lot (because we have a lot of existing pascal code) I think C++ and some GUI framework like QT might be a better option. C/C++ is the number one used programming language. C/C++ code is much more portable to other systems. There are more compilers. QT has a very nice IDE (QT Creator) and is available for Windows, Mac and Linux. Nobody is using Pascal these days. So why learn it? I'm not a big fan of the RAD development way any more. (I was years ago). The problem is that you should separate your business logic and the GUI. With Delphi like RAD it's very difficult to do that. (but it is possible) Everything is coded in events and connected to database aware GUI controls. (In the case of a database application) Another problem with the RAD way is that a lot is stored in forms (.lfm files) and it's difficult to see/notice changes to those files. They can be very big and it's difficult to see if some control is missing, for example, an event or so. The Lazarus IDE does frequently change the properties of controls on the form. For example the width and the height properties frequently change with no reason as it seems. As specially when you do development on both Windows and Linux. That makes tracking code changes (and so potential new bugs) not very easy. Regards, Erwin Op 12-10-2016 om 20:10 schreef Adrian De Armas via Lazarus: Hello everyone, I am a professor of "introduction to programming". Currently we are working with matlab and c. Today I had a meeting about doing the module more interesting to the students. Currently we teach algorithms making console applications and usually I receive questions like "Why don't we do something more modern?". I recommended that we should use Pascal in General and Lazarus in particular to teach how to create rich GUI Applications and to my surprise the idea was well recieved. Now I have to make suggestions about how to prepare the module starting from zero. Students do not know how to program and I need to include subjects as: variable declaration, operations, if, while, for, functions and procedure, arrays and multidimensional arrays. I would love to know what you think about making the transition from console to GUI. This is an exciting opportunity I'd love to make it right. Regards -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-13 21:13, Martin Collins via Lazarus wrote: > My coding is just a hobby that I enjoy, but I would like to be able to > do it well and also somehow know that I am. Unfortunately I come from a > marine (ships) background not from an IT one. No formal training in > programming. You background doesn't matter. Many have found there way into programming from whatever they did before. Formal training is also not a requirement for becoming a good or even excellent programming. I know many excellent self-taught programmers. Most things programmers do are all self-taught anyway. Formal training just plants the seed. From what you described (your willingness to learn by reading various programming books), it seems you are well on your way to become a better programmer. You should give yourself more credit. :-) > on this mailing list recommend as the best reference publication for > teaching a) programming concepts in general, & b) pascal programming > specifically? With the availability of the Internet, there are tons of useful information out there - all for free. You just need the willingness to read, learn and practice. My biggest leap in improving my programming skills was when I started studying Design Patterns. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Il 13/10/2016 16:48, Reimar Grabowski via Lazarus ha scritto: If you want modern, teach them Java and let the programs run on their phones or keep doing console programs and do the GUI in JS (aka web applications). ^^ I find very unlikely that civil, environmental and bio engineers will find of any use learning how to write program for their phones, or for developing web applications. On the contrary they may need to develop typical computer applications, where a traditional programming language provides the required efficiency, and RAD can be very important bonus, to get it quickly done. I have always found that following no matter what the most "modern" technology is totally wrong and misleading. One should be aware of what is available, of course, but then one should always select the most "appropriate" technology, and not be influenced by what is "modern". Tombstones are still made of stone, a stone age technology, just because it still turns out to be the most appropriate technology to cover a grave. Giuliano -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Darn it, sounds like Graeme is describing me! I wandered into Lazarus/Free Pascal a few years ago after enjoying writing VBA code in Excel. Admittedly I always found my (VBA) code sloppy and wrote some odd code just to make things work! My coding is just a hobby that I enjoy, but I would like to be able to do it well and also somehow know that I am. Unfortunately I come from a marine (ships) background not from an IT one. No formal training in programming. I'm a lonely Linux user and an even more lonely pascal coder, so I only have this mailinglist to "litmus test" my "skills" against. Sometimes I feel like I'm being a pain but no one has yet been rude to me, just helpful which I appreciate ;-) When I see a recommendation from someone on this list, I normally go for it. Therefore just ordered a copy of An Introduction To Methodical Programming, thanks Tony. I am envious of the students of Adrian De Armas who will receive some formal training. I have a lot of books on pascal programming, pascal manuals (turbo 5.5), even Kylix & Delphi 3 tomes including Lazarus The Complete Guide that all threaten to break my shelves at any moment. All these books have been a great help to me, but out of interest what would the IT graduates on this mailing list recommend as the best reference publication for teaching a) programming concepts in general, & b) pascal programming specifically? Thanks, Martin On 13/10/16 09:20, Graeme Geldenhuys via Lazarus wrote: .. We don't want another whole generation of Visual Basic programmers. The Visual Basic 4-6 programs I had seen and unfortunately had to maintain were the sloppiest code I've ever seen - all written by "programmers" that dived straight into VB with no prior programming experience. Regards, Graeme -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Thu, Oct 13, 2016 at 7:04 AM, Michael Schnell via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 13.10.2016 15:32, Mehmet Erol Sanliturk via Lazarus wrote: > >> When a problem tends to be very large , Pascal is losing its power >> because of its non-standard ( actually related standards are dead and not >> maintained and not adhered ) structure . >> > I do know several very large systems done in Delphi. The only real > downside I see is that they are not portable to Linux and/or ARM. > > -Michael > -- > ___ > This is the real problem as you said : Portability among different operating systems . As an example : All of the super computers are using Linux ( there are very few exceptions being the smallest super computers in "500 super computers list" using Windows ) . Development in Delphi is no use in that environment . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Thursday 13 October 2016 16:27:44 Martin Schreiber wrote: A better screenshot who shows what the binary value displays do: http://mseide-msegui.sourceforge.net/pics/rechenkunst.png Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
Because there are some basic controls that use array logic (lists, combo boxes, even edit boxes when dealing with positions of characters in a string), I'd introduce the concept with the variables. If the student can make the connection between the visual controls and concept of array logic, the inserting, selecting, and manipulation of that data should be easy to grasp. Considering your audience, it should fit in with stuff they are already familiar with, just not thought of in the way of how a computer organizes memory? Meh, may be I'm getting too far down into the weeds. On Thu, Oct 13, 2016 at 9:37 AM, Adrian De Armas via Lazarus wrote: First of all, Thank you all who spent your time reading and suggesting about this subject. 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. 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. 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. First part will be all console applications where I will introduce the basics of pascal: - structure of a pascal program - variable declarations (integers, doubles, strings...) - read, readln, write, writeln - operations (+. -, *, /) - if, case, while, for, repeat/until - procedures and functions - algorithms like getting prime numbers, fibonacci series, etc The second part will introduce: - GUI environment. Dropping components on a form and arrange them. Changing properties. - Event oriented programming - simple and multidimensional arrays - ¿files? I will use some specific components to help the transition for example: var a, b, c: integer begin ...bla..bla... c=a+b; end; In GUI a, b, and c will be spinedits with a "value" integer property so I can write: spineditc.value := spinedita.value+spineditb.value; instead of editc.Text := IntToStr(StrToInt(Edita.Text)+StrToInt(Editb.Text)); Comboboxes and list control will be used in case statements with the "ItemIndex" property Memo.Lines and arrays will be given at the same time... etc... What do you think? Regards 2016-10-13 7:02 GMT-03:00 Graeme Geldenhuys via Lazarus < lazarus@lists.lazarus-ide.org>: On 2016-10-13 10:04, Michael Schnell via Lazarus wrote: IMHO it's a shame, but new projects in Pascal seem to be declining, That's got nothing to do with the Object Pascal being modern or not (I think it is modern enough). The decline is about marketing and popularity contests, and management decisions (how easy is it to replace a Object Pascal developers vs a Java developer). Delphi being sold every other year doesn't help with the stability of Object Pascal in the marketplace either. Regards, Graeme -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus -- -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Thu, Oct 13, 2016 at 3:02 AM, Graeme Geldenhuys via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > On 2016-10-13 10:04, Michael Schnell via Lazarus wrote: > > IMHO it's a shame, but new > > projects in Pascal seem to be declining, > > That's got nothing to do with the Object Pascal being modern or not (I > think it is modern enough). The decline is about marketing and > popularity contests, and management decisions (how easy is it to replace > a Object Pascal developers vs a Java developer). > > Delphi being sold every other year doesn't help with the stability of > Object Pascal in the marketplace either. > > Regards, > Graeme > > -- > ___ > Free Pascal is a "Turing complete" and "Resource complete" language , means it is not "lower" than any other programming language whatever it is . The unfortunate situation is that Free Pascal ( and Lazarus ) is alone , i.e., there is no any other competing compiler production SIMILAR to Free Pascal . Also Free Pascal is a voluntary project means the developers can not devote their times solely to develop ( maintain ) the Free Pascal because they a "life" to pursue . In a commercial environment such a structure can not be used for a "life critical" component as used "programming language" , because there is no any alternative . Delphi can not be considered as an alternative due to reasons about their development and maintenance policies and it is also "monopoly" naturally because there is no any alternative SIMILAR compiler . I am using Free Pascal . I have abandoned Delphi , I did not buy a new version of it because it is for only a single operating system . Now , I will convert my program to C ( around 12 000 procedures ) where there is no any converter which can convert such a program . In that respect , I consider my program ( about data base programming language and interpreter ) as went into nearly scratch . Main reason is that in such a program generated code is correct but when an error is occurring it is not possible to its place or reason of it . Debugging tools are useless because they are very difficult to use . As a result , Pascal is a dead language , but a very useful and nice language to teach programming concepts . For small problems it is very good , but now , problem definitions started to become very complex . When a problem tends to be very large , Pascal is losing its power because of its non-standard ( actually related standards are dead and not maintained and not adhered ) structure . Mehmet Erol Sanliturk -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-13 10:04, Michael Schnell via Lazarus wrote: > IMHO it's a shame, but new > projects in Pascal seem to be declining, That's got nothing to do with the Object Pascal being modern or not (I think it is modern enough). The decline is about marketing and popularity contests, and management decisions (how easy is it to replace a Object Pascal developers vs a Java developer). Delphi being sold every other year doesn't help with the stability of Object Pascal in the marketplace either. Regards, Graeme -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 12.10.2016 20:10, Adrian De Armas via Lazarus wrote: teach how to create rich GUI Applications and to my surprise the idea was well recieved. Now I have to make suggestions about how to prepar The GUI development in Lazarus is not "modern" at all (but IMHO a *very* decent way to do a GUI). Embarcadero Delphi changed to the "FireMonkey" GUI builder, that is intended to do a "modern" "dynamic" GUI, more suitable for mobile-trained users. Regarding building a GUI, the "RAD" paradigm seems not to to be widely accepted any more, but a dedicated GUI builder, separated from the language code, is recommended in many places, even though a lot more clumsy than Delphi-alike RAD. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On 2016-10-13 06:33, LacaK via Lazarus wrote: > I understand, that black/white window does not look modern. You can > introduce 2 courses: > 1. Introduction to Pascal (Object Pascal) > 2. GUI programing +1 That would be the best solution. GUI programming is based on fundamentals than need to be understood first. We don't want another whole generation of Visual Basic programmers. The Visual Basic 4-6 programs I had seen and unfortunately had to maintain were the sloppiest code I've ever seen - all written by "programmers" that dived straight into VB with no prior programming experience. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Wednesday 12 October 2016 20:10:50 Adrian De Armas via Lazarus wrote: > Today I had a meeting about doing the module more interesting to the > students. Currently we teach algorithms making console applications and > usually I receive questions like "Why don't we do something more modern?". > I made such an experiment with Free Pascal and MSEide+MSEgui: https://sourceforge.net/projects/mseuniverse/files/book/ "programmierspass_0_1.zip" contains the text and example code (German). Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
I would also caution against starting on GUI programming too early. +1 (few years ago I have teached programing on school in our city. I am not a techaer, but school lost teacher and was not able to find someone else) I have used FreePascal + Lazarus for my courses, but we have used only project type of "Program" (so no LCL GUI), exactly for reasons what was mentioned. I understand, that black/white window does not look modern. You can introduce 2 courses: 1. Introduction to Pascal (Object Pascal) 2. GUI programing L. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
When I read your post ,it sent me back to read the Introduction to Nicklaus Wirth's original "Pascal user Manual and Report" where the opening paragraph says: "The development of the language Pascal is based on two principal aims. The first is to make available a language suitable to teach programming as a systematic discipline based on certain fundamental concepts clearly and naturally reflected by the language. The second is to develop implementations of this language which are both reliable and efficient on presently available (1975) computers". Certainly the intent was a very good match for what you want and IMHO that intent was fully realised. If you can find it, I would recommend getting hold of a copy of what is now an ancient text "Pascal - An Introduction to Methodical Programming - Findlay and Watt - ISBN 0 273 01220 7 (Original Edition) now 978-1857283648". First published 1978. This used to be the definitive text for learning Pascal and somewhat to my surprise still seems to be available from Amazon in its 3rd Edition. When I looked down through the content list the order of play and presentation still seems just right for a first course in programming. It does not deal with Object Oriented programming or even "Units". ISO standard Pascal will still some time away but that anyway should be the next semester. I would also caution against starting on GUI programming too early. If the students don't have a grasp of fundamentals then they will get lost very quickly. Perhaps the best approach is at the end of each subject to translate the simple procedural program they have been working on into a GUI program as a whole class exercise. From having myself developed many courses in Data Communications over the years, I would also always try and make sure the students understand the context, the background to what they are doing and why. Somehow you need to get Boolean Algebra in there as well. Findlay and Watt give a primer on this in chapter 5, which is probably about the right stage after having done the basics. And then, of course, there are Turing Machines... Have fun Tony Whyman MWA On 12/10/16 19:10, Adrian De Armas via Lazarus wrote: Hello everyone, I am a professor of "introduction to programming". Currently we are working with matlab and c. Today I had a meeting about doing the module more interesting to the students. Currently we teach algorithms making console applications and usually I receive questions like "Why don't we do something more modern?". I recommended that we should use Pascal in General and Lazarus in particular to teach how to create rich GUI Applications and to my surprise the idea was well recieved. Now I have to make suggestions about how to prepare the module starting from zero. Students do not know how to program and I need to include subjects as: variable declaration, operations, if, while, for, functions and procedure, arrays and multidimensional arrays. I would love to know what you think about making the transition from console to GUI. This is an exciting opportunity I'd love to make it right. Regards -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Teaching Pascal at College
On Wed, Oct 12, 2016 at 11:52 AM, Chris Kelling via Lazarus < lazarus@lists.lazarus-ide.org> wrote: > I'll tell you, after years of doing top down modular programming, it took > me a little time to adjust to event driven programing. It wasn't until I > used a FOR loop on a form to collect the input that I realized what the > difference is. > > For a beginning student, you can approach it in two ways - teach > programming concepts or just teach the language. This is what I learned in > my Computer Science classes. > > I had a couple of classmates who were hot shots in JAVA by reading the > tutorials online. Where as their mastery of JAVA was impressive, they had > no concept of what they were doing in the context of programming. This was > a data structures class, and concepts and how to apply them was totally > lost on them. Their code was sloppy, inefficient, and very hard to > troubleshoot. > > One exercise in my C class called for creating a linked list. I used > recursion, which took my instructor off guard. He said it wouldn't work, > and I asked, "It worked on all my tests, should I stop doing it this way?" > He looked at my code again, get a huge smile and remarked that > I used recursion. I said yes, the pre-req for the course was programming > I and II, which is where we learned recursion. He still have me more > credit because most students were using some king of loop > > The point being, the language doesn't matter except for syntax. > Programming is programming. That being said, more to what you asked. > > To understand how the more advanced concepts work and are used, there > needs to be a broad base. I still write a lot of my logic in a unit and > then add that unit into a project. Defiantly start them off making simple > console programs just to demonstrate the concepts. I'd do it via the > Lazarus IDE so they get used to that environment. After they have the > basic concepts, introduce what Lazarus is - a group of libraries extending > FPC into the visual design. They should have enough of a grasp on the > concept of say arrays to understand how a > list control works, or how you can use conditional branching (both IF > -THEN-ELSE and CASE) to check for radio button and check box states. > > But then again, I'm not a professional educator. > > -Chris > > On Wed, Oct 12, 2016 at 2:10 PM, Adrian De Armas via Lazarus wrote: > > Hello everyone, I am a professor of "introduction to programming". > Currently we are working with matlab and c. > > > Today I had a meeting about doing the module more interesting to the > students. Currently we teach algorithms making console applications and > usually I receive questions like "Why don't we do something more modern?". > > > I recommended that we should use Pascal in General and Lazarus in > particular to teach how to create rich GUI Applications and to my surprise > the idea was well recieved. Now I have to make suggestions about how to > prepare the module starting from zero. Students do not know how to program > and I need to include subjects as: variable declaration, operations, if, > while, for, functions and procedure, arrays and multidimensional arrays. > > > I would love to know what you think about making the transition from > console to GUI. > This is an exciting opportunity I'd love to make it right. > > > Regards > > > -- > > I have taught mostly Fortran programming to the students ( with Cobol , but , less frequently ) in a University ( Pascal in another University ) . In those days , there was no any GUI programming facility like Lazarus . When GUI is started , it was assumed that the students may learn more effectively . My opinion is that such an assumption is misleading , because , it is very easy to generate a GUI program . When it comes to perform some , let's say , data processing , it is becoming necessary to write some Pascal procedure parts ( or procedures ) within GUI program . In that part , the students becoming helpless because they do not know how to write such procedures or parts . To help to the students , my opinion is that , a double way approach should be used : First teach how to program in plain Pascal , for example , input - process - output in a console program which is easy to write . After the students have learned what can be down , embed main steps of this console program into a Lazarus ( GUI ) program . In that way , the students will learn how to write an algorithm in Pascal and test it in a simple console program , and then how to make it a GUI program . They in that way learn how to generate a GUI program . Sometimes by beginning from a console program or directly beginning a GUI program and improve its procedures supplied by Lazarus generated sources , they will be able to develop a software by selecting whichever way is easy and suitable for them . Mehmet Erol Sanliturk -- ___ Lazarus mailing list
Re: [Lazarus] Teaching Pascal at College
On 10/12/2016 01:10 PM, Adrian De Armas via Lazarus wrote: Hello everyone, I am a professor of "introduction to programming". Currently we are working with matlab and c. Today I had a meeting about doing the module more interesting to the students. Currently we teach algorithms making console applications and usually I receive questions like "Why don't we do something more modern?". I recommended that we should use Pascal in General and Lazarus in particular to teach how to create rich GUI Applications and to my surprise the idea was well recieved. Now I have to make suggestions about how to prepare the module starting from zero. Students do not know how to program and I need to include subjects as: variable declaration, operations, if, while, for, functions and procedure, arrays and multidimensional arrays. I would love to know what you think about making the transition from console to GUI. This is an exciting opportunity I'd love to make it right. As an electrical engineer (starting study at age 14) I've always enjoyed learning programming when it is *combined* with hardware. There are links to two such projects at the top of this page: http://controlpascal.com/tutorial.htm There is a link near the bottom of that page to *ideU* which might be one way to transition from console to GUI. Please keep us informed about how things progress! Regard, Paul -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus