2019年7月12日、大学院生と学部生を対象としたACM国際大学対抗プログラミングコンテストの国内予選が開催され、情報工学科の学生57人が参加しました。
同コンテストは、大学生が3人1チームとなり、3時間の制限時間内に8題のプログラミング課題を、どれだけ多く、早く、正確に解けるかなどプログラミングによる問題解決能力を競うもので、各国の国内予選を勝ち抜いたチームが、11月に行われる本戦へと進みます。
今年は、全国の大学から495チームが参加。本学から参加した19チームは、11チームが2題に回答、6チームが1題に回答して、強豪大学のチームと競い合いながら、最高順位188位を収めました。
本学では、学生の課外活動を支援するSITチャレンジ制度によって、4月から週に1回、同コンテストに向けて教員が指導し、対策を行ってきました。参加した学生たちからは、積極的に知識を吸収しようとする姿が多く見られ、入学したばかりの1年生9人も参加しました。
1年生から同コンテストに参加している4年生の学生は「授業で積極的に課題に取り組んでいると、先生から『プログラミングコンテストに参加してみないか』と声をかけてもらったことがきっかけで、毎年出場しています。課題に対してプログラムを書いて、正解を導き出すことに魅了されてしまいました」と振り返りながら、今年の同コンテスト前は、後輩のサポート役に徹したと話します。
「後輩たちの質問に対しては言葉だけでなく、ホワイトボードに図を描いて、分かりやすく伝えることを心がけました。時には、実際に自分の書いたコードを見せて、アルゴリズムの発想からどのようにプログラムを実装するかを細かく教えることもありました。コンテストでは“この問題はこのアルゴリズムで解け”といった細かい指示が出ることは、ほとんどありません。自分でどのようなアルゴリズムで解けばよいのかを判断し、実装しなければなりません。自分自身もコンテストに参加し始めた頃に比べて、授業での理解度が上がり、授業の課題に対しても、改良したらもっと処理速度が速くなりそうな部分や、もっと便利にできそうな部分を自主的に見つけて、付加価値をつけることができるようになったと思います」とも語っています。
コンテストを意識して、4カ月前から取り組みを始めた伊藤祐太さん(同3年)は「毎日最低1問は解き、週2回はしっかりと問題を解いてきました。習慣化することで無理なく続けることができ、続けることで、着実に力も付いていきました」と話し、チームのメンバーと連携を図ることの大切さについては「技術はもちろんですが、メンバーそれぞれの得意分野や特徴を把握して、本番での役割分担をうまくできるかが、結果に大きな影響を与えると思いました。事前に1問あたりの目安時間と、割り当てた問題の進捗が思うように進まなかった場合のリカバリーを決めていたので、本番では問題なく対応することができました」と振り返りました。
また「プログラミングコンテストを通して、アルゴリズムについて、広い視野での発想が持てるようになったと感じています。大学の授業のように、課題に対して決められた手法を使って一つの答えを出しているのとは違い、コンテストでは自由な発想でプログラムを組んでいくので、同じ問題を解いた時でもほかの人と自分では、全く異なる発想のアルゴリズムを使って解いていることもあり、回答をほかの人と共有することで、いろいろな考え方を身につけることができてよかったです。来年は今年以上にしっかりと力をつけてプログラミングコンテストに参加したいです」とも語っています。
今後も、学生が積極的にプログラミングコンテストへ参加し、他大学の学生たちと競い合いながら、プログラミングスキルを向上し、活動意欲を高めてくれることに期待が寄せられます。
同コンテストは、大学生が3人1チームとなり、3時間の制限時間内に8題のプログラミング課題を、どれだけ多く、早く、正確に解けるかなどプログラミングによる問題解決能力を競うもので、各国の国内予選を勝ち抜いたチームが、11月に行われる本戦へと進みます。
今年は、全国の大学から495チームが参加。本学から参加した19チームは、11チームが2題に回答、6チームが1題に回答して、強豪大学のチームと競い合いながら、最高順位188位を収めました。
本学では、学生の課外活動を支援するSITチャレンジ制度によって、4月から週に1回、同コンテストに向けて教員が指導し、対策を行ってきました。参加した学生たちからは、積極的に知識を吸収しようとする姿が多く見られ、入学したばかりの1年生9人も参加しました。
1年生から同コンテストに参加している4年生の学生は「授業で積極的に課題に取り組んでいると、先生から『プログラミングコンテストに参加してみないか』と声をかけてもらったことがきっかけで、毎年出場しています。課題に対してプログラムを書いて、正解を導き出すことに魅了されてしまいました」と振り返りながら、今年の同コンテスト前は、後輩のサポート役に徹したと話します。
「後輩たちの質問に対しては言葉だけでなく、ホワイトボードに図を描いて、分かりやすく伝えることを心がけました。時には、実際に自分の書いたコードを見せて、アルゴリズムの発想からどのようにプログラムを実装するかを細かく教えることもありました。コンテストでは“この問題はこのアルゴリズムで解け”といった細かい指示が出ることは、ほとんどありません。自分でどのようなアルゴリズムで解けばよいのかを判断し、実装しなければなりません。自分自身もコンテストに参加し始めた頃に比べて、授業での理解度が上がり、授業の課題に対しても、改良したらもっと処理速度が速くなりそうな部分や、もっと便利にできそうな部分を自主的に見つけて、付加価値をつけることができるようになったと思います」とも語っています。
コンテストを意識して、4カ月前から取り組みを始めた伊藤祐太さん(同3年)は「毎日最低1問は解き、週2回はしっかりと問題を解いてきました。習慣化することで無理なく続けることができ、続けることで、着実に力も付いていきました」と話し、チームのメンバーと連携を図ることの大切さについては「技術はもちろんですが、メンバーそれぞれの得意分野や特徴を把握して、本番での役割分担をうまくできるかが、結果に大きな影響を与えると思いました。事前に1問あたりの目安時間と、割り当てた問題の進捗が思うように進まなかった場合のリカバリーを決めていたので、本番では問題なく対応することができました」と振り返りました。
また「プログラミングコンテストを通して、アルゴリズムについて、広い視野での発想が持てるようになったと感じています。大学の授業のように、課題に対して決められた手法を使って一つの答えを出しているのとは違い、コンテストでは自由な発想でプログラムを組んでいくので、同じ問題を解いた時でもほかの人と自分では、全く異なる発想のアルゴリズムを使って解いていることもあり、回答をほかの人と共有することで、いろいろな考え方を身につけることができてよかったです。来年は今年以上にしっかりと力をつけてプログラミングコンテストに参加したいです」とも語っています。
今後も、学生が積極的にプログラミングコンテストへ参加し、他大学の学生たちと競い合いながら、プログラミングスキルを向上し、活動意欲を高めてくれることに期待が寄せられます。