Coder Social home page Coder Social logo

lecture_c's Introduction

Lecture C

セットアップ

レポジトリcloneまで

  • GitHubアカウントの取得
    • GitHubにアクセスし、SignUpをおこなって、アカウントを作成してください。
  • Homebrewのインストール
    • Homebrewにアクセスし、ページに従ってインストールをしてください。
  • gitのインストール
    • ターミナル上で git --version を実行してバージョンが表示されていればgitはインストールされているのでスキップしてください
    • brew install git を実行してください。
  • GitHubに公開鍵を登録
    • GitHubのガイドに従ってSSHのKeyを登録し、使えるようにしてください。
  • レポジトリのclone
    • 任意の場所(ホームディレクトリなど)で git clone [email protected]:t-ichii/lecture_c.git を実行し、git repositoryをcloneしてください。

レポジトリのclone後

  • git branch の切り替え
    • mainブランチは作業では利用しないでください。 git checkout -b <開発を行う人を識別できる文字列>/base origin/<開発を行う人を識別できる文字列>/base (例: git checkout -b t-ichii/base origin/t-ichii/base)を実行し、ブランチを切り替えてください。
  • Docker Desctopのインストール
    • Docker Desktopのページからご自身の環境にあったDockerDesctopをインストールしてください。
  • image build
    • make image_build

開発の方法

make image_build を行ってDockerImageをBuildしておいてください。)

  • 下記の「演習問題の回答方法」に従って実行ファイルを作っておきます。
  • make run_image をおこなって、DockerImageを実行し、実行環境の中に入ります
  • DockerImageのbash上で cd src/practice_<章番号>/ をおこなって、先程作ったファイルが有ることを確認します。
  • gcc question.<章番号>.<問題番号>.c -o question.<章番号>.<問題番号> を実行し、コンパイルします。
  • コンパイルが成功したら、 ./question.<章番号>.<問題番号> を実行し、作成したプログラムが期待したどおりに動くか確認します。

ディレクトリ構成

  • Dockerfile: Cの実行環境を記述しているDockerfile
  • src/: Cコードを配置するところ(DockerContainer内に同期されます)

教材

進め方

  • 演習に参加する人のベースブランチはセットアップにある <開発を行う人を識別できる文字列>/base とする。
  • 演習に参加する前に git checkout <開発を行う人を識別できる文字列>/base && git checkout <開発を行う人を識別できる文字列>/practice_<章番号> を実行し、回答の準備をする。
  • 下記の「演習問題の回答方法」に従って回答ファイルを作成していく。
  • 回答ファイルを作成したら、 git add src/practice_<章番号>/*.c src/practice_<章番号>/*.txt && git commit -m 'commit question' を行う
    • gitのコミットに関しては、慣れていくうちにレクチャーするので、一旦最初の方法として上記を行う。
  • git push を行い、GitHub上に回答をアップロードする。
  • 回答をアップロードしたら、GitHub上にそのブランチをマージするためのPullRequestを作成する
    • baseを <開発を行う人を識別できる文字列>/base, compareを <開発を行う人を識別できる文字列>/practice_<章番号> としてPullRequestを作成する。
  • PullRequestを作成したら、t-ichiiに連絡してコードレビューを行う。問題なければ、PullReqeustをApproveしてマージをし、その演習問題を完了とする。

演習問題の回答方法

  • 第2章以降、各章末にある演習問題を自らのBranchにCommitしていく
    • Cのソースであれば、 src/ 以下に practice_<章番号>/question.<章番号>.<問題番号>.c という形でソースを作っていく。(例 src/practice_4/question.4.1.c
    • 文章による記述問題であれば practice_<章番号>/question.<章番号>.<問題番号>.txt で回答をしていく。

lecture_c's People

Watchers

Takeru Ichii avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.