プログラミング通論

科目基礎情報

学校 熊本高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング通論
科目番号 CI1305 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 制御情報システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 Head First C(David Griffiths, Dawn Griffiths, O'Reilly Media, Inc) / Head First Python (Paul Barry, O'Reilly Media, Inc)
担当教員 嶋田 泰幸

到達目標

This course aims that students will be able to:
1) handle portions and structures.
2) make programs which use IPC (Inter-Process Communication).
3) make programs for multiprocessing and/or multithreading.
4) make programs in Python language.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
Pointers and structureStudents can write more complicated programs which utilize pointers and structure to handle data/informationStudents acquire knowledge about pointer and structure in C language. Moreover students can utilize simple programs which utilize pointers and structures.Students need to study simple programs which utilise pointers and structures.
Multiprocessing and MultithreadingStudents can write more complicated programs using system calls, and create some processes by calling fork( ).Students acquire knowledge about multi-processing and multi-threading in C language. Moreover students can utilize programs in the textbook using system calls and multiprocessing, and make simple programs which call system call or fork( ).Students need to study how to write programs in the textbook using system calls and multiprocessing, and make simple programs which call system call or fork( ).
Inter Process CommunicationStudents can write more complicated programs which communicate with other process.Students acquire knowledge about inter-process communication in C language. Moreover students can utilize programs of inter process communication in the textbook.Students need to study how to write programs of inter process communication in the textbook.
Python programmingStudents can solve some problems with Python programming.Students acquire knowledge about python programming. Moreover, students can write fundamental program in Python.Students need to study how to write program in Python.

学科の到達目標項目との関係

教育方法等

概要:
In the first half-term, this course provides an introduction and implementation of computer programming; C language.
C language is one of the most widely used computer language in the world and it's very useful for you to lean C language. This course covers pointer, structures, memory allocation, task management and interprocess communication program.
In the second-half, Python programming will be introduced and students will be able to make several simple Python programming. Currently, Python comes with many libraries and getting popular in various field, such as machine learning and AI. This course provides basic Python programming skills to students.
授業の進め方・方法:
Flipped teaching will be introduced in this subject. Learning video will be provided by uploading on Web server in advance of the class. Students have to access the web server and watch the video for self-learning. Only students who learned by watching the video can participate in the class.
During class, students have to discuss with friends/team-mates in order to solve problems that are given at the beginning of each class, and submit a report within the class.
注意点:
In order to understand contents of this course, it's very important for students to make as many programs as possible.
Every assignment has a hard deadline, usually 2 days past the original due date. No late submissions will be accepted after the hard deadline.
The students who fail to meet these requirements will be given additional assignments. If the students will not complete the assignments, the students will not earn credits.

Prescribed teaching hours : 60 hours a year

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 Introduction Students will be able to understand the basic concepts of programming in C.
2週 Memory, Pointers and Strings(1) Students will be able to understand similarities/differences between arrays and pointers. And, students will be able to make simple programs using pointers instead of arrays. Students will be able to know how to handle strings in C and use some built-in library functions.
3週 Memory, Pointers and Strings(2) Same as above.
4週 Structures, unions and bitfields(1) Students will be able to understand concept of structures, then will be able to use structures for handling data.
5週 Structures, unions and bitfields(2) Same as above.
6週 Dynamic Memory Allocation(1) Students will be able to know basic concept of linked list. Also, students will be able to know how to make data structure cope with flexible amounts of data by dynamically allocating memory on the heap.
7週 Dynamic Memory Allocation(2) Same as above.
8週 Dynamic Memory Allocation(3) Same as above.
2ndQ
9週 Advanced Functions Students will be able to write programs that utilise dynamic memory allocation.
10週 Inter-Process Communication Students will be able to let processes work together and communicate with each other.
11週 Processes and System Calls(1) Students will be able to create and control processes using system services.
12週 Processes and System Calls(2) Same as above.
13週 Threads(1) Students will be able to know how to create threads and how to use synchronisation mechanisms to protect the integrity of sensitive data.
14週 Threads(2) Same as above.
15週 Evaluation & 1st term summary
16週
後期
3rdQ
1週 Introduction of Python programming Students can know what Python is, what Python can do, why we study Python.
2週 Basic Python Programming(1) Students will be able to understand what variables, expressions and statements.
3週 Basic Python Programming(2) same as abovbe
4週 Functions and Modules(1) Students will be able to understand how functions works and how to utilise modules in Python.
5週 Functions and Modules(2) same as abovbe
6週 Conditionals(1) Students will be able to understand conditions and how to change the program behaviour depending on the outcome of the programs.
7週 Conditionals(2) same as abovbe
8週 Strings Students will be able to understand how to handle strings in Python.
4thQ
9週 Midterm report Students will be able to recap all topics they study from week 1 to week 8, and review the topics.
10週 Lists(1) Students will be able to understand what list is and how we use list in Python.
11週 Lists(2) same as abovbe
12週 Dictionaries(1) Students will be able to understand what dictionaries are, how to utilize them.
13週 Dictionaries(2) same as abovbe
14週 End of term report Students will be able to recap all topics they study from week 1 to week 13, and review the topics.
15週 Evaluation & Course summary
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前3,前5,前8,前9,前10,前12,前14,前15,後3,後5,後7,後8,後9,後11,後13,後14,後15
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前3,前5,前8,前9,前10,前12,前14,前15,後3,後5,後7,後8,後9,後11,後13,後14,後15
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3後3,後5,後7,後8,後9,後11,後13,後14,後15
分野横断的能力汎用的技能汎用的技能汎用的技能書籍、インターネット、アンケート等により必要な情報を適切に収集することができる。3
収集した情報の取捨選択・整理・分類などにより、活用すべき情報を選択できる。3
収集した情報源や引用元などの信頼性・正確性に配慮する必要があることを知っている。3
課題の解決は直感や常識にとらわれず、論理的な手順で考えなければならないことを知っている。3

評価割合

Quizzes and ExaminationReport合計
総合評価割合6040100
基礎的能力000
専門的能力6040100
分野横断的能力000