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. 【面试】Java中sleep和wait的区别

    1.sleep方法是Thread类的静态方法: wait方法是Object类的成员方法 2.sleep方法使当前线程暂停执行指定的时间,让出cpu给其他线程,但是它的监控状态依然保持着,当指定的时间到 ...

  2. Newtonsoft.Json 序列化踩坑之 IEnumerable

    Newtonsoft.Json 序列化踩坑之 IEnumerable Intro Newtonsoft.Json 是 .NET 下最受欢迎 JSON 操作库,使用起来也是非常方便,有时候也可能会不小心 ...

  3. OpenGL入门1.7:摄像机

    每一个小步骤的源码都放在了Github 的内容为插入注释,可以先跳过 前言 我们已经知道了何为观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点) OpenGL本身没有摄像机(Camera)的概 ...

  4. 织梦DEDECMS本地后台操作卡顿的解决方法

    打开/data/common.inc.php,把默认的$cfg_dbhost = ‘localhost‘修改为$cfg_dbhost = ‘127.0.0.1’;保存.然后你会发现后台操作起来流畅多了 ...

  5. Python--方法/技巧在哪用的典型例子

    就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到应用,还是沿用已有的方法,这样很不利于学习和掌握新姿势,从而拉长学习时间,增 ...

  6. Winform中自定义ZedGraph右键复制成功后的提示

    场景 Winform中实现ZedGraph中曲线右键显示为中文: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100115292 ...

  7. django2-登录与出版社

    1.django核心功能 因为django功能很多 ,出版社可以使用到部分功能,最快最简单了解django的运行模式,每个点后续细化去梳理 django的路由 django的视图 django的模板 ...

  8. 高强度学习训练第十天总结:Class文件

    今天这Class文件看的我一脸懵圈.有种当初学PE时候的感觉了. 类文件结构 如果计算机的CPU指令集只有X86一种,操作系统也只有windows,那也许Java语言就不会出现.Java在诞生之初就提 ...

  9. window启动webpack打包的三种方法

    1.在cmd终端执行 npx webpack命令 2.在package.json文件同级建立webpack.config.js文件,内容如下: const path = require('path') ...

  10. Word模板注入攻击

    Word模板注入攻击 0x00 工具准备 phishery:https://github.com/ryhanson/phishery/releases office版本:office 2010 0x0 ...