Evan's learning notes

IDEA9103 Design Programming

Supporting Healthcare through Technologies — March 20, 2017

Supporting Healthcare through Technologies

Intro

我们如何设计技术方法来改进医疗?医疗领域是一块富饶的土地让我们来练习设计思想方法和开发新的解决办法来支持并且增强医疗服务和体验。作为design thinker,你将会应用参与式的和以人为中心的设计思想来制作一个设计方案,目标是用新科技来增强医疗服务。我们提供了4个主题可供选择。

1. Person-centred integrated care 以人为中心的一体化照料 协调性照顾

我们如何设计解决方案让人们体验到最好的协调性照顾coordinated care来覆盖他们所有的健康需求?在如今的社会中,一体化照料变得越来越受关注。澳大利亚正面临着人口老龄化,人民发生慢性或者复杂的病症的几率越来越高。如何提供无缝的,有效的,高效的,对病人所有医疗需求的照顾,使得医疗系统面临的压力持续增长。于是我们被迫思考新的,革新的方法应对。在这个领域,你将会使用Design Thinking方法来创造以数字化的人为中心的解决办法,以改进以人为中心的一体化照料。

一些指导性问题:什么是一体化照料?特别的讲,什么是以人为中心的一体化照料?多种健康服务当下是如何被管理的?现在的解决办法的优势和劣势都是什么?相关利益者和他们的家人正面临着哪些问题?谁是潜在的相关利益者?他们又有哪些可能面临的问题呢?

2. Destigmatising metal health 精神健康(第一个单词我连谷歌都搜不到 大概是不谴责啥的)

不像其他病症会涉及物理线索和临床症状,精神健康问题对我们大部分人来说是不可见的。在一些案例中,那些遭受着抑郁症,焦虑,饮食失调等问题的人们,被他们的社交圈子不断地无视和误解。结果使得他们在关键时刻不去寻求治疗。在澳洲,三百万人遭受着焦虑和抑郁症的折磨。在15到44岁之间,自杀也是他们死亡的主要原因。这个领域的设计计划致力于精神健康问题,尤其是从信息和认知的观点。

一些指导性问题:我们怎样使关于精神健康的信息变得让公众更易接近?如何用技术方法来应对与精神健康相关的污名?是否有一群特定的遭受精神健康问题的群体需要特定的方法来解决?例如,土著,老年人,同性恋,年轻人等等。

3. Improving the patient experience in specific parts of the health system 加强病人在医疗系统中特定某一环节的体验。

你可以关注与某一个特定的物理地点例如急诊室或者某一特定的专业领域例如幼儿教育。这可能涉及到转诊,预约,沟通,社区意识等等。

一些指导性问题:谁是相关利益者?所选情境中的病人有哪些体验的元素?哪些元素要被改进?用什么方法?如何捕捉病人的体验?在所选情境中病人的普遍经历是什么?存在哪些问题?

4. Integrating education and clinical care to support health literacy 集成化教育和临床照料来支持健康专业知识

我们如何设计方案把临床照料集成在教育中来支持健康专业知识?专业的社区教育对于任何医院都是统一的目标。新技术已经成为了实现这一目标的主角。你将应用以人为中心的设计思想来提出一个设计计划,用新科技增强健康专业知识。你需要阅读和查找关键的文献来了解你将如何完成设计大纲。

一些指导性问题:社区中哪些健康专业知识是最需要的?现在有哪些系统?这些系统做的好吗?有哪些相关利益者?现有的方法有哪些优点与不足?

你需要

选择一个主题。

选择目标用户或者相关受益者(病人,照顾人士,管理人员,医生,护士,或者其他健康专家)。

呈现一个用户调查,用一个关于你所选领域的背景调查所支持。在开始调查之前,确保有多个同学选择同一领域。这个调查的成果是一个调查报告,assessment1. 个人完成调查,但是你会被分组。根据你选的领域决定你是否需要去医院等设施实地考察。

其他相关课题和实地考察信息

3月31日周五

4月7日周五

注意

3月21号周二之前选择课题。

用Google sheet填写可能的课题,email和是否实地考察。

同一课题需有多人选择。

References

Advertisements
Chapter 4 – Variables 变量 — March 18, 2017

Chapter 4 – Variables 变量

Intro

既然是编程,该来的总是会来。本章讲解变量,我就挑几个我不是太熟悉的记一下吧,太琐碎的写着浪费时间。

Making Var

这里介绍了两种变量类型,int和float。

Processing Var

介绍了两个系统自带的变量,width和height。分别是画布的宽和高,方便使用。

Math

简单的运算,加减乘除,注意优先级。

For loop

和其他编程语言语法一样,略略略。

Example 4-10

屏幕快照 2017-03-18 22.44.39.png

Example 4-12 Pins and Lines

Example 4-13 Halftone Dots

屏幕快照 2017-03-18 23.12.02.png

Robot 2

在robot 1的基础上把参数换成了变量名

总结

本章介绍变量概念,数学运算,for循环语句。还介绍了几个有趣的实例,利用for循环生成一些看起来很奇妙的图案,最后散点的案例比较有意思,只用了短短5行代码,如果这个图案用ps手工绘制不知道要花多长时间lol,coding还真懒人的利器呢。

Chapter 3 – Draw 定义并绘制简单的图形 —

Chapter 3 – Draw 定义并绘制简单的图形

Intro

最开始用软件画图就像在纸上画图一样,有着严格的步骤。但当新的概念引入之后,这些简单的图形将会扩展动画和交互元素。这一章介绍简单的图形绘制方法。

计算机屏幕由很多个发光单元组成,这个单元称为“像素”。每个像素都有自己的坐标值。在Processing中,画布的最左上角的坐标值为(0, 0)。如果一张长宽各200px的画布,那么最右下角的坐标值是多少呢,是(199, 199),而不是(200, 200)。因为在计算机领域,我们通常从0开始计数而不是1。

The Display Window 画布

Function函数是Processing程序的基本构成单元之一,虽然是基于java语言的,这里却并没有被叫做method,但称作方法我认为也没问题。

Example 3-1: Draw a Window 画布

例如几乎每个Processing程序都会有size()函数,控制画布大小,它有两个参数分别为宽和高。size(宽,高)。默认画布大小为100 * 100px。

屏幕快照 2017-03-18 15.43.02

Example 3-2: Draw a Point 点

屏幕快照 2017-03-18 15.46.05

语法:point(x坐标,y坐标);

画布中央有个小点。

Basic Shapes 基本图形

直线

屏幕快照 2017-03-18 20.54.14

语法:line(x1, ,y1, x2, y2);

起始点坐标(x1, y1)

结束点坐标(x2, y2)

三角形

屏幕快照 2017-03-18 20.58.20

语法:triangle(x1, ,y1, x2, y2, x3, y3);

分别为三个顶点坐标。

四边形

屏幕快照 2017-03-18 21.06.52

语法:quad(x1, ,y1, x2, y2, x3, y3, x4, y4);

四个顶点坐标。

矩形(对边相等)

语法:rect(x, y, width, height);

左上角顶点坐标(x, y),和宽高。

圆形(不一定是正圆)

语法:ellipse(x, y, width, height);

圆心坐标(x, y),和宽高(不是半径)。

扇形/弧形

屏幕快照 2017-03-18 21.42.47.png语法:arc(x, y, width, height, start, stop);

这里要注意,start和stop的单位有两种,表示弧度的PI,或者表示角度的radians(180),PI = 180度。0度位置在3点钟方向。radians()函数将参数角度转换成了弧度。

再注意:start < stop,否则画不出来。

例如:arc(90, 60, 80, 80, radians(90), radians(60)); //这段代码就画不出来

Drawing Order 绘制顺序

屏幕快照 2017-03-18 21.13.17.png

程序从上到下编译,所以最后绘制的图形永远在最上面图层。

Shape Properties 图形属性

Set Stroke Weight 线粗细

屏幕快照 2017-03-18 21.16.46.png

语法:strokeWeight(像素);

Set Stroke Cap 线端点样式

屏幕快照 2017-03-18 21.25.21.png

语法:strokeCap(类型);

类型:SQUARE/ROUND/PROJECT

Set Stroke Joins 线段连接处样式

语法:strokeJoin(类型);

类型:MITER (默认 45度角拼接) BEVEL (边角磨成斜边) ROUND(圆滑边角)

Drawing Modes

改变图形函数传参的方式 后面章节大概会详细讲吧 看看就行了

On the Corner

语法:ellipseMode(类型);

类型:RADIUS(半径) CENTER(中心点) CORNER(矩形左上角顶点) CORNERS(矩形左上角顶点和右下角顶点)

除此之外还有rectMode(),imagemode(), shapeMode()。

Color

控制背景(默认灰色而不是白色),图形填充,线的颜色。

background(颜色值);

fill(颜色值);

stroke(颜色值);

单一值:0是黑色,128是中度灰,255是白色。

RGB

(红, 绿, 蓝),(0, 0, 0) 是黑色,(255, 255, 255)是白色。

(255, 0, 0) 红 (0, 255, 0) 绿 (0, 0, 255) 蓝

noFill(); 不填充颜色

noStroke(); 不描边

在 工具-颜色器 选择颜色更方便

Set Transparency 透明度

透明度也叫alpha值 取值范围0 – 255,0全透明 ,不显示,255实心不透明。

Custom Shapes 自定义形状

语法:

beginShape();  //开始自定义图形

vertex(x, y);  //每个顶点的坐标 注意连线顺序

endShape(CLOSE);  //结束图形绘制 封闭图形

总结

本章介绍了设置画布大小,基本形状绘制,绘制顺序,还讲解了3个形状属性,分别是线条粗细,端点样式,连接样式。还介绍了绘画mode,比如用矩形的传参方式画圆。颜色值可以是单一的0-255的灰度,也可以是RGB的彩色值。还介绍了透明度,不填充,不描边等函数。最后介绍了自定义图形的绘制方法。本章最后还有一个画机器人的练习,但是我觉得纯靠脑子计算绘图的坐标然后用代码输入有点智障。。。希望后面会介绍一些黑科技吧。

Chapter 2 – Starting to Code 创建第一个Processing程序 — March 17, 2017

Chapter 2 – Starting to Code 创建第一个Processing程序

Intro

此章节开始介绍了如何在各个操作系统下安装Processing软件。

另外,学习编程的最快方法不是阅读,而是动手实践!

Your First Program

屏幕快照 2017-03-18 13.57.28

Processing最新版是Processing 3.3。这个软件是Processing的开发环境PDE(Processing Development Environment),就像Java的Eclipse,Swift的Xcode。界面异常简洁,不像其他IDE一样一打开就是一大堆不明所以的按钮菜单,LOL。所以表怕,Processing应该非常好上手。白色区域编辑代码,左上方两个按钮为运行,停止运行。下方黑色区域是控制台,用于输出调试信息。也可以点击Errors查看当前代码中存在的语法错误。

Example 2-1: Draw an Ellipse 画一个圆

屏幕快照 2017-03-18 13.58.07

代码效果:圆心坐标(50,50)宽高都为80px;

语法:ellipse(圆心x轴坐标, 圆心y轴坐标, 宽, 高);

Example 2-2: Make Circles 点击鼠标 让圆变色

屏幕快照 2017-03-18 17.14.08

代码效果:圆心在鼠标坐标,宽高80px,圆是白色,点击鼠标变成黑色。

void setup()    方法调用,软件运行只调用一次,用于设置画布等初始状态。

void draw()    方法调用,每秒30帧循环执行,可更改帧率,在画布上每秒绘制30次。

size();    画布大小

fill();    填充颜色 要先填充颜色 再绘制要填充的图形

ellipse();    画圆

mousePressed    鼠标被按下

mouseX    鼠标当前x轴坐标

mouseY    鼠标当前y轴坐标

0 – 255    黑色 – 白色

Show

运行快捷键:Cmd + r

停止:Esc

Save and new

快捷键:Cmd + s

文件格式:.pde

Share

快捷键:Cmd + Shift + e

输出成一个可双击运行的文件,以供分享。

Examples and Reference

Processing里有多个案例代码可供使用,在file – examples目录下。

在代码编辑器中鼠标右键方法名并点击查询引用,即可跳转到该方法的文档说明。

总结

本章介绍了Processing的界面,并展示了两段简单的代码,分别是画圆,和通过鼠标实时影响图形绘制。我还记录了一些快捷键,这些快捷键和其他IDE的几乎一样,所以很好记。

Chapter 1 – Hello 关于Processing —

Chapter 1 – Hello 关于Processing

Background 背景

Processing语言诞生于2001年,相比数据结构与文字输出,它更注重于图形和交互。2008年发行了1.0版本,2013年春发行了2.0版。使用了OpenGL,GLSL shaders,并应用GStreamer达到更快的视频回放功能。3.0版本于2015年发行,改进了用户界面并增加了语法纠错功能。本书由Casey Reas和Ben Fry编写,我正阅读的是该书的第二版。书中的技术可以应用于创作游戏,动画和用户界面等方面。而这仅仅是探索Processing语言世界的开始。

Hello这一章节主要是了解Processing的诞生与它所延伸出的家族们,我挑几点记录一下,就不过多叙述了。

Processing是一门用来实现通过软件生成图片、动画、和交互等工作的编程语言。目的很简单,写一行代码,可以在显示器上输出一个圆,再添加几行代码,让这个圆可以跟着鼠标实时移动。再添加一行代码,可以让圆在鼠标按下时改变颜色。我们将以上行为称作“sketching with code”。

通常的编程课程都是先关注于数据结构、算法和理论知识。所有的可视化知识,例如UI与动画,往往都作为结束了所有学习之后的甜点供学生品尝,就像我在利物浦大学读software development本科学位时的体验一样。然而这种体验对于刚刚接触编程语言的人来说并不友好,很多人都会在上了一两节课之后仍然一头雾水。过于抽象的理论知识让人们无法快速理解学习这门编程语言到底能做些什么。

Processing通过创造一系列交互图形来学习编程,虽然学习编程的方式很多,但是直观迅速的可视化反馈给了学习者更多的信心与动力,而且很方便理解。就像之前反复提到过的一样,图形化和社区才是Processing关注的地方。

Sketching and Prototyping 速写与构建原型

Sketching是思考的方式之一,可以在很短的时间内探索更多的idea。在工作中,我们通常在纸上画出草稿,再将结果变成代码。动画和交互的灵感通常被画成storyboard并伴随注释标记。经过一系列的软件绘制,最好的方案将被选中并制作成prototype。通常这个过程是个循环的,制作、测试、改进,在纸上和屏幕上来来回回的切换。

Flexibility 灵活性

像其他编程语言一样,Processing也有很多的软件工具适用于不同领域的工作。它拥有超过100个库扩展,适用于声音、计算机视觉、数字制造、渲染等领域。

Giants 先驱们

人们自从1950年开始就使用计算机绘图了,在可以使用CRT或者LCD显示器输出图像之前,人们使用巨大的绘图机器来绘制图形。Processing的先驱们包括来自设计、计算机图形、艺术、建筑、统计学等领域的人们。

Family Tree 族谱

屏幕快照 2017-03-18 14.56.22

Processing是属于Java的一门方言,一门“面向对象”的编程语言。其语法和Java极其相似,但是Processing添加了一些关于图形和交互的定制功能。这些图形元素基于PostScript(PDF的基础),和OpenGL(3d图形标准)。

其中P5.js 是Processing的JavaScript版本,用于网页端的制作。

Join In

Processing是一门开源语言哦~

总结

第一章简单介绍了Processing的历史背景和应用领域。我的笔记里可能会使用很多该书中的插图,仅供个人用途,版权归作者所有。