Date: Tue, 9 Jun 2020 16:38:34 -0400
That sounds pretty good.
Please tell me you are catching the exceptions really high, near the top -
where the "transaction" started!?
On Tue, Jun 9, 2020 at 4:29 PM Yehezkel Bernat via SG20 <
sg20_at_[hidden]> wrote:
> (Background: I'm a TA for OOP course in college.)
>
> We started to have one such assignment.
> When we want them to practice exceptions, we want a program with enough
> layers and enough possible failures so exceptions will be the natural and
> correct solution.
> We don't want to burden them with writing a huge program (in addition to
> understanding how to use exceptions, how and where to catch them etc.).
> We also don't want to have just a small program for this assignment, as it
> makes the usage of exceptions artificial and unintuitive.
>
> Instead, their assignment is to take the solution of a previous
> assignment, add one or two small features and add error handling by using
> exceptions.
> Instead of forcing them to struggle with their own code, we give them our
> solution to build on. They have to change it a bit, besides adding the
> additional features, to be able to handle the errors according to the
> requirements.
>
> Some of them complain that it's hard to work on someone else's code, but
> we hear a lot of good feedback too, how much they learned from it about
> good practices and class design.
>
> As a side note: for OS courses/workshops, it seems more common to have
> assignments to change the implementation or add a new feature inside an
> existing kernel (e.g. https://www.ops-class.org/).
> Maybe what Patrice suggested will help us to try a similar approach for
> C++ courses.
>
> On Tue, Jun 9, 2020 at 10:22 PM Amir Kirsh via SG20 <sg20_at_[hidden]>
> wrote:
>
>> I tend to go in class over a simplified story that resembles their
>> exercise.
>> Then they should see how to use the solution provided for the simplified
>> story in their own exercise.
>>
>> For example:
>> - simple story: managing examinees in exam hall
>> <https://docs.google.com/document/d/1zi1uuLTKlsspBo2aEgGGStqrMH84PhmzEG3i6f7M_Dw>
>> - their exercise: managing containers on ship
>> <https://docs.google.com/document/d/1Rh6TPxvG3fEr4fFbYiDU3ynVzKgKTlV1UlTW8j7_kQ4>
>>
>> If you have time to read the above (long) requirement docs and have
>> feedback, please feel free to share with me privately.
>>
>>
>> On Tue, Jun 9, 2020 at 9:57 PM Tony V E via SG20 <sg20_at_[hidden]>
>> wrote:
>>
>>> I've often wondered about giving students code from previous students.
>>> Or better yet, give them the code from themselves in first year.
>>>
>>> I would also like to give a class different parts of a problem - this
>>> group do the UI, this group do the backend, etc. Makes marking harder
>>> probably, but is more realistic.
>>> Of course there is also internship for learning those things.
>>>
>>>
>>>
>>> On Tue, Jun 9, 2020 at 2:04 PM Patrice Roy via SG20 <
>>> sg20_at_[hidden]> wrote:
>>>
>>>> The big problem in schools is that (in my experience, at least) we
>>>> don't actually have a body of legacy code to provide, and making students
>>>> use colleagues' sources (something I tried) tends not to give desired
>>>> results due to... let's call it "emergent quality of implementation" (it's
>>>> far from professional code that's evolved over time).
>>>>
>>>> I guess we could make a list of relevant open source projects (with
>>>> reasons why we think they are relevant) or ask partners from the industry
>>>> to provide some interesting sources for students to play with... We'd need
>>>> something stable, however, to avoid students accessing the work of previous
>>>> years' students.
>>>>
>>>>
>>>> ------------------------------
>>>> *De :* SG20 <sg20-bounces_at_[hidden]> de la part de JC van
>>>> Winkel via SG20 <sg20_at_[hidden]>
>>>> *Envoyé :* mardi 9 juin 2020 11:47
>>>> *À :* SG20 <sg20_at_[hidden]>
>>>> *Cc :* JC van Winkel <jcvw_at_[hidden]>
>>>> *Objet :* Re: [SG20] Wonderful story from Brian Kernighan about an
>>>> assignment he gave to students.
>>>>
>>>> Glad you liked it.
>>>>
>>>> In general, I like the idea of giving assignments where students need
>>>> to * change* software. That is what happens the most in industry.
>>>>
>>>> JC
>>>>
>>>> On Tue, Jun 9, 2020 at 3:06 PM Yongwei Wu via SG20 <
>>>> sg20_at_[hidden]> wrote:
>>>>
>>>> It is totally fantastic. I watched the ending twice, and then the video
>>>> in whole. Both Brian and Ken are brilliant!
>>>>
>>>> On Fri, 5 Jun 2020 at 15:58, JC van Winkel via SG20 <
>>>> sg20_at_[hidden]> wrote:
>>>>
>>>> See https://www.youtube.com/watch?v=NTfOnGZUZDk&feature=youtu.be&t=533
>>>> <https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNTfOnGZUZDk%26feature%3Dyoutu.be%26t%3D533&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789439049&sdata=2IgC08vuETc8vIhC3%2Fl1dbs3jMNjYabM5NUgXs9ScJE%3D&reserved=0>
>>>>
>>>> (it is the last 30 seconds of a video of the origins of the grep
>>>> command in UNIX)
>>>>
>>>> JC
>>>> --
>>>> SG20 mailing list
>>>> SG20_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>> <https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg20&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789449041&sdata=XFt3dm3aqMSop9QaM6cCOg5rkFLVAgjEFqXc11piBu8%3D&reserved=0>
>>>>
>>>>
>>>>
>>>> --
>>>> Yongwei Wu
>>>> URL: http://wyw.dcweb.cn/
>>>> <https://can01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwyw.dcweb.cn%2F&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789449041&sdata=0wSBvJlfj1CrCxjzvCs8pAallZLQG51hL2yDvHrVq%2F8%3D&reserved=0>
>>>> --
>>>> SG20 mailing list
>>>> SG20_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>> <https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg20&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789459034&sdata=MfpVmgNIkuuWg7j5bMO9ycuYqEMlhtoZAIC6IUXRooA%3D&reserved=0>
>>>>
>>>> --
>>>> SG20 mailing list
>>>> SG20_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>>
>>>
>>>
>>> --
>>> Be seeing you,
>>> Tony
>>> --
>>> SG20 mailing list
>>> SG20_at_[hidden]
>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>
>> --
>> SG20 mailing list
>> SG20_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>
> --
> SG20 mailing list
> SG20_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>
Please tell me you are catching the exceptions really high, near the top -
where the "transaction" started!?
On Tue, Jun 9, 2020 at 4:29 PM Yehezkel Bernat via SG20 <
sg20_at_[hidden]> wrote:
> (Background: I'm a TA for OOP course in college.)
>
> We started to have one such assignment.
> When we want them to practice exceptions, we want a program with enough
> layers and enough possible failures so exceptions will be the natural and
> correct solution.
> We don't want to burden them with writing a huge program (in addition to
> understanding how to use exceptions, how and where to catch them etc.).
> We also don't want to have just a small program for this assignment, as it
> makes the usage of exceptions artificial and unintuitive.
>
> Instead, their assignment is to take the solution of a previous
> assignment, add one or two small features and add error handling by using
> exceptions.
> Instead of forcing them to struggle with their own code, we give them our
> solution to build on. They have to change it a bit, besides adding the
> additional features, to be able to handle the errors according to the
> requirements.
>
> Some of them complain that it's hard to work on someone else's code, but
> we hear a lot of good feedback too, how much they learned from it about
> good practices and class design.
>
> As a side note: for OS courses/workshops, it seems more common to have
> assignments to change the implementation or add a new feature inside an
> existing kernel (e.g. https://www.ops-class.org/).
> Maybe what Patrice suggested will help us to try a similar approach for
> C++ courses.
>
> On Tue, Jun 9, 2020 at 10:22 PM Amir Kirsh via SG20 <sg20_at_[hidden]>
> wrote:
>
>> I tend to go in class over a simplified story that resembles their
>> exercise.
>> Then they should see how to use the solution provided for the simplified
>> story in their own exercise.
>>
>> For example:
>> - simple story: managing examinees in exam hall
>> <https://docs.google.com/document/d/1zi1uuLTKlsspBo2aEgGGStqrMH84PhmzEG3i6f7M_Dw>
>> - their exercise: managing containers on ship
>> <https://docs.google.com/document/d/1Rh6TPxvG3fEr4fFbYiDU3ynVzKgKTlV1UlTW8j7_kQ4>
>>
>> If you have time to read the above (long) requirement docs and have
>> feedback, please feel free to share with me privately.
>>
>>
>> On Tue, Jun 9, 2020 at 9:57 PM Tony V E via SG20 <sg20_at_[hidden]>
>> wrote:
>>
>>> I've often wondered about giving students code from previous students.
>>> Or better yet, give them the code from themselves in first year.
>>>
>>> I would also like to give a class different parts of a problem - this
>>> group do the UI, this group do the backend, etc. Makes marking harder
>>> probably, but is more realistic.
>>> Of course there is also internship for learning those things.
>>>
>>>
>>>
>>> On Tue, Jun 9, 2020 at 2:04 PM Patrice Roy via SG20 <
>>> sg20_at_[hidden]> wrote:
>>>
>>>> The big problem in schools is that (in my experience, at least) we
>>>> don't actually have a body of legacy code to provide, and making students
>>>> use colleagues' sources (something I tried) tends not to give desired
>>>> results due to... let's call it "emergent quality of implementation" (it's
>>>> far from professional code that's evolved over time).
>>>>
>>>> I guess we could make a list of relevant open source projects (with
>>>> reasons why we think they are relevant) or ask partners from the industry
>>>> to provide some interesting sources for students to play with... We'd need
>>>> something stable, however, to avoid students accessing the work of previous
>>>> years' students.
>>>>
>>>>
>>>> ------------------------------
>>>> *De :* SG20 <sg20-bounces_at_[hidden]> de la part de JC van
>>>> Winkel via SG20 <sg20_at_[hidden]>
>>>> *Envoyé :* mardi 9 juin 2020 11:47
>>>> *À :* SG20 <sg20_at_[hidden]>
>>>> *Cc :* JC van Winkel <jcvw_at_[hidden]>
>>>> *Objet :* Re: [SG20] Wonderful story from Brian Kernighan about an
>>>> assignment he gave to students.
>>>>
>>>> Glad you liked it.
>>>>
>>>> In general, I like the idea of giving assignments where students need
>>>> to * change* software. That is what happens the most in industry.
>>>>
>>>> JC
>>>>
>>>> On Tue, Jun 9, 2020 at 3:06 PM Yongwei Wu via SG20 <
>>>> sg20_at_[hidden]> wrote:
>>>>
>>>> It is totally fantastic. I watched the ending twice, and then the video
>>>> in whole. Both Brian and Ken are brilliant!
>>>>
>>>> On Fri, 5 Jun 2020 at 15:58, JC van Winkel via SG20 <
>>>> sg20_at_[hidden]> wrote:
>>>>
>>>> See https://www.youtube.com/watch?v=NTfOnGZUZDk&feature=youtu.be&t=533
>>>> <https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNTfOnGZUZDk%26feature%3Dyoutu.be%26t%3D533&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789439049&sdata=2IgC08vuETc8vIhC3%2Fl1dbs3jMNjYabM5NUgXs9ScJE%3D&reserved=0>
>>>>
>>>> (it is the last 30 seconds of a video of the origins of the grep
>>>> command in UNIX)
>>>>
>>>> JC
>>>> --
>>>> SG20 mailing list
>>>> SG20_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>> <https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg20&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789449041&sdata=XFt3dm3aqMSop9QaM6cCOg5rkFLVAgjEFqXc11piBu8%3D&reserved=0>
>>>>
>>>>
>>>>
>>>> --
>>>> Yongwei Wu
>>>> URL: http://wyw.dcweb.cn/
>>>> <https://can01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwyw.dcweb.cn%2F&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789449041&sdata=0wSBvJlfj1CrCxjzvCs8pAallZLQG51hL2yDvHrVq%2F8%3D&reserved=0>
>>>> --
>>>> SG20 mailing list
>>>> SG20_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>> <https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg20&data=02%7C01%7Cpatrice.roy%40usherbrooke.ca%7C8c14ba10de4b4d37a4d908d80c8c7b60%7C3a5a8744593545f99423b32c3a5de082%7C0%7C0%7C637273144789459034&sdata=MfpVmgNIkuuWg7j5bMO9ycuYqEMlhtoZAIC6IUXRooA%3D&reserved=0>
>>>>
>>>> --
>>>> SG20 mailing list
>>>> SG20_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>>
>>>
>>>
>>> --
>>> Be seeing you,
>>> Tony
>>> --
>>> SG20 mailing list
>>> SG20_at_[hidden]
>>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>>
>> --
>> SG20 mailing list
>> SG20_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>>
> --
> SG20 mailing list
> SG20_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>
-- Be seeing you, Tony
Received on 2020-06-09 15:41:56