学生奥运会“我是专业人士”:方向“编程和信息技术”

今天是学生奥林匹克“ 我是专业人士报名的最后一天。 我们谈论“编程和信息技术”的方向。

奥林匹克运动会在ITMO大学领域的普通合作伙伴是“编程和IT”,“信息和网络安全”,“ 大数据 ”-Sberbank。


克里斯蒂娜·莫里洛Christina Morillo) /像素/ PD

关于奥运会的一些话“我是专业人士”


“我是专业人士”奥林匹克学生竞赛是针对人道主义和技术专业的学士和硕士的竞赛。 那些在奥运会上表现出色的学生将无需考试即可进入俄罗斯大学。 同时,他们将接受俄罗斯领先的IT公司的培训:Yandex,Sberbank,IBS和Mail.Ru。

奥运会将于11月24日开始( 今天是报名的最后一天 )-这是排位赛阶段的开始日期。 他们将以在线形式举行。 那些将进入下一轮比赛的参与者将进入比赛的全日制阶段。 它将于2019年2月在该国的各大学举行。

我们监督奥林匹克的哪些领域


ITMO大学正在准备以下领域的任务:“编程和IT”,“信息和网络安全”和“ 光子学 ”。

即使在今年,我们也引入了两个新领域:

  • 机器人技术 ”:该领域的主题是机械,电子和控制。 计划在应用力学,软件工程等领域继续学习的学生应该参加。该领域的合作伙伴 Motorika,NPO Android Technique和DNS。
  • 大数据 :此领域的主题包括数据分析,统计和机器学习。 适合在人道主义领域的应用信息学,ICT,信息技术学院学习的学生 合作伙伴包括俄罗斯天然气工业股份公司,西门子,MTS和Business Lines等公司。

接下来,我们将更多地讨论“编程和信息技术”的方向。

关于“编程和IT”方向


ITMO大学是与“我是专业人士”奥林匹克运动会接近的规模最大的活动组织者之一。
我们举办了大量的创意竞赛以及计算机科学和编程竞赛。 这些是学校奥林匹克竞赛,例如, 全俄小学生奥林匹克 ,奥林匹克“ 信息技术 ”和IOIP 。 我们还组织学生奥林匹克竞赛,特别是ICPC编程世界锦标赛的半决赛。
在制定“编程和信息技术”方向时,我们考虑到了在IT领域开展其他主题竞争性活动的丰富经验以及同事的专业知识。 例如,从今年开始, Codeforces门户的作者和开发人员Mikhail Mirzayanov一直在ITMO大学工作。

ITMO大学准备的“程序和信息技术”方向由相应教职员工进行。 这是Dean Parfenov Vladimir Glebovich,以及ITMO体育编程学生编程团队的副教授兼培训师Andrey Sergeyevich Stankevich。

IT公司的员工,在学院任教的专业学科以及组织大学的员工都参与了奥林匹克任务的设计和开发。 这些大学是乌拉尔联邦大学,东北联邦大学。 Ammosova,萨拉托夫州立大学和萨马拉大学。

如何为奥运会做准备

编程和信息技术 ”的方向是基于数学知识,计算机科学以及开发可靠和安全软件的能力。 在准备过程中,建议学生重复计算复杂性理论,形式语言和语法理论,构造计算体系结构,OOP和并行编程的原理以及关系数据库的理论。

我们建议您观看由老师准备的专题网络研讨会。 例如,此视频讨论了存储问题和操作系统。


网络研讨会的第二个方向是关于算法和数据结构:


在准备排位赛和决赛阶段时,不仅要注意理论上的问题,而且还要注意实际问题。 因此,我们将给出一些在排位赛和决赛阶段可能发生的任务的示例。 这些是去年提供给学生的真实案例。
任务示例:用抽象编程语言模拟给定查询队列操作的给定代码。

任务代码
queue tasks; task worker_task; void do_task(task) { sleep(random()) : } void request() { while (true) { new_task = new task(); if (worker_task == null) worker_task = new_task; else if (queue.size() < 5) queue.push(new_task) sleep(random()) } } void worker() { while (true) { if (worker_task == null) { sleep(1000); } else { do_task(worker_task); if (queue.notEmpty()) worker_task = queue.pop(); } } } main() { thread worker_thread(worker); for (int i = 0; i < N; ++i) { threadr tr(request) } } 


在单独的线程中,工作进程启动,该进程处理来自N(N> 1)个请求线程的任务。 do_task方法模仿任务的执行。

下列哪个陈述是正确的?

  1. 通过worker_task变量的竞争条件
  2. 队列可以包含6个项目
  3. 即使队列不为空,系统也可能停止执行任务。
  4. 如果任务到达,系统将始终完成任务,
  5. 确保系统完成所有传入的任务。

答案:1、2、3
此外,作为示例,我们从最后阶段给出任务。 这是与操作系统和进程计划有关的任务。
任务示例:考虑一个带有一个中央处理器的计算系统,该处理器在任何给定时间只能执行一个过程的计算。 系统时间是离散的,以任意周期测量。

任务文本的继续
系统中有三个工作来源。 每个任务都会生成一个过程,该过程在计算完成时结束。 对于每个任务源,已知度量编号,在该度量中出现了来自该源的第一个任务,随后出现了每个后续任务的度量的数量,以及完成来自该源的任务所需的度量的数量(来自同一源的所有任务都需要相同的执行时间) 。



多级队列用于控制任务完成的顺序。 对于每个源,由该源的任务形成自己的FIFO队列。 队列优先。 仅当任何队列中没有高优先级的任务时,才能启动完成特定任务的过程。

如果处理器空闲或反过来站起来执行,则以相同节奏出现的任务立即开始执行。 执行开始后,该过程直到结束才被中断。 如果完成了下一个进程的执行,那么下一步就是从非空队列的最高优先级中选择进程。 在那次节拍中出现的任务也参与了此选择。

我们将响应时间视为从特定任务出现到执行结束所经过的度量数量。 我们将把其中一项任务的响应时间超过50个时钟周期的情况视为意外。

确定最小滴答声的数量,直到出现下一个源作业3-X,系统将在该位置无限期工作,而不会发生紧急情况。

  • 我们假设任务出现的那一刻,这是指定度量的初始时刻。 因此,当我们说来自源的第一个任务的外观的度量为1,直到下一个任务的度量的数量为5时,来自该源的第二个任务将出现在度量6的开头。
  • 切换完成下一个任务所需的时间将被认为是微不足道的,并且在解决任务时不会考虑在内。
  • 每个源都有独立的分配编号,从1开始。

答:24
有关主题的大量信息,可以在奥林匹克竞赛网站上批准的列表中的主题编程课程中找到。

其他相关链接:

Source: https://habr.com/ru/post/zh-CN430742/


All Articles