マガジンのカバー画像

CS50 - 2023

13
ハーバード大学コンピュータサイエンス入門コースの準備、受講から合格まで
運営しているクリエイター

2023年8月の記事一覧

CS50 2023 - はじめに

私は長年にわたりIT業界でプロジェクトマネージャーとして活動してきました。特にWeb関連のプロジェクトでは、多数のサイト作成に関わり、様々なコードに触れる経験を得てきました。 しかし、私自身が直接コードを書くということはありませんでした。 コーディングは常にプログラマーに依存していました。 細かな修正が必要になった際には、都度インターネットで情報を調べて対応していましたが、一からコードを書いた経験はありませんでした。 リスキリングが注目を浴びる昨今、私も自身の学び直しの必

CS50 2023 - 基本情報と準備

各Weekの詳細に進む前に、CS50x(以下、CS50)の基本情報と開始前の準備について説明します。 基本情報CS50 CS50は、コンピューターサイエンス(Computer Science)の入門コースです。 コースはWeek0からWeek10までの11週間構成です。 毎週の課題提出は必須ではなく、自分のペースで学習できます。 講師はハーバード大学のDavid J. Malan氏です。 講義の長さは約2時間。長いのは2時間半ほどありますが、David氏の巧みな話術

CS50 2023 - Week0 Scratch

概要Week0では、コンピューターの基礎を学びます。 講義の主な内容は、バイナリー、アルゴリズム、擬似コード、そしてScratchについてです。 Scratch Scratchとは、マサチューセッツ工科大学で開発されたプログラミング学習用のツールです。 コードを書く代わりに、特定の役割を持ったブロックをドラッグ&ドロップで組み合わせることで、プログラムを作成できます。 LabWeek0にはLabはありません。 Problem Set 0Scratch 課題条件 Sc

CS50 2023 - Week1 C

概要Week1では、C言語の基礎を学びます。 講義の主な内容は、ソースコード、コンパイラ、Visual Studios、エスケープシーケンス、ヘッダーファイル、ライブラリ、条件分岐、変数、ループ、定数、コメント、擬似コードについてです。 基本的には、これまでにScratchでやってきたことを、今度はC言語を用いてコードで実行していくというイメージです。 Lab 1Population C言語を用いて、ラマの人口増加を予測するプログラムを作成します。 以下は、実際に私が

CS50 2023 - Week2 Arrays

概要Week2では、C言語の基礎をさらに深掘りします。 講義の主な内容は、プリプロセッシング、コンパイリング、アセンブリング、リンキング、デバッグ、配列、文字列、コマンドライン引数、そして暗号技術についてです。 Arraysは配列を意味します。 配列は、同じ型のデータをひとつの変数名でまとめて格納するデータ構造です。各データは、インデックスによって個別にアクセスできます。 例えば、C言語で整数の配列を宣言する場合、次のようになります。 int numbers[5] =

CS50 2023 - Week3 Algorithms

概要Week3では、アルゴリズムを学びます。 講義の主な内容は、リニアサーチ(線形探索)、バイナリーサーチ(二分探索)、バブルソート、セレクションソート(選択ソート)、マージソート、漸近記法、再帰です。 Lab 3Sort sort1、sort2、sort3という3つのバイナリファイルが用意されています。これに加え、様々な順序や行数の数字リストも提供されています。 sortファイルのソースコードを直接確認することはできませんが、数字リストをソートする速度を基に、それぞ

CS50 2023 - Week4 Memory

概要Week4では、メモリについて学びます。 講義の主な内容は、ポインター、セグメンテーション、動的メモリ割り当て、スタック、ヒープ、バッファオーバーフロー、ファイルI/O、画像です。 Lab 4 Week4のLabでは、以下の2つの中から1つを選んで提出します。 Smiley Volume どちらも難易度は同じです。 本ページでは、Smileyを取り上げます。 Smiley この課題では、画像の仕組みについて学びます。 helpers.c内にあるcoloriz