C++ Logo

sg20

Advanced search

Re: [SG20] Wonderful story from Brian Kernighan about an assignment he gave to students.

From: Yehezkel Bernat <yehezkelshb_at_[hidden]>
Date: Tue, 9 Jun 2020 23:27:50 +0300
(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
>

Received on 2020-06-09 15:31:16