プログラミング〈新〉作法 1. はじめに

1.2K Views

March 10, 25

スライド概要

- プログラミングに必要な知識とは
- 本書の構成
- プログラマに伴走する生成AI
- コーディング環境の導入

profile-image

機械学習や音声認識に関する書籍を執筆しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

プログラミング〈新〉作法 ~これからプログラムを書く人のために ~ 1. はじめに プログラミングに必要な知識とは 本書の構成 プログラマに伴走する生成AI コーディング環境の導入 1

2.

1.1 プログラミングに必要な知識とは 「プロとしてプログラムが書ける人」に求められる能力が変わった 従来 C言語・Java・Python・JavaScript などの中から1つ言語を選んで学ぶ その後に,組み込み・web アプリケーション・データサイエンスなど, それぞれの応用分野で流行のライブラリやフレームワークの使い方を身 につける 現在(VUCA の時代) これまであまり経験してこなかった事態に対して,迅速な対応が可能な 情報技術を選択 生成AIの支援を受けながら設計・コーディング・テストなどを行う 2

3.

1.1 プログラミングに必要な知識とは 専門特化の時代からVUCA-生成AIの時代へ Python pandas seaborn JavaScript HTML CSS さまざまな 選択肢 Java SQL ⽣成AI ? web データサイエンス 専⾨に特化した時代 エンタープライズ ?? ??? 新しい問題 -⽣成AIの時代 VUCA 3

4.

1.1 プログラミングに必要な知識とは 生成AIを用いたプログラミング 求められている仕様を適切な粒度で正確にプロンプトとして記述する 生成されたプログラムがその仕様に従っているかを判断する 適切なテストや修正を行う 本書が目指す「プロとしてプログラムが書ける人」 問題を正しく理解して,適切な解法を選択できること 生成AIを使いこなしながら,その時点でもっとも信頼されている解決法を用 いた実装が行えること 4

5.
[beta]
1.2

本書の構成

本書の全体像

VSCode

⾼⽔準化
#include <stdio.h>
int main(void)
{
int amount;
int price =
150;
...
}

C

オブジェクト
指向
関数型

サポート

スクリプト⾔語

OS

⾔語

動作原理

main:
.LFB0:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
...

アセンブラ

JavaScript

マルチパラダイム
+
安全性‧⾼性能 Rust

機械語
メモリ

CPU

ハードウェア

5

6.

1.3 プログラマに伴走する生成AI 生成AIによる対話的な支援 Code Interpreter プロンプトで与えた仕様に従ったコードを生成し,その実行結果を応答 の一部として返す 問題解決ステップの一部としてプログラムを生成し,その実行結果を問 題解決ステップに組み込むという使い方ができる Artifacts コード生成のための対話と生成物であるコードを分離して管理し,コー ド実行結果のプレビューを行う プレビュー対象は (1) 固定出力系(Python, Markdown, SVG, mermaid),(2) webサイト(HTML+CSS+JavaScript),(3) React コン ポーネント など 6

7.

1.3 プログラマに伴走する生成AI 生成AIを活用したプログラミングのイメージ Table prompt 1 Answer sentences internet code プレビュー prompt 2 Answer sentences prompt 1 ⽣成 Answer sentences code code prompt 2 Answer sentences (1) Code Interpreter の実⾏イメージ 修正 (2) Artifacts の実⾏イメージ 7

8.
[beta]
1.3

プログラマに伴走する生成AI

生成AIはプログラミングの学習および開発段階で活用できる
不明な命令‧関数等の質問∕回答
#include <stdio.h>
int main(void)
{
int amount;
const int price = 150;
printf("How many?: ");
scanf("%d", &amount);
printf("Total : %d yen\n",
...
return 0;

⽳埋め問題
の作成‧説明
r1 = rnew;
r2 = x/r1;
rnew =
printf(
, r2, ...
...

設計

UI

コード⽣成
def square_root(x, eps=1.0E6):
rnew = x
while True:
r1 = rnew
r2 = x/r1

バグ修正
テスト⽣成
コード補完

}

勉強段階

開発段階
8

9.

1.4 コーディング環境の導入 オンライン実行環境 paiza.io 本書で説明するすべてのプログラミング言語の基本部分が実行可能 メニュー表示が日本語で,ユーザ登録なしでも利用可能 各言語の playground (専用でないものも含む) C言語 : Python Tutor (https://pythontutor.com/) Java : The Java Playground (https://dev.java/playground/) Elixir : Replit (https://replit.com) Rust : Rust 公式 playground (https://play.rust-lang.org/) Python : Google Colaboratory JavaScript : CodePen (https://codepen.io/), TS Playground 9

10.

1.4 コーディング環境の導入 ローカルでのコーディング環境 : Visual Studio Code 10

11.

1.5 まとめ の時代には,さまざまなプログラミング言語に通じることで,解決方法の選 択肢を増やすことが必要となる 本書では,C言語から始めてさまざまなプログラミング言語を紹介しながら,プロ グラミング全般に必要な幅広い知識の基礎的な部分の習得を目指す 生成AIは副操縦士の役割を果たし,プログラマの伴走者として活躍する プログラミングの勉強を支援するさまざまなオンライン環境やローカル環境があ る VUCA 11