少儿学习编程有什么意义?

少儿学习编程有很多意义,主要体现在以下几个方面:

1、培养编程思维能力

编程思维(也叫计算思维)是一种解决问题的思维方式,它强调的是把问题分解成更小的部分,然后逐个解决。编程思维的核心是抽象模块化自动化。在学习编程的过程中,孩子可以练习如何运用编程思维来解决问题,孩子需要理解问题、拆解问题、抽象问题、设计解决方案、实施方案等一系列步骤。这种思维方式强调从问题到解决方案的转化过程,培养了孩子的逻辑思维和分析问题的能力。

这可以帮助孩子提高解决问题的能力,并为未来的学习和工作打下基础。

2. 培养逻辑思维能力

编程是一项需要严谨逻辑思维的活动。在学习编程的过程中,孩子需要将问题分解成更小的部分,并按照一定的逻辑顺序进行解决。这可以帮助孩子锻炼逻辑思维能力,提高解决问题的能力。

3、了解计算机的工作原理

在编程过程中,孩子需要与计算机进行交互,理解计算机的输入、处理和输出过程。通过编程学习,他们可以深入了解计算机的工作原理、内部结构、运行方式等,从而更好地理解计算机和程序的原理和运行方式,更好的掌握信息技术。

4、掌握基本的编程工具和技术,为将来发展打下基础

编程是一项重要的技能,在未来的社会中将越来越重要。孩子通过编程学习可以掌握各种编程语言、开发工具和技术,如Python、Java、HTML等。这些工具和技术可以帮助孩子更好地应用计算机和信息技术,开发软件、设计网页、进行数据分析等。通过学习编程,孩子能够更加灵活地运用计算机和信息技术,并具备进一步深入学习和发展的基础。

5、锻炼问题解决能力

在编程过程中,孩子会遇到各种问题,如代码错误、逻辑错误等。他们需要通过分析问题、追踪错误来源并进行修正来解决问题。这个过程培养了孩子的问题排查和解决能力,使他们能够更熟练地运用计算机和信息技术来解决实际问题。

6、培养创造力和想象力

编程可以为孩子提供一个自由发挥创造力和想象力的平台。孩子可以利用编程语言来创造各种游戏、动画、音乐等作品。这可以帮助孩子提高创造力和想象力,激发孩子的学习兴趣。

7、培养孩子专注细心的能力

编程学习非常考验孩子们的专注力,因为少了一个符号都可能导致程序混乱,这有助于培养孩子们的专注和细心。

8、培养坚韧不拔的精神

编程常常需要长时间的实验和尝试,孩子在编程中往往会遇到各种各样的问题,需要坚持不懈地解决问题,这可以培养孩子的耐心和毅力,让他们在未来的学习和生活中更加坚韧不拔。

9、培养的团队合作和沟通能力

在编程过程中,孩子可以与其他同学或者编程社群进行合作、交流和分享。通过与他人的合作和互动,孩子可以学习倾听他人的意见、提出自己的观点,并协作解决问题。这样的经历不仅培养了孩子的团队合作和沟通能力,还培养了他们的社交和表达的能力。

10、提高学习成绩

研究表明,学习编程可以帮助孩子提高数学、科学等学科的成绩。这是因为编程可以帮助孩子更好地理解抽象的概念,并学会用逻辑思维来解决问题。

11、增强自信心和自主学习能力

成功编写和运行程序会给孩子们带来成就感和自信心,激发孩子对学习的兴趣。同时,编程也是一种自主学习的活动,鼓励孩子们主动探索和学习新的知识。

总结

具体来说,通过编程学习,孩子可以培养编程思维,提高逻辑思维能力和解决问题的能力,掌握基本的编程工具和技术,了解计算机和软件的工作原理,培养创造力和创新能力,以及发展团队合作和沟通能力,提高学习成绩,增强自信心。这些能力将使得孩子更熟练地运用计算机和信息技术,并为他们未来的学习和生活提供更多的可能性和机遇。

一些少儿学习编程的建议

  • 选择适合孩子年龄的编程语言和课程
  • 注重培养孩子的兴趣和学习积极性
  • 鼓励孩子进行创造性编程
  • 提供必要的帮助和指导

什么是编程思维?简化问题的艺术

1、编程思维

编程思维 不是编写程序的技巧,而是一种解决问题的思维方式,它强调的是把问题分解成更小的部分,然后逐个解决。编程思维的核心是抽象模块化自动化

  • 抽象 是指将问题简化为更基本的概念。例如,在编写一个计算两个数之和的程序时,我们可以将问题抽象为“将两个数字相加”。

  • 模块化 是指将问题分解成更小的部分。例如,在编写一个绘制正方形的程序时,我们可以将问题分解为以下几个步骤:

    • 绘制一条线
    • 旋转 90 度
    • 再绘制一条线
    • 再旋转 90 度
    • 重复步骤 1 到 4,直到绘制完成
  • 自动化 是指使用计算机程序来解决问题。例如,在编写一个计算两个数之和的程序时,我们可以使用计算机程序自动完成计算过程。

2、编程思维的意义

编程思维是一种重要的解决问题的能力。它可以帮助我们提高解决问题的能力、创造力和效率。编程思维可以应用于各种领域,包括计算机科学、工程、数学、科学、商业和日常生活。

学习编程思维可以帮助我们提高解决问题的能力、创造力和效率。以下是一些学习编程思维的好处:

  • 提高解决问题的能力:编程思维可以帮助我们更好地理解问题,并将问题分解成更小的、可管理的部分。这可以帮助我们更轻松地解决问题。
  • 提高创造力:编程思维可以帮助我们以新的方式思考问题。这可以帮助我们找到更具创造性的解决方案。
  • 提高效率:编程思维可以帮助我们更有效地解决问题。这可以帮助我们节省时间和精力。

学习编程思维可以帮助我们更好地应对未来的挑战。在当今世界,计算机和信息技术在各个领域都发挥着重要作用。学习编程思维可以帮助我们更好地理解和利用计算机和信息技术来解决实际问题。

3、编程思维的要素

编程思维可以分解为以下几个要素:

  • 问题分解:将一个复杂的大问题拆解成更可执行、更好理解的小步骤。
  • 模式识别:识别问题中相似模式和重复性(找出规律)。
  • 抽象:将问题简化为更基本的概念(聚焦最重要的信息,忽视无用细节)。
  • 算法设计:设计一步一步的解决路径,解决整个问题(设计路径)。
  • 代码实现:使用编程语言将算法实现为计算机程序(实现设计)。

4、编程思维的应用

编程思维不仅适用于编程和软件开发领域,也适用于生活和工作的各种问题。它强调逻辑思考和问题解决的重要性,有助于提高解决问题的效率和效果。

编程思维可以应用于各种领域,包括:

  • 计算机科学:编写计算机程序、设计算法、开发软件系统
  • 工程:设计产品、建造系统、解决工程问题
  • 数学:解决数学问题、进行数学建模、开发数学理论
  • 科学:进行科学研究、分析数据、开发科学模型
  • 商业:制定商业策略、解决商业问题、提高运营效率
  • 日常生活:安排时间、管理任务、做出决策

5、学习编程思维

学习编程思维可以帮助我们提高解决问题的能力、创造力和效率。以下是一些学习编程思维的方法:

  • 学习编程语言:学习编程语言可以帮助我们理解计算机如何思考和工作。
  • 参加编程课程:参加编程课程可以帮助我们学习编程思维的基础知识和技能。
  • 阅读编程书籍和文章:阅读编程书籍和文章可以帮助我们了解编程思维的理论和实践。
  • 练习解决编程问题:练习解决编程问题可以帮助我们提高应用编程思维的能力。

总结

编程思维是一种重要的解决问题的能力。它可以应用于各种领域,可以帮助我们提高解决问题的能力、创造力和效率。

[注]信息主要来源:谷歌 Gemini

AI训练没有GPU独显?教你使用魔搭免费提供的阿里云端 cuda GPU

魔搭 笔记本中,可免费使用阿里云提供的AI计算资源:100小时免费的GPU计算资源,长期免费的CPU计算资源。

提供资源的配置参数

1
2
3
CPU 8核
REM 32G
GPU 可选:无GPU、16G、32G

使用教程

  • 注册魔搭账号,关联阿里云账号

  • 打开我的Notebook

  • 选择计算环境(CPU/GPU),CPU 环境长期免费,GPU环境有100小时免费(启动后才计时,停止或后就不计时了)

  • 选择预装镜像,根据你需要的 cuda、torch、TensorFlow 版本来选择。

  • 点击“启动”按钮,等待一两分钟就启动好实例了

  • 点击“查看Notebook”就可以开始使用了。

  • 可以在笔记本中直接运行系统命令或python代码。如运行:!nvcc -V 查看 NVIDIA、CUDA 的版本信息。

  • 可以打开终端执行命令,比如运行ps -e fpython -V

评价

魔搭好的方面是:使用方便,注册登录账号就可以立即使用计算资源。
不好的地方主要是:

  • 实例关闭后,镜像数据会被清空。
  • 环境给予 Ubuntu,需要会一点 Linux 命令用起来才更熟练。

后续

魔搭给的免费GPU环境只有100个小时,关闭后数据还被清空,是不是不够用?接着看我们下一期《免费3个月的阿里云端 Cuda GPU 计算(使用教程)》。

SadTalker 安装笔记

环境

  • 阿里云PAI-DSW
  • ubuntu20.04
  • pytorch:1.12
  • gpu-cu113
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
git clone https://github.com/OpenTalker/SadTalker.git

cd SadTalker

conda create -n sadtalker python=3.8

conda activate sadtalker

conda info

# 把 pip 源设为腾讯源
pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

# cpu 版
# pip --default-timeout=1000 install torch==1.12.1+cpu torchvision==0.13.1+cpu torchaudio==0.12.1 -f https://download.pytorch.org/whl/torch_stable.html

conda install ffmpeg

pip install -r requirements.txt

### Coqui TTS is optional for gradio demo.
### pip install TTS

# 下载模型

python inference.py
–driven_audio ../ds1.wav
–source_image ../2.jpg
–enhancer gfpgan
–preprocess full
–still

python inference.py –driven_audio test/ds1.wav –source_image test/1.jpg –enhancer gfpgan –cpu

3D 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
git clone https://github.com/OpenTalker/SadTalker.git
cd SadTalker
conda create -n sadtalker3d python=3.8
source activate sadtalker3d

conda install ffmpeg
pip install fvcore iopath
conda install libgcc gmp

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

# insintall pytorch3d
pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu113_pyt1110/download.html

pip install -r requirements3d.txt

### install gpfgan for enhancer
pip install git+https://github.com/TencentARC/GFPGAN


### when occurs gcc version problem `from pytorch import _C` from pytorch3d, add the anaconda path to LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/$YOUR_ANACONDA_PATH/lib/

python inference.py \
--driven_audio ../yiyi-tts.wav \
--source_image ../3.jpg \
--still \
--preprocess full \
--enhancer gfpgan

配置 Vite 支持用 “@” 路径别名导入文件

需要做如下两步配置。

1、让 vite 能识别 @ 路径别名

vite.config.js 增加:

1
2
3
4
5
6
7
8
9
10
11
12
13
import { resolve } from 'path';

export default defineConfig {
// ...
resolve: {
alias: {
"@": resolve(__dirname, 'src'), // vite 编译的路径别名
},
// extensions: ['.js', '.json', '.ts'], // 使用路径别名时省略后缀名编译时补全,默认值为 ['.js', '.json', '.ts']
}
// ...
}

2、让 IDE 能识别 @ 路径别名

用 @ 路径别名导入文件后,IDE (如 jetbrains 家的)要能识别导入路径,实现代码提示识别,点击导入变量或导入路径能跳转到文件。

在根目录下的 jsconfig.json 加入以下内容:

1
2
3
4
5
6
7
8
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}

Vue3 组合式 API 使用 i18n 实现本地化

Vue3 使用选项式 API 较容易,按文档上手就行,这里就不多说。组合式 API 上手会比较麻烦一点。

创建实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// app.js
import { createApp } from 'vue';
import { createI18n } from 'vue-i18n';
import App from './App.vue';

const i18n = createI18n({
locale: 'cn', // 设置当前语言
legacy: false, // 要支持组合式API,此项必须设置为false;
// globalInjection: true, // 全局vue视图中注册$t方法,vue-i18n v9.2 之后默认是 true
messages: {
cn: {
message: {
hello: '你好',
},
},
en: {
message: {
hello: 'hello',
},
},
},
});

const app = createApp(App);
app.use(i18n);
app.mount('#app')

基本使用

1
2
3
4
5
6
7
8
9
10
<!-- App.vue -->
<script setup>
import { useI18n } from 'vue-i18n';
const { t } = useI18n(); // 组合式 API 使用 vue-i18n,关键是 createI18n 的 legacy 参数要设置成 false
console.log(t('message.hello'));
</script>

<template>
<div>在视图中使用语言: {{ $t('message.hello') }}</div>
</template>

自定义全局方法使用 vue-i18n

组合式 API 每次要 import 又要导出要用的函数,需要频繁使用,这样太麻烦了。
我们可以定义 window.$t 全局函数,这样在 setup 中也能直接用 $t()取得语言信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// app.js
import { createApp } from 'vue';
import { createI18n } from 'vue-i18n';
import App from './App.vue';

const i18n = createI18n({
locale: 'cn',
messages: {
cn: {
hello: '你好',
},
en: {
hello: 'hello',
},
},
});

window.$t = function() {
return i18n.global.t(...arguments);
}

const app = createApp(App);
app.use(i18n);
app.mount('#app')

备注

更多用法见官方文档: https://vue-i18n.intlify.dev/guide/

Git 设置 Socks5 代理

全局设置代理

1
2
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

取消全局代理

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

指定域名使用代理

1
2
3
4
5
#只对github.com
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080

#取消代理
git config --global --unset http.https://github.com.proxy

在 .git/config 配置文件中设置代理

.git/config 文件中添加配置:

1
2
[https]
proxy = socks5://127.0.0.1:1080

ssh 代理连接(使用 ssh 访问 git 的解决方案)

前面设置的都是 https 代理, GitHub 都要求通过 ssh key 来提交,我们可以在 ~/.ssh/config 配置文件中设置使用代理连接 ssh

1
2
3
4
5
6
7
8
9
10
Host github.com
HostName github.com
User git
IdentityFile C:\Users\cmpan\.ssh\github
ProxyCommand "C:\Program Files\Git\mingw64\bin\connect" -S 127.0.0.1:1080 -a none %h %p
``````

```sh
# MacOS
ProxyCommand nc -v -x 127.0.0.1:1080 %h %p

终极方案

如果你有一台外网的 Linux 服务器,你可以用该服务器作为代理。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 作为代理的ssh连接参数
Host pxy
HostName IP地址
Port 22
User pxy
IdentityFile ~/.ssh/pxy

# GitHub 连接参数
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_auth
ProxyCommand ssh pxy -W %h:%p # pxy 为代理ssh连接对应的 Host,在 Linux/Mac/Windows 上通用

WSL使用指南

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 查看已安装发行版
wsl -l -v

# 设置默认发行版
wsl --set-default <Distribution Name>

# 启动默认发行版
wsl

# 启动指定发行版
wsl -d <Distribution Name>

# 指定登录用户启动 wsl
wsl -u <User Name>

# 更改发行版的默认用户
<DistributionName> config --default-user <Username>

# 关闭 wsl 的运行
wsl --shutdown

# 关闭指定发行版
wsl --terminate <Distribution Name>

更多命令见 WSL 官网

查看宿主机ip地址

宿主机 ip 在子系统的 /etc/resolv.conf 文件中的 nameserver 设置。

压缩 WSL2 的 vhdx 文件

vhdx文件

vhdx文件是虚拟机的虚拟磁盘文件,随着使用时间变长,vhdx 内会产生冗余文件,可以使用 diskpart 工具进行压缩。

操作步骤

1、关掉使用vhdx文件的进程。
cmd 命令:

1
wsl --shutdown

2、命令行启动 diskpart 工具,cmd命令:

1
diskpart

3、选择vhdx文件

cmd 命令:

1
select vdisk file = "D:\WSL\Debian-12-ext4.vhdx"

4、执行压缩命令:

cmd 命令:

1
compact vdisk

等待压缩进度到100即可。

Debian 新系统部署

基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
# 更新
sudo apt update
sudo apt upgrade
# 添加新用户
sudo adduser 用户名 -g users
# 给用户添加 sudo 权限
sudo usermod -aG sudo 用户名
# 配置 ssh key 登录
sudo mkdir -p /home/用户名/.ssh
vim /home/用户名/.ssh/authorized_keys
# 贴入 ssh 公钥
chown -R 用户名:users /home/用户名

设置自定义命令

/etc/profile 文件添加一下配置

1
2
3
4
5
alias l="ls -lhF --color"
alias ll="ls -lAhF --color"
alias la="ls -A --color"
alias clean="history -c; history -w"
alias ws="cd ~/workspace"

source /etc/profile

ssh 登录设置

1
2
3
sudo vim /etc/ssh/sshd_config
PasswordAuthentication no # 禁用密码登录
PermitRootLogin no # 禁止root用户登录,可通过user0登录后切换到root

安装应用包

1
sudo apt install git