プログラミングチャレンジ

  [ GB21802 ]
Programming Challenges
対象:3・4学年 開設学期:春AB 曜日・時限:月3,金3 単位数:2単位
担当教員:Claus Aranha, 櫻井鉄也

概要

プログラミングコンテストに現れる様々な有用なアルゴリズムについて講義する。内容:ソーティング、探索、グラフ、数値計算、文字列操作、計算幾何。新しい知識を勉強するより、既に知っているアルゴリズムを使って難しいプログラミング課題を解きながら知識を含めるのはこの講義の目的です。
This course studies a variety of useful algorithms through the use of programming challenges. Topics: Sorting, Searching, Graphs, Numerical and String handling, Geometry. The goal of this course is, rather than introducing new concepts, to deepen the understanding of algorithmic techniques by solving hard programming problems.

学習・教育目標

本講義では、様々な問題に対して適切なアルゴリズムを選び、その問題を解決するための実装を行うことを目標とする。これまでに学習したアルゴリズムとプログラミング技術の具体的な使い方を学ぶ。
The goal of this course is to learn how to identify the necessary algorithm to solve a given program, and how to correctly implement it. This course aims at giving a practical view of previously learned algorithms and programming techniques.

キーワード

アルゴリズム、プログラミング、問題解決、プログラミングコンテスト

Keywords

Algorithms, Programming, Problem Solving, Programming Contests

時間割

週/Week講義内容/Lecture contents
1講義概要・プログラミングコンテストとは?・基本的な問
Course Introduction - What are programming contests? - Introductory Problems
2データ構造・文字列
Data Structures and Strings
3探索問題
Search Problems
4動的プログラミング
Dynamic Programming
5動的プログラミング II
Dynamic Programming II
6グラフ I
Graph Problems I
7グラフ II
Graph Problems II
8数論問題
Math and Number Theoretical Problems
9幾何
Geometry Problems
10文字列
String Problems

教材

Steven Halim, Felix Halim, "Competitive Programming", 3rd edition.

参考書籍

Steven S. Skiena, Miguel A. Revilla "Programming Challenges", Springer, 2003
秋葉拓哉、 岩田陽一、 北川宜稔、『プログラミングコンテストチャレンジブック』

予備知識・前提条件

基本的なプログラミングの知識(コンパイル、ループ、if-then-elseの使い方など)[C,C++ or Java]
Basic programming concepts (Compiling, loops, if-then-else operators, etc.) [C, C++ or Java]

成績評価

教員メールアドレス

アランニャクラウス:caranha@cs.tsukuba.ac.jp

講義のWebページ

ホームページ/Course Website

オフィスアワー

オフィスアワーは特に定めないが、事前連絡をしてから訪問すること(メール又はMANABAフォーラム)。
Office Hours not defined. Students feel free to contact the professors for questions by e-mail or Manaba Forum.

備考

この講義では、授業が日本語で行い、配布資料やプログラミング課題は英語です(課題提出は日本語・英語どちらでも可)。
In this class, the lectures will be held in Japanese, and all Lecture Notes and Programming Assignments will be in English. The solutions for the programming assignments can be done in either English or Japanese

プログラミングができる1・2年次学生の受講も歓迎する。
1・2nd year students with programming knowledge also welcome.