シラバス参照

講義概要/Course Information
2024/06/20 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
情報処理演習第二
英文授業科目名
/Course title (English)
Information Processing ExerciseⅡ
科目番号
/Code
FGN401a FGN401b FGN401c FGN401d FGN401e FGN401f FGN401g FGN401h FGN401i FGN401j FGN401k FGN401m FGN401n FGN401p FGN401r
開講年度
/Academic year
2024年度 開講年次
/Year offered
2/3/4
開講学期
/Semester(s) offered
後学期 開講コース・課程
/Faculty offering the course
情報理工学域
授業の方法
/Teaching method
演習 単位数
/Credits
2
科目区分
/Category
専門科目
開講類・専攻
/Cluster/Department
情報理工学域
担当教員名
/Lecturer(s)
中井 日佐司
居室
/Office
E2-211
公開E-mail
/e-mail
nakai@fedu.uec.ac.jp
授業関連Webページ
/Course website
https://www.edu.cc.uec.ac.jp/https/fedu/IPEX2/html/
更新日
/Last update
2024/03/13 13:09:25 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標(2,000文字以内)
/Themes and goals(up to 2,000 letters)
コンピュータの進歩によってプログラムに対する価値が変り始めました。以前
は、「より速く実行でき、より小さいメモリで動く」、つまり、コンピュータ
に負荷をかけないより軽いプログラムを書くことが技能として重要でした。近
年では、CPUの高速化、メモリの大容量化によってこの軽さよりも、「より分
かりやすく、再利用の可能な」人間が利用する情報としてプログラムが評価さ
れるようになりました。
    
この授業では、以上のような事情をふまえて、(1)情報処理演習第一で収得し
たプログラミングに関する知識を深め活用するすること、(2) コンピュータの
ためではなく、他の人に自分のアイディアを伝える表現としてのプログラム能
力を高めること、を学びます。なお、プログラムに用いる言語はC言語です。
また後半のプログラム制作では、仕様の策定、プロトタイププログラミング、
テスト、デバッグ、リリースという一連の作業を体験し、問題の分析と解決能
力を高めることを目標にしています。

Advances in computing have begun to change the value of the
program. In the past, it was important to write programs that "ran
faster and used less memory", in other words, lighter programs
that did not overload the computer. In recent years, with faster
CPUs and larger memory capacity, programs are no longer valued for
their lightness, but rather for their "easier to understand, more
reusable" information that can be used by humans.  

In this class, students learn to (1) deepen and utilise the
programming knowledge acquired in Information Processing Exercise I
and (2) improve their programming ability not for the computer but as
an expression to convey their ideas to others. The language used for
programming is C.

In the 'programme production' section, which takes place after
the 10th lesson of this class, students experience a series of
tasks such as specification, prototype programming, testing,
debugging and release, with the aim of improving their
problem-analysis and problem-solving skills.



前もって履修
しておくべき科目(1,000文字以内)
/Prerequisites(up to 1,000 letters)
情報処理演習第一、またはこれに相当する授業。
Information Processing Exercise I or equivalent.
前もって履修しておくこ
とが望ましい科目(1,000文字以内)
/Recommended prerequisites and preparation(up to 1,000 letters)
なし。
None.
教科書等(1,000文字以内)
/Course textbooks and materials(up to 1,000 letters)
教科書
なし。配布するプリントをつかって授業を行う。

参考書
[1] Steve Oualline 「C 実践プログラミング」第三版(オライリー・ジャパン)
[2] Neil Matthew and Richard Stones 「Linux プログラミング」(SOFT BANK Publishing)
その他、自分にあったC言語の本(授業で利用したもの、または、母国語で書かれたものなど)を辞書代わりに手元においておくことをお勧めします。
    
Textbook: None. Handouts will be given in class.
References:
    [1] Steve Oualline "C Practical Programming", 3rd edition (O'Reilly Japan)
    [2] Neil Matthew and Richard Stones "Linux Programming" (SOFT BANK Publishing)
It is recommended that you keep other C books that suit you
(e.g. those used in class or written in your native language) on hand as a dictionary.
授業内容と
その進め方(2,000文字以内)
/Course outline and weekly schedule(up to 2,000 letters)
    授業の前半は講義、後半は講義のテーマに関する演習を行います。講義の内容は以下の通りです:
    
    リストプログラムの作成
        第一回 「ポインタの応用」 関数を指すポインタ---関数=データ(?)
        第二回「構造体とポインタ」構造体を指すポインタ
        第三回「リンクドリスト」無限につながるリスト形式
        第四回「ファァイル入出力(1)」ライブラリをもちいたファイル入出力
        第五回「ファァイル入出力(2)」システムコールを用いたファイル入出力
        第六回「リストプログラム作成のの実例(1)」データ構造の定義
        第七回「リストプログラムの作成の実例(2)」機能の追加---ソート、データ削除
        第八回「リストプログラムの作成の実例(3)」プログラム実行時のオプション設定
        第九回「リストプログラムの作成の実例(4)」プログラムのテスト方法、デバッグの方法
    プログラム制作実習    
     第十回「プログラム制作の要件」共有できるプログラムを制作するための要件、予備調査、候補選定
     第十一回「予備仕様書作成」候補の中から制作するプログラム決定、予備仕様書作成
     第十二回「コードアウトライン作成」機能に名前を付ける、プロトタイプ(機能限定プログラム)作成
     第十三回「機能を関数に変換する」
     第十四回「プログラムの動作テスト」コンパイル、予備仕様書に基づいたテスト
     第十五回「制作発表会」

    In one class, the first half is a lecture and the second half is an exercise.
    The content of the lectures is as follows:
    Creating list programs
        1. "Applications of pointers" Pointers pointing to functions --- function = data(?)
      2. "Structures and pointers" Pointers pointing to structures
        3. "Linked lists" Infinitely linked list formats
        4. 'File input/output (1)' File input/output with libraries
        5. 'File input/output (2)' File input/output using system calls
        6. 'Examples of creating list programs (1)' Defining data structures
        7. 'Examples of creating list programs (2)' Adding functions --- sorting, deleting data
        8. 'Examples of creating list programs (3)' Setting options when executing programs
        9. 'Examples of creating a list program (4)' Methods of testing and debugging programs

    Program production practice    
     10. 'Requirements for programme production' Requirements for producing programs that can be shared, preliminary research and candidate selection
     11. 'Preliminary specification creation' Deciding which programme to create from among the candidates, creating preliminary specifications
     12. 'Code outline creation' naming functions, creating prototypes (function-limited programs)
     13. 'Convert function to function'
     13. "Testing the operation of the program" Compilation, testing based on preliminary specifications
     15. "Production presentation"

実務経験を活かした
授業内容
(実務経験内容も含む)
/Course content utilizing practical experience
授業時間外の学習
(予習・復習等)(1,000文字以内)
/Preparation and review outside class(up to 1,000 letters)
プログラミング演習科目に関する復習に重点を置くこと.
成績評価方法
および評価基準
(最低達成基準を含む)
(1,000文字以内)
/Evaluation and grading
(up to 1,000 letters)
[評価方法] 毎回の課題60%+最終課題40%で評価します。
[最低達成基準]
    1) 「構造体をさすポインタ」について図や例を用いて説明できる。
    2) このポインタを使ったリストプログラムを指示に従って変更できる(かならずしも動作する必要はない)。
    
なお、技巧の限りを尽くし、構成のない難解なプログラムよりも、単純な
手法を使った構成がはっきりしているプログラムをこの授業ではより良く
評価します。また、結果として課題のプログラムが動作しなくても、動作
しない原因の分析や論理的な推測を報告することによって評価が高くなり
ます。
    
[Assessment method.]  60% of each assignment + 40% of the final
assignment.
[Minimum achievement criteria] Students should be able to
    1) explain 'pointers pointing to structures' with diagrams and examples and
    2) modify a list programme using this pointer according to the instructions (it does not necessarily have to work).
    
Note that this class will assess programs that use simple
techniques and have a clear structure better than difficult
programs with no structure, which are full of tricks and no
structure. Even if the resulting programme does not work, it will
be assessed more highly if you report an analysis of the cause of
the non-working or a logical inference.



オフィスアワー:
授業相談(1,000文字以内)
/Office hours(up to 1,000 letters)
火〜金の昼休み木・金曜日4,5限.他の時間でも都合がつけば相談に応じます.
Tuesday to Friday lunchtime, Thursdays and Fridays, 4th and 5th
periods. Other times can be arranged if convenient.

学生へのメッセージ(1,000文字以内)
/Message for students(up to 1,000 letters)
プログラムは、話を聞いているだけでは「絶対に」作る事はできません。手
と頭を使って、知識とともに、プログラミングの「基礎体力」も鍛えましょう。

Programs can "never" be created by just listening to what is being
said. You must use your hands and brain, let's develop the "basic
physical strength" of programming as well as knowledge.    


その他
/Others
なし。
None.
キーワード
/Keywords
プログラミング、C言語、構造体、ポインタ、リスト
Programming, C, structures, pointers, lists