首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >聊聊SpinalTap的Transaction

聊聊SpinalTap的Transaction

作者头像
code4it
发布于 2020-06-03 02:26:02
发布于 2020-06-03 02:26:02
37200
代码可运行
举报
文章被收录于专栏:码匠的流水账码匠的流水账
运行总次数:0
代码可运行

本文主要研究一下SpinalTap的Transaction

Transaction

SpinalTap/spinaltap-model/src/main/java/com/airbnb/spinaltap/mysql/Transaction.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Value
@RequiredArgsConstructor
public class Transaction {
  private final long timestamp;
  private final long offset;
  private final BinlogFilePos position;
  private final String gtid;

  public Transaction(long timestamp, long offset, BinlogFilePos position) {
    this.timestamp = timestamp;
    this.offset = offset;
    this.position = position;
    this.gtid = null;
  }
}
  • Transaction定义了timestamp、offset、position、gtid属性

MysqlMutationMetadata

SpinalTap/spinaltap-model/src/main/java/com/airbnb/spinaltap/mysql/mutation/MysqlMutationMetadata.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Value
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class MysqlMutationMetadata extends Mutation.Metadata {
  private final DataSource dataSource;
  private final BinlogFilePos filePos;
  private final Table table;
  private final long serverId;
  private final Transaction beginTransaction;
  private final Transaction lastTransaction;

  /** The leader epoch of the node resource processing the event. */
  private final long leaderEpoch;

  /** The mutation row position in the given binlog event. */
  private final int eventRowPosition;

  public MysqlMutationMetadata(
      DataSource dataSource,
      BinlogFilePos filePos,
      Table table,
      long serverId,
      long id,
      long timestamp,
      Transaction beginTransaction,
      Transaction lastTransaction,
      long leaderEpoch,
      int eventRowPosition) {
    super(id, timestamp);

    this.dataSource = dataSource;
    this.filePos = filePos;
    this.table = table;
    this.serverId = serverId;
    this.beginTransaction = beginTransaction;
    this.lastTransaction = lastTransaction;
    this.leaderEpoch = leaderEpoch;
    this.eventRowPosition = eventRowPosition;
  }
}
  • MysqlMutationMetadata定义了dataSource、filePos、table、serverId、beginTransaction、lastTransaction、leaderEpoch、eventRowPosition属性

MysqlMutationMapper

SpinalTap/spinaltap-mysql/src/main/java/com/airbnb/spinaltap/mysql/event/mapper/MysqlMutationMapper.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Slf4j
@RequiredArgsConstructor
public abstract class MysqlMutationMapper<R extends BinlogEvent, T extends MysqlMutation>
    implements Mapper<R, List<T>> {
  @NonNull private final DataSource dataSource;
  @NonNull private final TableCache tableCache;
  @NonNull private final AtomicReference<Transaction> beginTransaction;
  @NonNull private final AtomicReference<Transaction> lastTransaction;
  @NonNull private final AtomicLong leaderEpoch;

  public static Mapper<BinlogEvent, List<? extends Mutation<?>>> create(
      @NonNull final DataSource dataSource,
      @NonNull final TableCache tableCache,
      @NonNull final SchemaTracker schemaTracker,
      @NonNull final AtomicLong leaderEpoch,
      @NonNull final AtomicReference<Transaction> beginTransaction,
      @NonNull final AtomicReference<Transaction> lastTransaction,
      @NonNull final MysqlSourceMetrics metrics) {
    final AtomicReference<String> gtid = new AtomicReference<>();
    return ClassBasedMapper.<BinlogEvent, List<? extends Mutation<?>>>builder()
        .addMapper(TableMapEvent.class, new TableMapMapper(tableCache))
        .addMapper(GTIDEvent.class, new GTIDMapper(gtid))
        .addMapper(QueryEvent.class, new QueryMapper(beginTransaction, gtid, schemaTracker))
        .addMapper(XidEvent.class, new XidMapper(lastTransaction, gtid, metrics))
        .addMapper(StartEvent.class, new StartMapper(dataSource, tableCache, metrics))
        .addMapper(
            UpdateEvent.class,
            new UpdateMutationMapper(
                dataSource, tableCache, beginTransaction, lastTransaction, leaderEpoch))
        .addMapper(
            WriteEvent.class,
            new InsertMutationMapper(
                dataSource, tableCache, beginTransaction, lastTransaction, leaderEpoch))
        .addMapper(
            DeleteEvent.class,
            new DeleteMutationMapper(
                dataSource, tableCache, beginTransaction, lastTransaction, leaderEpoch))
        .build();
  }

  protected abstract List<T> mapEvent(@NonNull final Table table, @NonNull final R event);

  public List<T> map(@NonNull final R event) {
    Table table = tableCache.get(event.getTableId());

    return mapEvent(table, event);
  }

  MysqlMutationMetadata createMetadata(
      @NonNull final Table table, @NonNull final BinlogEvent event, final int eventPosition) {
    return new MysqlMutationMetadata(
        dataSource,
        event.getBinlogFilePos(),
        table,
        event.getServerId(),
        event.getOffset(),
        event.getTimestamp(),
        beginTransaction.get(),
        lastTransaction.get(),
        leaderEpoch.get(),
        eventPosition);
  }

  static ImmutableMap<String, Column> zip(
      @NonNull final Serializable[] row, @NonNull final Collection<ColumnMetadata> columns) {
    if (row.length != columns.size()) {
      log.error("Row length {} and column length {} don't match", row.length, columns.size());
    }

    final ImmutableMap.Builder<String, Column> builder = ImmutableMap.builder();
    final Iterator<ColumnMetadata> columnIterator = columns.iterator();

    for (int position = 0; position < row.length && columnIterator.hasNext(); position++) {
      final ColumnMetadata col = columnIterator.next();
      builder.put(col.getName(), new Column(col, row[position]));
    }

    return builder.build();
  }
}
  • MysqlMutationMapper定义了dataSource、tableCache、beginTransaction、lastTransaction、leaderEpoch属性;它提供了createMetadata方法,它接收table、event、eventPosition参数返回新建的MysqlMutationMetadata

InsertMutationMapper

SpinalTap/spinaltap-mysql/src/main/java/com/airbnb/spinaltap/mysql/event/mapper/InsertMutationMapper.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class InsertMutationMapper extends MysqlMutationMapper<WriteEvent, MysqlInsertMutation> {
  InsertMutationMapper(
      @NonNull final DataSource dataSource,
      @NonNull final TableCache tableCache,
      @NonNull final AtomicReference<Transaction> beginTransaction,
      @NonNull final AtomicReference<Transaction> lastTransaction,
      @NonNull final AtomicLong leaderEpoch) {
    super(dataSource, tableCache, beginTransaction, lastTransaction, leaderEpoch);
  }

  @Override
  protected List<MysqlInsertMutation> mapEvent(
      @NonNull final Table table, @NonNull final WriteEvent event) {
    final List<Serializable[]> rows = event.getRows();
    final List<MysqlInsertMutation> mutations = new ArrayList<>();
    final Collection<ColumnMetadata> cols = table.getColumns().values();

    for (int position = 0; position < rows.size(); position++) {
      mutations.add(
          new MysqlInsertMutation(
              createMetadata(table, event, position),
              new Row(table, zip(rows.get(position), cols))));
    }

    return mutations;
  }
}
  • InsertMutationMapper继承了MysqlMutationMapper,其构造器要求输入dataSource、tableCache、beginTransaction、lastTransaction、leaderEpoch参数

UpdateMutationMapper

SpinalTap/spinaltap-mysql/src/main/java/com/airbnb/spinaltap/mysql/event/mapper/UpdateMutationMapper.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
final class UpdateMutationMapper extends MysqlMutationMapper<UpdateEvent, MysqlMutation> {
  UpdateMutationMapper(
      @NonNull final DataSource dataSource,
      @NonNull final TableCache tableCache,
      @NonNull final AtomicReference<Transaction> beginTransaction,
      @NonNull final AtomicReference<Transaction> lastTransaction,
      @NonNull final AtomicLong leaderEpoch) {
    super(dataSource, tableCache, beginTransaction, lastTransaction, leaderEpoch);
  }

  @Override
  protected List<MysqlMutation> mapEvent(
      @NonNull final Table table, @NonNull final UpdateEvent event) {
    final List<MysqlMutation> mutations = Lists.newArrayList();
    final Collection<ColumnMetadata> cols = table.getColumns().values();
    final List<Map.Entry<Serializable[], Serializable[]>> rows = event.getRows();

    for (int position = 0; position < rows.size(); position++) {
      MysqlMutationMetadata metadata = createMetadata(table, event, position);

      final Row previousRow = new Row(table, zip(rows.get(position).getKey(), cols));
      final Row newRow = new Row(table, zip(rows.get(position).getValue(), cols));

      // If PK value has changed, then delete before image and insert new image
      // to retain invariant that a mutation captures changes to a single PK
      if (table.getPrimaryKey().isPresent()
          && !previousRow.getPrimaryKeyValue().equals(newRow.getPrimaryKeyValue())) {
        mutations.add(new MysqlDeleteMutation(metadata, previousRow));
        mutations.add(new MysqlInsertMutation(metadata, newRow));
      } else {
        mutations.add(new MysqlUpdateMutation(metadata, previousRow, newRow));
      }
    }

    return mutations;
  }
}
  • UpdateMutationMapper继承了MysqlMutationMapper,其构造器要求输入dataSource、tableCache、beginTransaction、lastTransaction、leaderEpoch参数

DeleteMutationMapper

SpinalTap/spinaltap-mysql/src/main/java/com/airbnb/spinaltap/mysql/event/mapper/DeleteMutationMapper.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
final class DeleteMutationMapper extends MysqlMutationMapper<DeleteEvent, MysqlDeleteMutation> {
  DeleteMutationMapper(
      @NonNull final DataSource dataSource,
      @NonNull final TableCache tableCache,
      @NonNull final AtomicReference<Transaction> beginTransaction,
      @NonNull final AtomicReference<Transaction> lastTransaction,
      @NonNull final AtomicLong leaderEpoch) {
    super(dataSource, tableCache, beginTransaction, lastTransaction, leaderEpoch);
  }

  @Override
  protected List<MysqlDeleteMutation> mapEvent(
      @NonNull final Table table, @NonNull final DeleteEvent event) {
    final Collection<ColumnMetadata> cols = table.getColumns().values();
    final List<MysqlDeleteMutation> mutations = new ArrayList<>();
    final List<Serializable[]> rows = event.getRows();

    for (int position = 0; position < rows.size(); position++) {
      mutations.add(
          new MysqlDeleteMutation(
              createMetadata(table, event, position),
              new Row(table, zip(rows.get(position), cols))));
    }

    return mutations;
  }
}
  • DeleteMutationMapper继承了MysqlMutationMapper,其构造器要求输入dataSource、tableCache、beginTransaction、lastTransaction、leaderEpoch参数

小结

Transaction定义了timestamp、offset、position、gtid属性;MysqlMutationMetadata定义了dataSource、filePos、table、serverId、beginTransaction、lastTransaction、leaderEpoch、eventRowPosition属性

doc

  • Transaction
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码匠的流水账 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
南京一中学开设人工智能课,农村的孩子怎么办?
作者 | 阿司匹林 3 月 5 日,国务院总理李克强代表国务院向十三届全国人大一次会议作政府工作报告时,又一次提到了人工智能。 2016 年以来,诸多人工智能政策相继推出,并两次进入政府工作报告,中国政府对这项有着 60 年发展历史的技术的重视程度可见一斑。 而就在这一波浪潮中,有着“六朝古都”之称的南京,正在以进击的姿态进入我们的视野。 ▌南京成中国人工智能教育重镇 近日,“人工智能实践基地”在南京雨花台中学揭幕。消息称,雨花台中学将加强学科间的相互配合,发挥综合育人功能,让学生在综合的环境中学习,
AI科技大本营
2018/04/26
1K0
南京一中学开设人工智能课,农村的孩子怎么办?
中学生与AI共创诗歌 广州1500所中小学迎来“开学AI第一课”
“西风吹落叶,秋色满江城。”“红日生于东方,华夏展露锋芒。”……这一句句对仗工整、格律整齐的诗词,其实是一群十二三岁的七年级学生利用AI写成。在中国教育科学研究院荔湾实验学校(以下简称“科校”)新学期的第一堂人工智能课上,七年级的学生们借助AI程序,创作出了一首首近体诗、现代诗作品。 科校七年级的人工智能“开学第一课” 科校的人工智能“开学第一课”,是广州市全面普及中小学人工智能教育的一个缩影。从今年秋季学期起,广州将借助腾讯教育提供的广州中小学人工智能教学平台及华南师范大学提供的相关支持,实现人工智能教
鹅老师
2022/09/27
7240
中学生与AI共创诗歌 广州1500所中小学迎来“开学AI第一课”
重磅:《中小学人工智能教师能力标准(试行)》发布
3月24日,中国教育科学研究院、华东师范大学、腾讯三方联手,在北京举办了“人工智能教育研讨会暨《人工智能教师能力标准(试行)》、《2022年人工智能教育蓝皮书》成果发布会”。 其中,《人工智能教师能力标准(试行)》(以下简称《标准》)明确了中小学人工智能教师应具备的18项基本技能标准,为各地开展人工智能教师培训、评价等提供了参考依据;《2022年人工智能教育蓝皮书》(以下简称《蓝皮书》)是基于对全国25个省市的中小学校长、教师和学生问卷抽样调查权威推出,旨在为未来中小学人工智能教育落地提供有效路径参考。
鹅老师
2022/03/25
8280
广州电教馆携手华南师大、腾讯教育培养人工智能“种子教师”,做好科技教育加法
目前,广州正在加速中小学人工智能教育普及工作。 4月2日至3日,广州市电化教育馆联合华南师范大学、腾讯教育,举办了2023广州市中小学1-8年级人工智能教育普及“种子教师”培训活动,来自广州市11个区和省、市属学校共370名教师代表参加了第一轮集中培训。 据悉,本次培训是从全市中小学人工智能教师中公开遴选,旨在培养一批高素质人工智能课程任课教师,同时进一步推进全市中小学人工智能教育普及工作的高质量开展。培训重点围绕人工智能教育理念和教学设计实践两大内容展开。 广州市电化教育馆馆长彭斌,华南师范大学教育信息技
鹅老师
2023/04/10
4720
广州电教馆携手华南师大、腾讯教育培养人工智能“种子教师”,做好科技教育加法
广州启动全市中小学人工智能教师培训 超2000名教师迎来“开学第一课”
新学期到来之际,广州市1500多所中小学的2000多名人工智能教师提前迎来了“开学第一课”。8月25日,广州市电化教育馆联合华南师范大学、腾讯公司举办广州市1-8年级普及人工智能教育支撑项目第一期培训班,通过专家讲座、教学平台应用演示等培训,提升全市各区教师人工智能教育教学水平。 广州市教育局一级调研员林平、广州市电化教育馆馆长彭斌、广州市电化教育馆副馆长柯慧伦、华南师范大学教育信息技术学院教授柯清超、华南师范大学教育信息技术学院教授王冬青以及腾讯教育高级产品经理乔阳等出席了本次培训开班仪式。 开展大规模人
鹅老师
2022/08/26
6790
广州启动全市中小学人工智能教师培训 超2000名教师迎来“开学第一课”
快讯 | 全国首套人工智能教材明年进入中小学,在沪试点反响热烈
根据优必选与华东师范大学出版社共同主办的“人工智能教育研讨会暨《AI上未来智造者——中小学人工智能精品课程系列丛书》发布会”,我们得知这套丛书共包括十册,目前已经出版的六册分别为:《AI上神奇动物》、《AI上智慧生活》、《AI在变形工坊》、《AI上萌宠“小E”》、《AI超级工程师》和《AI的幕后英雄——Python》,另外四册将于2019年出版。
大数据文摘
2018/12/17
6570
快讯 | 全国首套人工智能教材明年进入中小学,在沪试点反响热烈
专家聚焦 | 新课标背景下,人工智能教育的机会与挑战是什么?
4月20日,由腾讯教育主办的第二届MEET教育科技创新峰会在北京举办。在“人工智能教育专场”的“圆桌论坛”中,腾讯青少年科技学院邀请了首都师范大学教授、教育部信息技术课标组专家樊磊教授,江苏省电化教育馆副馆长金玉与清华大学附属中学学生发展中心主任王田,共同探讨与畅想基础教育阶段开展人工智能教育的必要性和难点,从国家标准、理论前沿到教学一线的角度为大家打开了全新的视野。 腾讯青少年科技学院一直致力于研发面向K12青少年的科技教育内容产品,希望给孩子们带来最有乐趣的学习,同时为教育从业者带来最具创
鹅老师
2021/05/06
6880
【教育部出大招】人工智能进入全国高中新课标,2018秋季学期执行
【导读】1月16日上午,教育部召开新闻发布会,介绍了《普通高中课程方案和语文等学科课程标准(2017年版)》的有关情况。在此次“新课标”改革中,正式将人工智能、物联网、大数据处理正式划入新课标。201
小莹莹
2018/04/20
5840
【教育部出大招】人工智能进入全国高中新课标,2018秋季学期执行
2022义务教育新课标出炉|专家在线解读小初信息科技新课标
近期,教育部发布《义务教育课程方案和课程标准(2022年版)》,将信息科技设为独立科目。为帮助学校和老师们及时把握新课标要义,明确未来工作方向和重点,未来基因(北京)人工智能研究院联合腾讯教育,通过在线直播的方式,邀请了四位行业权威专家对2022版义务教育信息科技课程标准进行解读。 教育部义务教育阶段信息科技课程课标研制组长、北京航空航天大学教授熊璋,教育部义务教育阶段信息科技课程课标研制核心专家组成员、首都师范大学教授樊磊,中国人民大学附属中学信息技术教研组组长袁中果,未来基因(北京)人工智能研究院首席专
鹅老师
2022/05/16
2.7K0
2022义务教育新课标出炉|专家在线解读小初信息科技新课标
人工智能焦虑:从幼儿园开始小班学AI
导读:随着人工智能热潮的到来,整个社会都蔓延着一种焦虑情绪:人工智能焦虑。每个人都在谈论人工智能,思考自己的职业会不会被人工智能取代,人工智能会不会威胁人类。
IT阅读排行榜
2019/06/05
1.7K0
人工智能焦虑:从幼儿园开始小班学AI
98所中小学自选人工智能课程方案 深圳南山创新推出AI教育“双选会”
3月18日上午,在深圳华侨城中学举办了一场别开生面的“双选会”:包括腾讯、越疆、大疆、优必选商汤科技、强脑科技等在内的6家高科技企业亮出了“青少年人工智能课程方案”,南山区98所中小学的校长参会考察,自由选择适合自己学校的课程方案——为推进中小学新一代人工智能教育体系建设和创新人才培养,南山区教育局创新人工智能落地推进方式,推出“双选”试点模式,联动辖区学校和企业,举办人工智能教育推进交流会,进行优质企业和学校试点双推进。 敲黑板: 人工智能教育成为南山区中小学“必修课” 为贯彻落地国家对中小学开
鹅老师
2021/03/22
1.3K0
500万AI人才缺口「高校造」,科技公司培养AI应用人才的新模式
机器之心原创 作者:力琴 在 500 万 AI 人才紧缺的当下,数字蓝领和 AI 应用层面的人才最缺,其次是算法人才和科研人才。高校作为承载人才出口的重要角色,在人工智能和机器人企业优必选科技的助力下,AI 人才高校造的局势正在打开。 在第 55 届中国高等教育博览会(简称高博会)的实训及机电展厅中,外观鲜明的大型双足机器人、四足机器人及机械臂吸引着参展观众的眼球。在常与硬件、设备打交道的工科实训环节,教学设备逐步往人工智能 +、机器人、物联网化靠拢。 反观,在数字化产业化升级的时代,AI 应用型人才、智
机器之心
2023/03/29
5430
500万AI人才缺口「高校造」,科技公司培养AI应用人才的新模式
深圳机器人教学或将摆脱“虚拟”作战
对深圳的中小学生来说,诸如3D打印、智能机器人等前沿科技对他们并不陌生。教育界对于科技创新日益重视,深圳不少学校已经在尝试或实践开设3D打印课程,而你是否知道,深圳也是全国最早实行机器人进课堂的城市之一。从2012年开始,机器人就作为信息技术课程中的一个重要模块,成为深圳中小学生的必修课。 不过也有业内人士指出,尽管机器人教学深圳推动很早,但受硬件设备、资金、重视程度不一等问题制约,目前绝大多数学校仍处于仿真虚拟课堂阶段,即只是进行程序设计、编写,用电脑仿真运行。而更深的硬件拼装、程序下载到机器人大脑进行
机器人网
2018/04/13
7280
深圳机器人教学或将摆脱“虚拟”作战
想本科入读人工智能专业,这篇文章送给准备填志愿的你
在计算机专业和人工智能日益火爆的当下,很多人对这两个专业又是好奇又是憧憬。对此,清华大学刘知远教授近日在知乎上分享了一些内容,以帮助考生更加理性地选择专业,希望更多真正喜欢 CS/AI 的考生选好学校选对专业。
机器之心
2019/07/03
6580
想本科入读人工智能专业,这篇文章送给准备填志愿的你
小学AI教材终于来了,下一步是AI胎教吗?
据澎湃新闻报道,全国首套涵盖了从小学到高中的人工智能教材近日在上海正式发布,这套“AI上未来智造者”丛书计划出版 10 册,目前已出版 6 册,分别为《AI上神奇动物》、《AI上智慧生活》《AI在变形工坊》、《AI上萌宠“小E”》、《AI超级工程师》、《AI的幕后英雄——Python》,其余 4 册《AI在未来小镇》、《AI在奇妙世界》、《AI超级设计师》、《AI的应用与探索》将于 2019 年上半年出版。
AI科技大本营
2018/12/17
5940
清华办 AI:除了洞见,更有沉淀
人工智能,作为科学研究的一种新范式,正在迅猛发展,除了在工业应用中产生巨大变革以外,同时也正逐渐对传统学科产生颠覆性影响。
AI科技评论
2020/05/14
5550
清华办 AI:除了洞见,更有沉淀
如何让AI教育新课标快速落地?杭州滨江携手腾讯教育、光海科技开展AI师训
随着《义务教育信息科技课程标准(2022年版)》的发布,人工智能作为信息科技课程的必要组成部分进入课堂场景,中小学人工智能教育进入加速落地新阶段。 8月17日,滨江区教育局联合腾讯教育、光海科技举行了人工智能教师培训,来自滨江区部分学校的信息技术教师与现场专家围绕如何搭建高质量、低成本、可感知的中小学人工智能教育课堂展开交流。随后,在8月19日滨江区教育系统干部暑期读思会暨新学年工作部署会议上,浙江省中小学地方课程教材审核专家徐小波、腾讯教育高级顾问严玉庆等嘉宾围绕中小学人工智能教育体系的高质量快速落地进行
鹅老师
2022/08/26
5680
如何让AI教育新课标快速落地?杭州滨江携手腾讯教育、光海科技开展AI师训
中小学编程教育是培养“码农”?北京专家:绝对不是
小学生在老师指导下进行编程操作 郑嘉伟 摄 中新网北京12月22日电“编程教育绝不是在培养码农,而是培养学生的程序设计能力,而这其中最重要的就是流程,在呈现逻辑思维的过程中训练思维方式,并最终解决生活中的实际问题。”北京教育学院教授于晓雅博士说道。 21日,中小学编程教育创新课堂教学观摩活动及研讨会在北京举行。会议当天,来自全国各地的老师齐聚北京市西城区展览路第一小学,共同观摩展览路第一小学提供的编程示范课,并在课程结束后探讨如何进一步培养学生的创新思维与动手能力。 在示范课上,小学5年级的学生们在老师
企鹅号小编
2018/01/31
6690
中小学编程教育是培养“码农”?北京专家:绝对不是
腾讯教育携手光海科技推出“桃李”行动计划,培养1000万名未来人工智能人才
6月15日,腾讯教育与杭州光海科技有限公司(以下简称“光海科技”)签署战略合作协议。在现场,双方联合推出青少年人工智能教育“桃李”行动计划,将共同建设10个人工智能教育市级示范基地、100个人工智能教育实验室、1000所中小学人工智能教育标杆校,培养10000名人工智能教师和1000万名未来人工智能人才。此外,双方还将围绕市场拓展、项目运营和维护、产品研发等领域展开合作。 腾讯教育与光海科技签署战略合作协议 光海科技有限公司董事长王振东在致辞中表示,人工智能教育必将开启信息技术发展的新时代,光海科技将以
鹅老师
2022/06/17
4940
腾讯教育携手光海科技推出“桃李”行动计划,培养1000万名未来人工智能人才
C端遇冷,B端触礁,编程教育何时才能真正摘下“小众”标签?
“新时代的文盲标准就是不会编程”、“现在很多中小学已经把编程纳入必学科目,初高中自主招生考试都会优先录取会编程的孩子”……随着这样类似的信息越来越多,现如今的“编程”在家长眼中就如同过去“奥数”一般的存在。
镁客网
2020/08/28
6080
C端遇冷,B端触礁,编程教育何时才能真正摘下“小众”标签?
推荐阅读
南京一中学开设人工智能课,农村的孩子怎么办?
1K0
中学生与AI共创诗歌 广州1500所中小学迎来“开学AI第一课”
7240
重磅:《中小学人工智能教师能力标准(试行)》发布
8280
广州电教馆携手华南师大、腾讯教育培养人工智能“种子教师”,做好科技教育加法
4720
广州启动全市中小学人工智能教师培训 超2000名教师迎来“开学第一课”
6790
快讯 | 全国首套人工智能教材明年进入中小学,在沪试点反响热烈
6570
专家聚焦 | 新课标背景下,人工智能教育的机会与挑战是什么?
6880
【教育部出大招】人工智能进入全国高中新课标,2018秋季学期执行
5840
2022义务教育新课标出炉|专家在线解读小初信息科技新课标
2.7K0
人工智能焦虑:从幼儿园开始小班学AI
1.7K0
98所中小学自选人工智能课程方案 深圳南山创新推出AI教育“双选会”
1.3K0
500万AI人才缺口「高校造」,科技公司培养AI应用人才的新模式
5430
深圳机器人教学或将摆脱“虚拟”作战
7280
想本科入读人工智能专业,这篇文章送给准备填志愿的你
6580
小学AI教材终于来了,下一步是AI胎教吗?
5940
清华办 AI:除了洞见,更有沉淀
5550
如何让AI教育新课标快速落地?杭州滨江携手腾讯教育、光海科技开展AI师训
5680
中小学编程教育是培养“码农”?北京专家:绝对不是
6690
腾讯教育携手光海科技推出“桃李”行动计划,培养1000万名未来人工智能人才
4940
C端遇冷,B端触礁,编程教育何时才能真正摘下“小众”标签?
6080
相关推荐
南京一中学开设人工智能课,农村的孩子怎么办?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验