Kの学習記録(東京通信大学)

東京通信大学に通うKのブログです。思ったこと感じたことをゆるく書いています。

C言語 リスト追加

C言語 リスト追加

情報マネジメント学部の名物科目、初級プログラミング。
初級と言っていますが、初級とは名ばかりの難しい科目と言われています。
2020年度から初学者コースという初心者向けクラスを
初めて導入した科目でもあるんですよね。

そんな科目を3学期に控えている今、
ちょっとでもC言語になじんでおかなければ!と思い、
隙を見てちょこちょこ事前学習をしています。

C言語自体得意ではないのですが
中でもリストが大の苦手です。
やってるうちに
この変数が何を指しているのか
自分が何してるのかわからなく・・・。
思えばはるか昔、C言語を初めて学ぼうとした時も
つまずいたのはポインタと構造体でした(遠い目
これがわかるようにならないとアルゴリズム云々の前に
スタートラインにも立ててないんですよね、きっと。

宣言して追加して表示するだけなのですが
動く最低ラインを何とかかけたので忘備録としておいておきます。
これが何も見ずに書けるように写コードガンバリマス。

 

//ライブラリ読込▽▽▽----------------------------------------------
#include <stdio.h>
#include <stdlib.h>
//ライブラリ読込△△△----------------------------------------------

//構造体作成▽▽▽----------------------------------------------
//typedefすると実際に使うときにlist_tで使えるようになる
typedef struct LIST{
  int value;
  struct LIST *prev;
  struct LIST *next;
}list_t;
//構造体作成△△△----------------------------------------------

//事前準備▽▽▽----------------------------------------------
//先頭に配置するダミーデータ作成
list_t dummy;

//常に先頭を示すポインタ作成
list_t *head = &dummy;

//関数宣言
void insert(int);
//事前準備△△△----------------------------------------------

//メイン▽▽▽----------------------------------------------
int main(void){
  int ans;
  //入力データを最後まで追加
  while( (scanf("%d",&ans)) != EOF ){
    insert( ans );
  }
  //リストを表示
  list_t *p = head -> next;
  while( p != NULL ){
    printf("%d\n",p->value);
    p = p -> next;
  }
}

//メイン△△△----------------------------------------------


//挿入部▽▽▽----------------------------------------------

void insert( int x ){
  //探し始める位置用のポインタ
  list_t *p = head;

  //挿入データ格納用
  list_t *new;

  //最後まで探すか、現在地のの数より挿入数値が大きくなったら終了
  while( p -> next != NULL && p-> next ->value < x ){
    p = p -> next;
  }

  //挿入データ用のスペースを確保する
  new = (list_t*)malloc(sizeof(list_t));

  //値を入れる
  new->value = x;

  //ポインタ書き換え
  new->next = p->next;
  p->next = new;

  return;
}

//挿入部△△△----------------------------------------------


参考にしたページ

第1回)リスト構造の概要
https://edu.clipper.co.jp/pg-2-40.html

第2回)リスト構造の構造体定義
https://edu.clipper.co.jp/pg-2-65.html

第3回)リストへの挿入
https://edu.clipper.co.jp/pg-2-66.html

第4回)リスト構造からの削除操作 delete
https://edu.clipper.co.jp/pg-2-67.html

 

1年1学期を終えて

初めての学期が終わりほっとしています。
今期は様子見も兼ねて易しめな科目を12単位取得しました。
入学前と実際のスケジュール差異と
1学期を終えた感想をつらつらと書いていきたいと思います。

入学前は平日のみ勉強する前提でこんなスケジューリングしてたんですよね。
↓↓↓以前書いた記事から持ってきました
【入学前に計画していた勉強時間】
 ・勉強する日:平日のみ
 ・起床~出勤準備までの30分
 ・通勤時間(朝)10分
 ・昼休み30分
 ・通勤時間(夜)10分
 ・帰宅後60分~180分
 1日:140分~260分(2時間~4時間)

 

実際はどうだったかというと・・・
平日だけでおさまらず土日もやりました。
1~2週目までは正直かなりきつかったです。
(ずっと座ってると目が痛くなったりお尻が痛くなったりで)
今回は変則的なお休みがちらほらありましたが
基本は土日祝休みのフルタイムで残業なしです。

本来なら1週間で1回分のんびりこなせば良いんですよね。
入学前に立てたスケジュールもそのつもりだったんです。
が、やることが残ってるという状態に耐えられず。。
結果、序盤ハイペースになってしまいました。
配信から1日足らずで全科目終わらせてしまう方もいて
ほんとすごいなと思います。

1学期記録(画像リンク)


時間(計) :124時間
日数(計) :30日

 

【学期を終えて思ったこと】
 試験について
  小テストのウェイトがかなり大きいと感じました(認定試験にも8問位出ました)
  認定試験は出題数が増え時間も短くなるので
  資料や小テストをさっと探せる位にまとめておくのが良いですね。
  遅刻せず小テストさえ真面目にこなしておけば大丈夫です。
  他には教授の出題の癖を把握しておくと慌てないで済むのかなと。

 学習内容について
  入学前は学習内容についていけるかという不安がありました。
  基本的に資料内+講義内の内容が問われるので
  問題なくついていける内容になっています。
  (一部科目を除く)
  専門科目も一部とったのですが教養に比べて密度が濃く難しく感じました。

 勉強時間について
  開始から1~2週は8回分ずつ配信され、思っていたよりかなーり忙しかったです。
  逆に3週目以降はどんどん楽になり
  8週目以降は特にやることもなく手持無沙汰に。

次回は15単位を予定しています。
3学期に入れる予定のプログラミングがきつそうなので
今のうちに単位数を稼いでおきたいところです。

授業開始前にやっておきたいこと スケジュール編

いよいよ、授業が始まりますね。
準備は万全でしょうか。
履修登録はしたけれどその後は何したらいいのかわからない」
そんな方向けの記事になります。

 

授業開始前にやっておきたいこと
・科目のシラバス確認して要注意科目を洗い出す
・勉強時間の算出
・学事暦と自分のスケジュールを確認
・大まかにスケジュールを立てる

はじまったらやっておきたいこと
・授業スライドのダウンロードまたは印刷
・小テストをメモしておく
・参考文献集め(大体の科目は不要)

科目のシラバスの確認

概要や授業内容はもちろんですが
よく確認していただきたいのは成績評価の部分です。
成績評価の中に「演習」や「レポート」「ディスカッション」と書いてある科目はありませんか?
これらは時間がすごくかかるかもしれない要注意科目です。
特にプログラミング演習系は完璧を目指すなら3単位~4単位分の時間が必要と言われています。
講義を受ける時間以外の時間確保をあらかじめしておき
時間がないときはやるか捨てるか早めの判断をしましょう。

勉強時間の算出について

公式には1単位あたり1回15分×4回+小テストと書かれていますが
実際は15分ぴったりには終わらないことがほとんどです。
なので安全マージンを取って1科目1回(4動画分)90分~120分とみて算出しましょう。
最低限、1週間に全科目1回ずつ(4動画分ずつ)やれればOKです。

単位数ごとの目安時間

6単位 12時間
7単位 14時間
8単位 16時間
9単位 18時間
10単位 20時間
11単位 22時間
12単位 24時間
13単位 26時間
14単位 28時間
15単位 30時間

学習プラン例

科目に必要な時間が算出出来たら
次は勉強にさける時間を考えておかないとですね。
早起きして朝勉強や移動時間中の勉強など
うまく日常に取り入れると継続しやすくなります。

10単位取得の方の学習プラン例。
 取得単位:10単位
 必要時間:週10時間~20時間+α
 平日集中タイプ(週5) 1日2~4時間
 土日集中タイプ 1日5~10時間
 バランスタイプ 平日1時間/休日3~8時間
 バランスタイプ 平日2時間/休日0~5時間
 こんな感じのプランになりますね。

参考までに私の学習プランを公開。
 取得単位:12単位
 必要時間:週12時間~24時間+α
 タイプ:平日集中
 1日×3科目×週4日
 週1でまとめと小テスト、課題作成を行い
 週2を予備日としました。

学事暦と自分のスケジュールを確認

配信期間は各回ごとに決まっています。
お休みだからがっつりやろうと思ったら配信されてないなんてことがあるかもしれません。
逆に繁忙期に入ってさっぱりやれなかったなんてことも…

スケジュールの立て方

スケジュール立てるのが苦手な方向けに
スケジュールの立て方をご紹介します。

1.達成したい目標を考える。
2.目標達成に必要なことと、かかる時間を書き出す。
  最低限なら動画と小テストでしょうし
  しっかり学びたいなら予習復習があるといいですし
  いい成績をというのであればテスト対策の時間も必要ですよね。
3.いつまでに何を終わらせなければならないのか逆算する。

4.ざっくりと全体の予定を立ててやれない日に×をつける。
5.1週間単位でやることを書き込む
6.1週間単位の予定を細分化して1日の予定として書きこむ。
って感じに組んでいくと良いのかなって思います。

学生の頃にあった時間割を作ってみてもいいですね。
気を付けるのはあまりぎゅうぎゅうに詰めすぎないことです。
スケジュールを組んだところで
突発的なイベントが入ったり体調を崩してしまったりしまうことが往々にあります。
実際やってみたら思いのほか時間かかったりもよくあります。
8割位の量にしておいたり予備日を作っておくのを激しく推奨します。
遠くの予定は大まかにだけ立てて後から調整がきくようにしておくと
リスケが必要になった時にも対応できて良いですね。

長くなってきたのでここまでにします。
うまくスケジュールを組んで計画的に学習していきましょうb
ここまで読んでいただきありがとうございました。

新入生向け新学期までにやっておきたいことまとめ

オリエンが配信されましたね。
今年は対面はなくオンライン配信のみになってしまって残念です。
新学期始まる前に具体的に何したらいいの?
という新入生の方向けにやっておきたいことを優先度別にまとめました。

 

 

やっとかないとやばい!!優先度高

  ・マスタ画像登録(@Campus>マスタ画像登録より)
 ・本人確認※2020年度は5月まで猶予あり
 ・履修登録期間内に1学期の履修登録を行う
 ・@Room、カメラ、マイクの動作確認
 ・学事暦の確認
 ・オリエン受ける & 学生要覧に目を通す(事前知識がある人は不要)

 特に時間かかるのは本人確認と履修登録ですね。
 本人確認しないと学生証の発行と単位の認定がされません。(授業は受けられる)
 最低限ここまでやっておけば大丈夫。
 履修登録(4/1~)までに何をとるか決めときましょう。

 

できればやっておきたい。優先度中

 ・1年分の履修仮登録
 ・学校用Gmailを受信できるようにする
 ・@Room(授業動画も見れる。あると便利)
 ・OFFICE365のインストール(やらないとダメな授業がでてきます)
 ・初級プログラミングのクラス登録(情マネ)

 緊急性はそこまで高くないけれどそのうちやらなきゃいけないことをリストアップ。
 そのうちやらなきゃならないので忘れないうちにやっておきましょう。
 初級プログラミングのクラス登録は何もしなくてもその学部っぽい振り分けになってます。
 (振り分け:情報システムモデル→標準コース、それ以外のモデル→初学者コース)

追記:

 @Campusでプロフィール情報変更するまでは入学時のアドレスに届くそうです。
 1学期時点で1年分の履修を仮登録できます。
 後から修正可能なので予め1年分登録しておいたほうが良いそうです。

 

暇ならやっておきたい。優先度低

 ・シラバスで授業内容の確認
 ・お試し授業をみる
 ・Libraryをみる
 ・Yammerアプリのインストール(学校内のSNS)
 ・Skypeアプリのインストール(AAに電話で相談したいときに使います)
 ・4年分の履修計画を立てる
 ・プログラミング超入門で授業シミュレーション

 授業始まるまで待ちきれないという方におすすめ。
 シラバスで内容確認して「いつ」「なにをやるか」をざっくりと計画しておくと楽です。

 

 

 

メール設定(Gmailの設定)

 メアドは@Campusのプロフィールで確認可能
 パスワードは@Campusにログインするパスワード
 手順は@Campus内の各種証明書・資料にあり。

 

履修プランの立て方

 必修と資格必須を選ぶ
 ↓
 教養科目を中心に選ぶ+1年次必修
 ↓
 標準履修年次にそって組むと楽
 連番物は1〜2学期に
 3学期〜4学期のものは3学期
 単体は4学期
 でバランス見つつポチポチ埋めました
 ※プログラミング初学者は最初に情報基礎1、2を受けてから初級プログラミングを受ける
 ※演習科目は他の科目の数倍時間がかかることを見越して組む
 ↓
 微調整
 ↓
 シラバスとお試し授業確認しながらチェック
 ↓
 AAに相談(人間福祉学部の方はやっといた方がいいかも)

 プラン例
 暫定履修プラン(公開用) - Google スプレッドシート

 

プログラミング超入門で授業シミュレーション

 単位こそ付きませんが実際の講義だと想定してやってみましょう
 ・@Roomの操作に慣れることと
 ・予定した勉強法やスケジュールでやれるかどうか
 ・資料の印刷やダウンロード方法を確認する
 がチェックポイント。
 足りないものが見えてくるかもしれません。

入学式やオリエンテーションに行くべきか

オンライン完結の大学も増えてきました。
わざわざ外出しなければならない
入学式やオリエンテーションなどの行事は
ちょっと面倒くさくて
行くべきなのか悩んじゃいますよね。

 

結論から言うと間違いなく行くべきです。
通信制は人との関わり合いが希薄になりがちで
それこそこういった時でないと会う機会はありません。
どのような方が入学するのか見ておくと不安も和らぎます。
見てないと、なんかみんなすごそうな感じがするんですよ!
んでも実際はごくごく普通な方々が多いですよね。
年代も様々ですしね。
すごく年配の方もいらっしゃって
あの年代の方が頑張ってるなら私も!ってなったりします。

 

大学の先輩もおっしゃっていたのですが
通信制大学は通学生と違って拘束力が弱いです。
やるもやらないも自分次第なので
学ぶ意思がないと続けることができないんですよね。。
通学生なら取り合えず毎日いけばなんとかなったりしますが
通信はそうはいきません。
困ったときに聞ける環境や
いかに孤独にならずに助け合える環境を作れるかどうかが
継続のカギになります。

 

なんかこう書くとお友達作りましょうに聞こえるかもなんですけど
そういうわけでもないんですよ。
まぁできたらできたで良いと思いますが。
ただ知ってほしいんです。
自分と同じ不安を抱えた新入生がいっぱいいるってことを。
それだけで行く価値はあると思います。

ふんわりと履修計画作成ツール

履修計画を立てるときに
1つ1つシラバス見るのが面倒で
ざっくりと科目選択できたらなーと思って作りました。
学部共通科目+情報マネジメント科目のみ対応。
デフォルトで必修科目と社会調査士にチェックがついています。

 

http://toumbx.html.xdomain.jp/tool/tou_select_subject.html

 

【使い方】
取りたい科目を選んでチェック
上部にあと何単位必要か表示
上級実務、上級他は上級情報処理士に必要な単位が足りているか
社会調査は社会調査士に必要な単位が足りているか

学期上限何単位とれるのか入力して
プラン作成でざっくりとプラン作成
プランの科目名からも詳細表示可能

設定保存ボタン・設定読込ボタン・設定削除ボタン
それぞれ科目チェック状態の保存・読込・削除を行う

資格の取り方まとめ

 履修登録を考えるにあたり
資格取得条件を再確認しようと思った。
まとめたのが下記の表である。

 

【項目の意味】
 上級=上級情報処理士に必要な単位数
 一般=情報処理士(N)に必要な単位数
 必修=情報マネジメント学部での必修単位数
 @=上級取得するために必要な単位数
 +社会調査=社会調査士も取得する場合、それ以外で必要な単位数

 f:id:lilacmbx:20200210162835j:plain

 

資格について

情報処理士について


・情報処理の基本的な実務能力を証明する資格
・全国大学実務教育協会が認定する民間のビジネス資格である
・取得難易度、認知度ともに低い。
・申請費用7,000円
・スクーリング不要

 

社会調査士について

・社団法人 社会調査協会が認定する資格である
・社会調査に関する調査・分析能力・問題の改善提案などができる
・必要な科目を大学で履修し、卒業時に申請すれば取得可能
・上位資格に「専門社会調査士」がある(要大学院)
・取得難易度、認知度ともに低い。
・認定費用16,500円
・スクーリングが必要

 

所感

どちらの資格も、所定の科目を履修すれば良い。
取得難易度、認知度ともに低い。
就職・転職には不向きである。(認知度の低さを利用して話のネタ位にはなるかもしれないが)
取得したら何ができる、何に使えるといったたぐいの資格ではないが
普段学ばない科目を学ぶ機会というのはそうそうないのではなかろうか。
記念程度に取るのはアリかもしれない。

 


 

何を取ればいいのか

情報処理士(N)を目指す場合

必修科目のみで資格取得条件を満たすため
情報マネジメント学部であれば全員取得可能

 


上級情報処理士を目指す場合

必須科目だけでは若干足りない。
総合的実践実務から2単位、
Ⅰ群、Ⅱ群、Ⅲ群のどれかから3単位必要になる。

 

総合的実践実務は以下の4科目。
すべて実習科目なので注意すること。
インターンシップBは2単位なのでそれだけで条件を達成できる。
 ・社会調査演習Ⅰ(1単位-4年次)
 ・社会調査演習Ⅱ(1単位-4年次)
 ・インターンシップA(1単位-3年次)
 ・インターンシップB(2単位-3年次)

 

Ⅰ群、Ⅱ群、Ⅲ群
 コミュニケーション論A(1単位-1年次-A群)
 コミュニケーション論B(1単位-2年次-A群)x
 ジェンダー論(1単位-1年次-A群)
 社会と環境(1単位-2年次-A群)
 現代社会論(1単位-1年次-B群)x
 社会心理学概論A(1単位-1年次-B群)o
 社会心理学概論B(1単位-1年次-B群)x
 社会と倫理(1単位-1年次-D群)o
 日本語文章論(1単位-1年次-D群)o
 プレゼンテーションA(1単位-1年次-D群)
 プレゼンテーションB(1単位-1年次-D群)o
 知的生産の技術(1単位-1年次-D群)
 現代社会の課題と探究A(1単位-1年次-D群)
 現代社会の課題と探究B(1単位-1年次-D群)
 現代社会の課題と探究C(1単位-1年次-D群)x
 ボランティア論(1単位-1年次-キャリア形成)x
 キャリアデザイン(1単位-1年次-キャリア形成)o
 アカデミックライティング(1単位-1年次)
 国際政治と情報マネジメント(1単位-3年次)o
 社会調査演習Ⅲ(1単位-4年次)
 社会調査演習Ⅳ(1単位-4年次)

 


上級情報処理士+社会調査士を目指す場合

社会調査士を取得する過程で
下記の科目も履修するので
Ⅰ群+Ⅱ群+Ⅲ群のどれかから1単位履修すれば良いことになる。

総合的実践実務
 社会調査演習Ⅰ(1単位)
 社会調査演習Ⅱ(1単位)

Ⅲ群
 社会調査演習Ⅲ(1単位)
 社会調査演習Ⅳ(1単位)

 


1単位だけなので
「気づいたら終わってた・・・」
ということは大いにあるだろう。

 

プレゼンテーションA(1単位-1年次-D群)
プレゼンテーションB(1単位-1年次-D群)o
日本語文章論(1単位-1年次-D群)o
アカデミックライティング(1単位-1年次)
知的生産の技術(1単位-1年次-D群)
社会と倫理(1単位-1年次-D群)o
コミュニケーション論A(1単位-1年次-A群)
コミュニケーション論B(1単位-2年次-A群)x
ジェンダー論(1単位-1年次-A群)
現代社会論(1単位-1年次-B群)x
社会心理学概論A(1単位-1年次-B群)o
社会心理学概論B(1単位-1年次-B群)x
現代社会の課題と探究A(1単位-1年次-D群)
現代社会の課題と探究B(1単位-1年次-D群)
現代社会の課題と探究C(1単位-1年次-D群)x
ボランティア論(1単位-1年次-キャリア形成)x
キャリアデザイン(1単位-1年次-キャリア形成)o
社会と環境(1単位-2年次-A群)
国際政治と情報マネジメント(1単位-3年次)o

 


まとめ

情報処理士(N)は情報マネジメント学部なら誰でも取れる
上級処理士は+4~5単位取得すれば良い。
社会調査士を目指す場合は+1単位