Web服务(学期)课程中必须具备哪些基本主题?
我正在为信息技术课程的学生设计Web服务课程。一些学生在获得两年制副学士学位后停止学习,但该计划的其他学生则获得了四年制学士学位。本课程适用于攻读四年制学位的学生。
我对该课程的最初想法是它将涵盖:
- 一些简单的数据库概念,并具有足够的命令行实践,以允许学生创建简单的关系数据库后端。
- 足够的PHP,以便学生可以创建一个Web界面,该界面允许用户向数据库后端输入新数据,编辑数据库中的数据以及显示数据库的固定视图。
- 一般而言,PHP和Web服务的基本安全性惯例。
- 使用PHP和数据库后端编写准系统内容管理系统。
- 了解和使用现有的内容管理软件,例如Zope / Plone或者Drupal。
- 讨论使用现有内容管理软件为网页提供ADA 508规范的可行性。与此形成鲜明对比的是,它提出了一个简单的框架来使用PHP制作与ADA兼容的页面。
我们的学期为16个星期。我们是否还有其他主题而不是列出的主题?如果我们有机会设计这样的课程,那么最务实的是什么呢?
编辑:根据最初的答复,很明显,我的问题的标题具有误导性。应该是Web编程而不是Web服务。参加本课程的学生将至少已经学习了一门编程课程。这些学生本来都将学习Python课程。他们参加的Python课程包括编写XML解析器,该XML解析器使用CSS生成HTML。本课程还将涵盖HTML,CSS和JavaScript。也将使用XML(使用PHP解析XML,并可能使用将XML转换为PHP代码)。一些学生还将参加Java入门课程,但该课程不会涵盖JSP。
解决方案
我们可能需要谈论Xml。甚至可能要谈论XSD ...但这取决于我们要学习的课程。我不了解使用PHP的Web服务,但是如果它是.Net,则需要谈论序列化/反序列化。
我会(甚至简短地)教授层模型。如果学生从根本上不了解它,那么在将来的某个地方它将再次困扰他们。是的,我遇到了在不了解网络层模型或者OS层模型的情况下攻读4年CS学位的学生。
首先,我们对" Web服务"了解什么?据我所知,Web服务的标准定义是它是"支持通过网络进行机器对机器交互的软件系统"。如果确实是初衷,那么(1)与CMS有关的那些部分将不适用,并且(2)肯定应该具有Web编程之类的某些先前知识。实际上,课程描述中似乎很少有内容适用于Web服务,从描述中看,它就像是一般的Web开发课程。
无论如何,由于那可能不是我们要记住的,实际情况是,我们无法在PHP中创建需要HTML,CSS,JavaScript等的" Web界面",这将包含在课程中吗?
老实说,关于508的最后一部分,它是Web开发中日常工作的一个相对较小的部分,实际上与PHP或者编程,服务器端Web开发以及客户端代码无关。就像是如何准备内容。
我们为什么确切地将PHP作为CS课程进行教学?尤其要考虑Web服务主题。
这些学生毕业后,其Web服务工作的98%将是Java或者C#。
也许意思不同于针对Web服务的REST,XML-RPC或者SOAP?
谈论Sun的标准是一个不错的主意,也许是在Java中使用WS的最古老的方法,即Apache Axi。
我相信在Java会话中我们可以针对jax-ws和jax-b发表演讲。
讨论WS- *方向以及REST如何改变我们对服务使用者和提供者的看法。
某种编程语言应该是该课程的准备工作,以便学生可以测试所学内容。教一门语言实在太多了。作为老师,我们将能够验证他们实际上是在创建服务。
也许创建一些学生可以连接到的数据库并从中创建服务。
可能应该进入REST与非REST格式(xml,json,csv ...)
不管是喜欢它还是讨厌它,SOAP都将保留并扩展到特定语言(例如java,php等)之外。Web编程不再是从头开始进行自定义编码的。教授REST和SOAP就像教人们在C ++类中使用标准模板库一样。重用至关重要。
对于大多数Web项目,我会避免编写CMS通常是错误的选择,而且如果我们从Twitter上学到了一些信息,则推论它不属于的cms是不好的做法。加上它的无聊。让他们参加混搭比赛。培养创造力和企业家精神,同时也应用所有核心概念。
如果有时间,请深入研究Web层体系结构。我总是对面试的候选人数量感到沮丧,这些候选人不了解事情如何融合以及如何扩展。对任何潜在的雇主来说,了解裁员都会给人留下深刻的印象,特别是如果学生将转为公司工作。