Class 1: Introduction 第一课 导论 计算器与工程问题解析导论 史帝芬.R.雷门教授 贾德森.霍华教授 Prof. Steven R. Lerman and Dr. V. Judson Harward
今天的讲义 课程大纲 学术诚实方针 教学时程 如何缴交你的作业 如何从你的计算机打印JAVA档案 第一课的笔记 家庭作业:第0次
1.00/1.001 课程信息 教学成员: 课程网页会告诉你: 研究生请注意:请以1.001课程代号注册,不是1.00 2位指导者,5位助教,2位研究助理,1位实习助理及阅卷员(grader) 课程网页会告诉你: 所有的课程信息均会上网揭露 课程讲稿、实习、课程研习及当天公布的问题集 课程讲稿、实习、课程研习的书面讲义: 请自行下载 研究生请注意:请以1.001课程代号注册,不是1.00
课程目标 软件开发的核心观念 以交互式的对象导向环境撰写程序 数值方法在科学、工程及管理问题上的应用 软件的设计与需求 开发与除错/测试 软件执行的工作团队 以交互式的对象导向环境撰写程序 Java ,与 Microfost C#非常相似 课程结束前会简单地叙述C++及C# 数值方法在科学、工程及管理问题上的应用 涵盖各式问题的家庭作业 软件的型态(Software patterns)
课程目标(续) 图型化使用者接口 算法 使用函式库 使用 Java Swing及事件模型 排序、搜寻、穿程(traversing)…. 观念、程序写作、函式库…. 使用函式库 事先完成的共享任务模块
计算机,实习及课程研习 在线缴交你的笔记型计算机/实习/实验签到单-请查阅课程网站说明 拿到你的笔记型计算机 那些还没收到电子邮件通知的搭档指定工作 拿到你的笔记型计算机 第一堂实习是指定出席。如果你已找到搭档请和他一起出席并带着你的笔记型计算机 课程研习从下周开始:每周两次 分成有经验与无经验两组 指定出席 与搭档及笔记型计算机一起上课
计算机,实习及课程研习(续) 实习时使用笔记型计算机,并且要主动学习习题 课程研习时也会使用主动学习的方式 笔记型计算机 家庭作业 有实验练习的简短课程:程序写作、仿真、简短的例题 在实习时助教及指导者会给予协助 课程研习时也会使用主动学习的方式 每次研习有八位学生 课堂上会有简短的问题、课程主题的回顾、设计的例题 笔记型计算机 须配备无线网卡,你可在整个校园内使用无线网络 在这学期中可以用于其它课程 期末测验时(或之前)缴回 家庭作业 透过SecureFX档案传输缴交作业
撰写Java程序 笔记型计算机(操作系统为:Microsoft Windows XP) 阿西娜工作站(操作系统为:UNIX) 以Forte整合式开发环境(IDE)为主,有时也会使用BlueJ的环境。 可以在你的笔记型计算机或桌上型计算机加载BlueJ 及 Forte 操作系统为Windows2000 或 XP,强烈建议计忆体为256MB 从课程1.00的网页上下载Java 及 Forte的说明 星期五的实习及下周的研习将教授如何使用Forte整合性开发环境 阿西娜工作站(操作系统为:UNIX) Forte整合性开发环境一样可以使用;其它说明与建议与笔记型计算机相同
课程要求 10个问题集(学期成绩的60%) 。通常是星期五缴交,但是以网站上的行事历为准。 2次课堂测验(学期成绩的16%),没有夜间测验。 最后一堂课有期末考(学期成绩的18%) 测验及考试均可参阅书籍 每周的研习与实习,指定出席。 (学期成绩的6%)
课程资源 助教的上班时间。网站上会张贴时程表。 实习助教时间:每周两个时段/每时段8小时。 指导教授上班时间: 每周两个时段,每时段1小时(霍华教授) 每周两个时段,每时段1小时(雷门教授) 教科书:Big Java, 作者:Horstmann
课程守则 可以一起合作了解上课、实习、教科书、研习及问题集的内容 可以讨论你的程序设计:类别的选项、方法的选用 你必须自行撰写你的Java 程序代码 撰写程序时只有下列情形能请同学帮忙: 指出你的错误,而不是改正错误 解释Java的语法。可用与你的程序不同的范例来说明。 强烈建议你在撰写程序时向助教们及指导教授寻求协助。
启动笔记型计算机的无线网络 课程1.00 是4项配置使用无线网络笔记型计算机的先驱计划之ㄧ 为何使用笔记型计算机? 理由有: 计算上简单、方便 评估协同学习的价值 检验这项技术的支持度 终止沉默的学习态度
笔记型计算机的配备? HP全配备的Omnibook 6100 256MB 内存, 30GB硬盘 内建无线网络 933MHz Pentium III的中央处理器 备用电池及外盒 预先安装的软件:Java 开发套件、Kit 、BlueJ、Sun One(Forte, SecureFX, KLP, HostExplorer32, Kerberos Utilities, Adobe Reader, Microsoft Office 2000 )
开始联机 学生计算机在DHCP注册 请于领到设备时即进行注册
你的责任 励行「安全使用计算机」 小心照料你的笔记型计算机 期末归还时计算机需维持良好的状况 如果发生无法想象的事: 小心使用公物 向校警报案 立即通知你的指导教授或课程技术联络人
我们的责任 对麻省理工的应用软件与网络联机提供快速的支持响应 硬件维修 提供替用品 一般性协助
彼此的责任 备份 复原 使用SecureFX档案传输工具来复制档案到你个人的档案柜(Athena locker) 你必须使用这项工具 最糟糕的情况:重新将影像文件抄回硬盘,回到原来的状态 从你个人的档案柜中将档案载回硬盘
课程大纲 8项主要的单元: 物件与Java 程序结构 图型化使用者接口 数值方法 数据结构 Java 的输出与输入 搜寻与排序 执行绪与网页
课程1:课程简介与Java概观 Java的历史与目标 Java到底是什么? Java的关键概念 一些简单的Java程序
Java的历史 Java起源于Sun Microsystems为了改造C++的研究计划 OAK 本来要命名为 C– (移除 C++ 的危险功能) 本来是要应用在消费性电子产品,特别是在90年代早期的机上盒
Java的历史(续) WWW 因特网的崛起,同时OAK改名为Java 因特网的功能需求恰巧与从未发展的交互式影像市场相符
传统的计算机使用 以使用功能区分: 操作系统 程序语言 窗口系统 应用服务(例如:数据库)
传统的计算机使用观点 可执行的程序是针对硬件的处理器架构与操作系统 应用程序一般是由使用者在执行前先加载计算机 客户端计算机、服务器、手持式设备分离使用的环境
因特网改变了一切 程序依需求由网页下载至客户端的计算机 客户端程序可取得广泛的服务 图型化使用者接口与事件驱动软件规则
Java的设计目标 安全,所以你可以相信从因特网下载的应用码 可移植性,所以你可以在一个系统上开发,然后在其它系统上执行 分布式的,所以「精简型」的客户端可以利用各式的网络服务 具扩充性的,基于现存的类别库上建立实际的应用程序
Java的部分特点 Java是完全的对象导向程序语言。所有的程序均包含对象。 Java 程序编译成与平台无关的机器码 (编注:漏译一点 烦请补齐) 有广大的Java 程序集以提供不同且广泛的解答为目的。
对象导向程序 对象是具有型态(数据域位)及行为(方法、功能)的一种东西(「实体」) 。 一种将大型程序组织成易于了解、维护及重复使用片断的方式。 除了作业1外,你所撰写的程序都将会是对象组中的一部份,并与其它的对象来搭配,来完成所需的解答。 范例有液体流动的管子、公交车网络的行车路线、电梯中心的电梯运行、多项式、机械人与伸曲设备、拼字检查的字典….等等。 类别是来自对象制作的型态。
对象导向程序 对象间藉由传递讯息来沟通 对象会封装或隐藏信息 「主要方法」发动对象,其余则作用不大 引发了讯息中的行为(方法)及传递参数(数据) 对象会封装或隐藏信息 一个对象的详细数据对其他的对象是隐藏的,所以,对象的详细数据是不需要被知道的。 「主要方法」发动对象,其余则作用不大
对象导向程序 对象可以透过继承的机制来延伸 子组件有父原件的特征(型态与行为)而且修改或增加特征。 当引用者被写好时,对象可以动态引用不存在的对象(尚未写好的) 。这个观念与其它的对象观念增加了程序撰写时的重复利用码。
开发一个Java程序 阅读家庭作业并了解内容 概略地叙述你的设计:对象、型态、行为 使用Forte撰写Java中的程序 如果你不知道要做些什么,你就无法完成作业。 概略地叙述你的设计:对象、型态、行为 决定如何解决问题的方法 利用文字或图形,草拟出完成的方法。分阶段来草拟。 使用Forte撰写Java中的程序 在Forte浏览器/项目中建立Java程序代码 适用Forte编辑器撰写程序代码 只撰写每一阶段你所想要编译的部分(例如:读进输入值) 。使用Forte的Java编译器。 当一个阶段编译完成后,就撰写及编译下一阶段。在学期中阶段数目将会增加。
开发一个Java程序 测试,主要藉由在Forte中阅读/审查程序代码 利用Forte除错器来阅读程序代码 重复这些步骤来学习一些细节问题
Java程序的四种类型 控制台环境下的应用程序 – 文字模式 网页小程序 – 在网页中执行,且因安全考虑有功能的限制 Frame-Based应用程序 – 完整的「独立」程序 服务器端小程序 – 在网站服务器执行
简单的控制台应用程序
Java的一些规则 每一个Java类别应该要分别存成延伸档名为.java的档案 档名应该与程序代码中的类别名称一致 最简单的方法就是将一个程序的所有档案都存在同一个数据夹或目录中
简单的图形化使用者接口应用程序
一个简单的客户端小程序
利用客户端小程序所做的网页 Java? 是Sun Microsystems, Inc.在美国及其它国家的注册商标。