计算机科学及编程导论:第一课

目标 1.学会用计算思维编写程序 think like a computer scientist

2.读懂别人的程序

3.了解计算的基本能力和局限

4.把科学问题转换成计算问题

什么是计算?

知识分为陈述性知识(是什么)和过程性知识(如何做,又称指令性知识,对推导过程的描述,如何判别)

如何用机械工艺实现这些步骤?  1.电子电路 (如计算器,属于固定程序计算机)  
2.存储程序计算机(改变规则,可以赋予其一系列指令,让你执行)

语言的分类

三个维度:1.低级 VS 高级

2.广泛用途 VS 特定用途

3.解释型 (运行时直接运行代码)VS
编译型(执行前先产生目标代码)

python语言: 高级 广泛 解释型

syntax(语法:表述是否合法)

sematics(语义,分为静态语义:局部 和完整语义:整体)

Python 基本数据类型:

两种: 数字和字符串

时间: 2024-10-08 23:23:52

计算机科学及编程导论:第一课的相关文章

计算机科学及编程导论(7)数组及可变性、字典、伪代码,代码运行效率简介

1. 数组及可变性 当创建一个数组的时候,它将与一个对象进行绑定 L1 = [1, 2, 3] L2 = L1 L1[0] = 4 print(L2)#=>[4, 2, 3] L2 = L1 意味着L2与L1指向同一个对象,而L1[0]=4则改变了对象的值,所以最终L2的值也会改变,可以与下面这个例子进行比较 a = 1 #a指向对象1 b = a #b指向对象a a = 4 #此时a指向了对象4 print(b) #=>1,由于b依旧指向对象1,所以没有发生变化 2.字典 字典包括了以下几个

计算机科学及编程导论(3)迭代程序的设计与实现、遍历、元组

1. 迭代程序的设计:基础元素 迭代程序的实现,通常包括下了以下五个部分: 计数器(Count):用于标记循环的次数 初始化(Initiate):在循环外部进行初始化 正确的结束测试(Right End Test):在什么情况下结束通常与计数器(Count)密切相关 循环部分的代码块:该部分代码块通常包含了对计数器的改变 结束后程序应该做什么 2. 迭代程序的设计:流程图 在使用具体的代码实现之前,可以用流程图来组织程序. 举一个简单的例子,已经一个正整数的平方为X,要求这个正整数,可以设这个正

计算机科学及编程导论(5)浮点数和二分法

1. Python的数字类型 Python的数字类型分为两类:整型(int)以及浮点型(float). 对于Python来说,整型可以取无限大. Python的整型可以取任意精度 例如,可以输入2**1000次方,仍然会返回正确结果. Python的浮点类型按照IEE754标准,对于64位的计算机而言,表示成如下方式 1位:符号位 11位:指数位 52位:尾数位 这样总共可以表示17位长的精度,如果超过17位,Python就无法处理,比如 0.1**1000次方. 在教学视频中,如果输入 x =

算法导论第一课

1.课程分两部分:算法分析,算法设计 2.算法分析:首先考虑的是性能,how fast;其次会考虑通信,ram,disk占用等等 3.what is more important than perf ? 功能性,模块化,安全,用户友好,可扩展... then why study algs?  1,perf 在解决问题的最前沿,决定了是否可行,他也是用户友好等的保证,相当与货币,可以用来交换 安全,界面... 4 运行时间的分析:最差情况,平均情况(假设均匀分布),最好情况(bogus假象,不能区

计算机科学及编程导论(8)算法的复杂度

1.基于问题规模的复杂度计算方法 在考虑时间效率的时候,面临以下两个问题:输入规模以及步骤. 输入规模受很多因素影响:参数大小.参数类型(数组.元组的存取小绿是不同的),而且不同操作步骤(加减.判断)时间也不是相同的,为了方便计算,我们需要建立以下的假设: 假设从计算机取得任何变量的时间是相同的 假设基本操作时间恒定 接下来就可以考虑以下几种情况: 最好情况:何种输入会使得程序的运行时间最短? 最坏情况:何种输入会使得程序的运行时间最长? 平均情况 如果考虑平均情况的话,就要去设想问题输入规模的

VC++编程之第一课笔记

第一课 Windows程序内部运行原理 API 操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用.这些函数的集合就是Windows操作系统提供给应用程序编程的接口(Application Programming Interface),简称Windows API. 如Create Window就是一个API函数,应用程序调用这个函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口. MSG(消息结构体) 结构体定义如下: typedef s

Swing:关于Java界面编程的第一课,如何正确的处理界面中的线程

转载:http://blog.csdn.net/sunyiz/article/details/8004573 关于 Java 的 GUI ,关于 Swing,其实有一件事情是非常重要的 那就是线程! 如何正确的使用 GUI 线程, 什么样的代码应该在 GUI 线程上执行? 什么样的代码应该用其他线程执行? 其实这些都很重要, 但是,很多关于 Java 的教材都没有强调过这些,甚至有的书完全就忽略了这一点 所以,我在这里要给所以开始接触 Swing 的人,讲述一个重要概念: Swing 中的线程

计算机科学及编程导论(1)绪论

1. 课程介绍 这门课程适用于那些拥有很少或没有编程经验的学生,它致力于使学生理解计算机在解决问题中的作用,所用的编程语言为Python,共24个课时 2. 课程目标 计算思维.能够编写短小的代码 阅读代码.能够读懂他人的代码 理解计算.认识计算的能力与局限 具体应用.将科学的问题转化为具体的计算过程 3. 知识的种类 知识分为两大类:陈述性知识以及程序性知识 3.1 陈述性知识 陈述性知识,可以简单的理解为事实. ∵ √X = Y ∴ Y2 = X(当X ≥0 ) 虽然上述描述是正确的,但是却

计算机科学及编程导论(4)函数抽象与递归

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流