作为兰卡斯特大学SoftwareEngineering,的学生,您将学习以下课程。
(一年级)信息系统本有三个主要方面。首先,学生将学习数据处理技术的设计和实施。他们将学习关系型数据库的结构和特点及其当代替代品,以及用于构建、填充和查询有效信息系统的常用语言和功能。其次,该研究了系统分析和设计。在研究信息系统设计的同时,学生将学习在商业和社会背景下的数据使用,包括数据收集、验证和展示。他们将学习如何处理多种约束,与人和机器合作,系统思考和基本的成本/效益分析。最后,该处理了社会中计算机的重要职业和道德问题。学生将获得对持有个人数据的法律意义、审查制度的作用和影响、恶意软件和垃圾邮件、隐私和监控、互联网运营和治理的理解。这将使学生能够围绕人类和技术要求以及适当的设计方案构建和批判道德论点。
数字系统本展示了所有数字系统中的基本构建、机制和概念。学生将了解到处理器的工作原理;存储器的工作原理;以及经典和当代计算机的结构。它还向学生展示了编程语言是如何转化为计算机可以理解的东西的。在提供对这些基本操作的强烈洞察力的同时,鼓励学生发展新的思维方式并发展抽象思维。学生将了解数字系统的主要特征和组成部分,包括寄存器和加法器等低级组件,以及如何通过使用编程技术控制这些组件。他们将发展使用不同逻辑结构和数字系统的技能,特别是二进制逻辑。将考虑应用软件、系统软件和硬件之间的关系,学生还将发展对C语言编程的应用理解。
计算机科学基础本为学生提供了对计算机科学原理的重要性和相关性的深入了解。获得分析和描述算法和计算机程序的效率所需的基本知识,学生学会在实施计算机程序时如何做出正确的设计选择,以优化给定设计参数的效率。学生还学习了数据结构的作用和特点,并了解了经典算法在计算机科学中的持续重要性。
软件开发在我们快速发展的世界中,计算机编程是一种高度实用的技能。在这个中,学生将学习如何编写、分析、调试、测试和记录计算机程序,从而发展一个有原则的计算机程序员所应具备的技能。学生将被介绍到C和Java编程语言,这是世界上最广泛使用的两种语言。他们将学习与软件开发相关的日常技术的最佳实践,并获得对软件开发周期的理解。学习软件开发人员在解决计算机软件的可扩展性和复杂性方面所面临的挑战,学生将能够独立工作,开发适度复杂的计算机程序。
(二年级)软件设计提供了了解软件架构设计的重要性的机会,不同风格的架构和软件设计的质量属性的意义,如可维护性、性能和可扩展性。学生将获得使用一套图形模型来开发软件设计的系统方法的知识。在不同的抽象层次上开发系统的几种模式所涉及的设计过程被解释,他们将被介绍到用UML进行面向对象的设计。在整个中,学生将体会到计算机科学在工作场所的作用这一更广泛的背景,以及它在实现软件方面的关键作用。该课程还着眼于理解软件设计的质量属性的含义,以及特定软件系统的架构模型。学生将深入了解决定类的主要质量属性。学生将能够解释和构建软件的UML模型,并实现以UML模式表示的设计,以及了解如何使用各种设计模式来解决某些问题.
人机互动学生将学习人机交互的理论和实践课题,通过实验室工作提供设计、实施的实践经验,以及通过实际案例研究评估交互系统的能力。该课程探讨了人类感知的基础,以用户为中心的设计和参与式设计过程,学生将学习多种设计技术。该引导学生理解内部系统设计是如何影响外部用户界面行为的,并强调对所有用户无障碍的重要性。在该结束时,学生将能够成功地整合不同的信息,形成对人机交互的连贯理解;批判性地反思人机交互的技术进步,并展示持续的专业发展和有效的书面和口头技能所需的独立学习能力.
操作系统在SCC211中,学生会被介绍到操作系统概念的理论和实际应用。在整个中,操作系统的内部结构、文件和I/O管理、中断处理和设备驱动以及内存管理结构和技术都变得熟悉。该探讨了进程管理,包括调度和线程,以及对多处理器的支持。期待研究围绕安全和保护的问题,包括访问控制。通过介绍合适的操作系统的具体例子和进行相关的编程练习,对的主题采取实用的方法来帮助吸收抽象的概念。在本结束时,学生应了解现代操作系统的作用和常见的架构。系统漏洞和如何保护它们免受安全威胁贯穿始终。学生将自信地描述典型的文件系统结构,并强调进程和任务调度的不同方法。
数据库在这个中,学生将获得关于数据库管理系统的设计、实施和使用的理论背景,包括数据设计者和应用开发者。该还探讨了定义数据库系统要求的必要性,利用扩展实体关系(EER)模型作为设计数据库管理系统(DBMS)数据的技术和符号。学生们将研究EER模型与等价关系模型的映射,然后从访问权限和特权的角度来研究它。在这个的过程中,学生将熟悉所有与数据库系统的设计、开发和使用中的信息安全有关的方面。他们还将了解到对数据库管理系统的需求是如何随着时间的推移而演变的,以及它们是如何应用于日常场景的。这种技术知识将由应用有效的物理存储组织的可转移技能来补充;对可应用于问题的正确过程、模型和符号的意识增强;以及批判性地评估一系列技术观点的能力。
计算机中的社会、道德和专业问题学生将获得在专业、法律和道德框架内操作的基本技能和知识。教授将项目分解成可管理的部分和有效的时间分配的技巧,从而对进行科学调查所需的技能和方法以及衡量和解释数据的统计分析的基本概念和工具有基本的了解。提供制作简明和结构化的科学报告的范例和指南,并为学生提供关于演讲技巧、与计算机和通信有关的职业道德的额外讲座。最后,讲座提供了与计算机和通信专业相关的基本法律方面的意识,包括知识产权和专利法。在整个课程中,学生将获得在其领域就业所需的特定学科技能和一般能力的高度认识。该在计算机背景下发展学术写作和研究技能,补充学生的其他。
计算机网络学生将被介绍到支撑当代通信网络和互联网的基本概念。将探讨协议栈和分层的关键思想,以及诸如IP寻址和子网的核心概念。随着该的进展,他们将被介绍到用于在互联网上路由数据包的方法。正是这个过程使我们今天经常依赖的全球通信网络得以建立。这些概念将得到设计和构建网络的实践经验的支持。学生还将通过完成一些免费的网络编程练习来证明他们的理解。
软件设计工作室项目I(核心工作室)利用我们获奖的软件工程设计工作室,各小组将在软件设计的当代挑战中工作。应用他们在第一年获得的知识,学生将产生一个复杂、创新和具体的小组项目,让他们发展项目规划、管理和执行、需求分析、系统设计和测试策略方面的技能。通过这个,学生将获得对软件工程原理的理解。在小组中,学生还将演示一个工作系统,并通过制作报告、网站、海报和演讲等材料,以书面、图形和口头形式展示他们的工作要素。
高级编程对新的工具和技术采取适应性的方法,让学生了解为特定问题选择最佳编程工具的重要性。从不同的编程语言家族中引入一些新的编程语言,并在一年级建立的良好实践基础上进行。鼓励对编程语言的历史和多样性的欣赏,如了解它们的应用领域,学会更广泛地思考编程。对应用领域和各种语言类型的相对优势、劣势和性能的理解将得到促进,同时还将介绍语言概念和列表理解。本需要一定程度的自律,以认识和建立不仅具有高度功能而且包含非功能属性的程序。该课程期望生成优雅的、可扩展的和可延伸的软件。通过这一经验,学生们将发展出对解决问题进行逻辑和算法推理的能力。他们将获得抽象化和简化问题的经验,这些问题是如何映射到编程语言的结构和计算元素上的。对计算思维的信心将使学生能够比较和对比替代方案。
(三年级)互联网应用工程学生将熟悉围绕当代大规模和高性能网络服务和基础设施的结构、设计和部署的一系列问题。他们将获得识别高性能障碍的能力,并采取启发式方法,通过缓存、定位和使用内容交付网络和云主机实现最佳的网站性能。将获得对分析、指标、A/B和多变量测试使用的理解。通过使用编程工具包、故事标签和内容聚合,以及XML存储、链接数据和RDF,学生将创建响应式网页设计,包括移动设备、平板电脑和触摸互动。在本结束时,学生将拥有使用指标和定量数据来识别各种性能问题的全面知识。他们将能够使用和解释数据分析,以及了解敏捷网络开发方法和如何确定质量流程并为可访问性和国际化提供支持。学生将进行每周的实验任务,旨在补充和加强讲座,在一系列的主题中同时给予理论知识和实践经验。
分布式系统学生将了解支撑现代分布式系统的基本原则,以及使用JAVARMI的实际实现。他们将探讨间接通信、群组通信和分布式系统中的非功能方面,如可扩展性、容错性和可依赖性。本研究了分布式文件系统和谷歌基础设施等应用和服务,学生将从使用JAVARMI、J2EE和相关工具和技术的分布式系统的实际开发中受益。通过这些,该研究了分布式系统的设计、安全性和JavaRMI、Java消息服务、Java组和组件架构,如Fractal和企业JavaBean(EJB)。学生将扩展他们解决问题的技能,提高他们目前的编程技能,使他们能够成功地开发分布式应用和服务。他们将探索分布式系统的客户-服务器模型、RPC/RMI以及物理和逻辑安全和保护机制。研究目前在分布式编程中可用的实用工具和技术,参与讨论关键的非功能属性,深入了解分布式系统社区目前的研究问题也是本课程的特色。
安全与风险涵盖一系列主题,包括资产识别和评估、威胁分析和管理工具和框架,学生将熟悉攻击生命周期和流程,以及风险管理和评估流程、工具和框架。该涵盖了缓解策略和最合适的缓解技术,并提供关于保证框架和灾难恢复计划的知识。也有机会学习基础设施设计和实施技术以及攻击树和软件设计评估。学生将了解到IT专业人员在确保IT基础设施安全时可以做出有效决定的不同方式。该课程将使他们了解可用于识别资产、威胁和风险的工具、框架和模型,然后根据这一分析选择最合适的策略来管理IT基础设施所面临的风险。该以他们的技能为基础,对IT基础设施受到攻击的机制进行了实际考察。
语言和编撰提供对形式语言、语法、自动机的介绍,以及这些概念在编译器和编译过程方面与编程的关系,学生将学习语法和语义、短语结构语法和乔姆斯基层次结构,以及衍生和解析等过程。该的重点是语法等价性和上下文自由语法的模糊性及其影响。对语言和抽象机器之间的关系进行探索。向学生介绍计算的概念以及图灵的论文,计算的替代模型和抽象机器的应用。还有对编译过程的进一步介绍,包括词法分析和句法分析。在本结束时,学生将理解编程语言和形式语言理论的关系。他们将拥有对高级编程语言编译过程的基本理解。我们鼓励学生参与计算机科学的理论方面,以补充他们学位的其他部分的实践技能。该课程与其他学科有联系,如语言学,并解释了软件开发和计算机科学背景下的编译挑战。
软件设计工作室项目III(现场工作室)在一个有行业参与的项目上工作,并在软件设计工作室项目II(网络工作室)中获得的技能基础上,各小组将在一个大型系统上工作,该系统将在课程结束时与现场用户一起部署。着重于建立一个可能具有商业或研究价值的现实生活中的创新系统,开发过程将采用敏捷的方法,重点强调软件工程实践。学生将交付并展示一个工作系统,他们还将通过制作报告、网站、海报和演讲等材料,以书面、图形和口头形式展示他们工作的某些要素。完成该后,通过与客户在软件方面的紧密合作,提供实践经验。学生掌握了一系列规划、设计和建立工业标准软件系统的技能,他们将作为一个大团队的一部分,解决任何冲突。
软件设计工作室项目II(网络化工作室)通过介绍复杂和现实的软件系统,在他们开发单个软件的经验基础上,采取工作室的方式,让学生专注于软件的整合和联网,以创建更大的系统。教授与中型网络项目相关的软件工程技术,如分布式架构模型、大规模集成测试、分布式团队开发和大规模软件质量技术。在小组中,学生要提交报告、编码并展示一个工作系统。这项工作的内容将以一系列的口头、图形和语言形式呈现,如报告、网站、海报和演讲。该课程传授软件工程的应用、系统开发和应用编程原则方面的知识。对网络软件开发的概念也有一定的认识。通过评估,在项目和中等规模的小组背景下,项目管理和规划技能以及技术技能得到发展。学生将建立在他们在团队中工作的经验上,协调团队中的工作,解决问题或冲突。
海师帮可以为考生们提供专业的兰卡斯特大学软件工程课程辅导,帮助考生们熟悉课程都学什么?我们的老师们具有丰富的教学经验,能够针对个体的需求提供个性化的辅导。