Cardiff School of Computer Science and Informatics
Coursework Assessment Pro-forma
Module Code: CMT107
Module Title: Visual Computing
Assessment Title: Visual Computing Coursework
Assessment Number: 1
Date Set: 28 October 2019
Submission Date and Time: 6 December 2019 at 9:30am
Return Date: 18 January 2020
This assignment is worth 30% of the total marks available for this module. If coursework is
submitted late (and where there are no extenuating circumstances):
1 If the assessment is submitted no later than 24 hours after the deadline, the
mark for the assessment will be capped at the minimum pass mark;
2 If the assessment is submitted more than 24 hours after the deadline, a mark
of 0 will be given for the assessment.
Your submission must include the official Coursework Submission Cover sheet, which can
be found here:
https://docs.cs.cf.ac.uk/downloads/coursework/Coversheet.pdf
Submission Instructions
Complete the programming tasks as described in the Assignment section, and upload the files
listed in the following table onto Learning Central in the CMT107 module Assessment
Coursework section by 6 December 2019 at 9:30am.
Description Type Name
Cover sheet Compulsory One PDF (.pdf) file [student number].pdf
Source code Compulsory A zip file contains one or more
Java files and other files
necessary for the programs to
run correctly
Code_[student number].zip
Readme Compulsory One plain text file indicating
which features you have
implemented
Readme_[student number].txt
Any code submitted will be run on the School provided Linux laptop and must be submitted
as stipulated in the instructions above.
You may copy small code fragments from the CMT107 handouts and lab classes, or any
recommended and background textbooks for CMT107, including from the printed text,
CDs/DVDs, websites, etc. for the textbook, provided that your source code contains clear
reference to the origin of the code. You may not reproduce code written by any other student
or code obtained from any other source not mentioned above. If you are in doubt about
CMT107留学生作业代做、代写Informatics课程作业
whether you may include a code fragment that you have not written yourself, ask the lecturer.
Do not share your code with the other students, or publish it on any publicly accessible
websites, such as Github, Stackoverflow, etc. You will be under unfair practice investigation
if your code is found almost the same to another student’s, and the possible consequence for
both students is a mark of zero for the assessment or worse.
Use the laboratory classes to get guidance in doing this exercise. You are encouraged to
contact me by e-mail if you have any queries; it may well be possible for me to answer them
almost immediately. If necessary you are welcome to arrange to come and see me
individually about the coursework. But the meeting is only for clarifications about the
question, not for help in solving the problem.
Any deviation from the submission instructions above (including the number and types of
files submitted) will result in a mark of zero for the assessment.
Staff reserve the right to invite students to a meeting to discuss coursework submissions
Assignment
This coursework consists of two parts related to graphics and Image processing, respectively.
For you to complete the coursework in time, you are suggested to complete the graphics part
before the end of week 7, and then finish the image processing part. The total marks assigned
to each part and divided into each task are listed in the brackets.
Graphics [45 marks in total]
Write a program using JOGL to render a 3D scene, which can be navigated in a walk-through
fashion. You are free to choose the scene, but the scene and your program should exhibit the
features described below.
1. Rendering Framework [15]
Implement a framework to render a small shaded 3D scene with JOGL. It should
provide the following functionality:
(a) A rendering system which sets up the scene. It is important that the rendering
system is clearly structured to easily adjust the types and positions of light
sources, and add and remove objects, etc. from the scene (see below for the object
types).
(b) A navigation system which allows the user to display the scene from an arbitrary
camera position with keyboard AND mouse control to facilitate moving about the
scene by adjusting the view direction and moving forward/backward (or a similar
3D navigation system). This should change the view in a natural and predictable
manner.
2. 3D Objects [15]
Use the rendering framework to create a scene which contains at least three objects
shaded with different material properties. Your scene should contain at least one
object that is not provided in the labs, i.e., an object that is not a plane, sphere, cube,
or teapot, and it must be created by yourself rather than from a third party.
3. Texture mapping [15]
Implement the texture mapping on one of the objects in the scene.
Image Processing [35 marks in total]
Write a Java program to implement the Harris corner detector, each step of which should be
clearly shown in the code. It is not allowed to use functions from the computer vision
libraries, such as OpenCV, for the algorithm implementation. You can use the attached image
Room.jpg as a testing example, but you are free to choose any other images for testing. The
program should be able to:
1. Load and display an image to be processed by the algorithm [10]
2. Implement Harris corner detection algorithm [20]
3. Display the corner detection result [5]
Documentation [20 marks in total]
The source code should include concise comments, describing how the program is achieving
the various tasks. A Readme file is required to describe which tasks you have completed.
Learning Outcomes Assessed
• Programming of simple visual computing algorithms, including data handling.
• Understanding of the computational burdens associated with different processing
techniques and be able to select appropriate methods depending on the intended
application and context.
Criteria for assessment
Credit will be awarded against the following criteria.
Excellent (≥70) Good (60~69) Adequate (50~59) Poor (<49)
Functionality:
to what extent does the
program realise the task
described? (50%)
efficient and complete
implementation; all
cases are considered
Feasible
implementation, but
not optimal; not all
cases are
considered
progress towards a
full implementation,
but not fully working
with major
deficiencies
little or no
progress towards
implementation;
approach not
suitable
Design and Structure:
how clear is the structure
of the code and how well
are data structures and
algorithms used? (30%)
well structured code
with highly suitable
data structures and
elegant, clear
algorithms
good structure with
suitable data structures
and algorithms;
sometimes not optimal
attempt at using
appropriate data
structures and
algorithms visible;
sometimes structure
is confusing
code is mostly
obscure; little or
no structure is
visible in use of
data structures and
algorithm design
Code Documentation:
to what extent do the
comments help a reader to
understand the code?
(20%)

clear, concise
comments describing
ideas and high-level
structure without
unnecessary detail
clear comments about
high-level structure
and ideas; sometimes
incomplete or too
focused on details
some comments
about the structure
and ideas present, but
hard to follow and
too focused on
details
hardly any
comments or only
very confusing or
low-level
comments about
single instructions
Feedback and suggestion for future learning
Feedback on your coursework will address the above criteria. Feedback and marks will be
returned on 18 January 2020 via Learning Central. If you have any questions relating to your
individual solutions talk to the tutor or the lecturer.

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或 微信:codehelp

Module Code: CMT107的更多相关文章

  1. Node.js 的module 系统

    相较于原生的JavaScript,不同的JavaScript文件之间很难共享变量.有鉴于此,Node.js在JavaScript的基础上进行了扩充,引入了require,exports,module三 ...

  2. Exploring Python Code Objects

    Exploring Python Code Objects https://late.am/post/2012/03/26/exploring-python-code-objects.html Ins ...

  3. (转)Node.js module.exports与exports

    本文转自Node.js module.exports与exports 作者: chemdemo 折腾Node.js有些日子了,下面将陆陆续续记录下使用Node.js的一些细节. 熟悉Node.js的童 ...

  4. 公共模块定义/草案(Common Module Definition / draft - CMD草案)

    This specification addresses how modules should be written in order to be interoperable in browser-b ...

  5. 21.Module 的加载实现

    Module 的加载实现 Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 浏览器加载 传 ...

  6. Node.js中exports,module.exports以及require方法

    在Node.js中,使用module.exports.f = ...与使用exports.f = ...是一样的,此时exports就是module.exports的一种简写方式.但是,需要注意的是, ...

  7. Node.js中module文件定义的top-level变量为何是私有的

    在Node.js中,module文件里面使用var,const或者let定义的top-level变量为何是私有的,只能在这个模块文件中使用呢? 原因就是,在模块文件中的内容执行之前,node.js会降 ...

  8. 深入理解node.js的module.export 和 export方法的区别

    你肯定非常熟悉nodejs模块中的exports对象,你可以用它创建你的模块.例如:(假设这是rocker.js文件) exports.name = function() { console.log( ...

  9. ES6的新特性(20)—— Module 的加载实现

    Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 浏览器加载 传统方法 HTML 网页中, ...

随机推荐

  1. 【shell脚本】对100以内的所有正整数相加求和(1+2+3+4...+100)===sum.sh

    对100以内的所有正整数相加求和(1+2+3+4...+100) [root@VM_0_10_centos shellScript]# cat sum.sh #!/bin/bash # 对100以内的 ...

  2. Oracle define用法简介教程

    目录 1.define常量用法 2.&和&&符号用法 继上一篇博客Oracle绑定变量学习笔记,再写一篇define变量的简单教程 @ 1.define常量用法 注意:defi ...

  3. Oracle数据 查询操作日志

    SELECT t.SQL_TEXT, t.FIRST_LOAD_TIME,t.PARSING_SCHEMA_NAME FROM v$sqlarea t WHERE t.SQL_TEXT LIKE 'D ...

  4. 死磕 java同步系列之CountDownLatch源码解析

  5. php中搭建Web服务器和服务器配置

    1.搭建Web服务器     1.1目录结构 1.2访问服务器 访问规则:http://服务器ip地址/php页面 比如: http://localhost/demo.php http://127.0 ...

  6. Java生鲜电商平台-App系统架构开发与设计

    Java生鲜电商平台-App系统架构开发与设计 说明:阅读此文,你可以学习到以下的技术分享 1.Java生鲜电商平台-App架构设计经验谈:接口的设计2.Java生鲜电商平台-App架构设计经验谈:技 ...

  7. Python【day 17-2】面向对象-成员

    '''''' ''' 1.简述面向对象三大特性并用示例解释说明?[背写] 1.封装 狭义的封装:把一组属性封装到一个对象,创建对象的时候 广义的封装:代码块,函数.对象.类.模块-py文件都是封装 把 ...

  8. JVM垃圾回收器原理及使用介绍

    JVM垃圾回收器原理及使用介绍 垃圾收集基础 引用计数法(Reference Counting) 标记-清除算法(Mark-Sweep) 复制算法(Copying) 标记-压缩算法(Mark-Comp ...

  9. Winform中在ZedGraph中最多可以添加多少条曲线

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  10. idea使用心得

    简单的概括如下: IntelliJ系中的 Project  相当于Eclipse系中的  Workspace : IntelliJ系中的 Module  相当于Eclipse系中的  Project  ...