Module Code: CMT107
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的更多相关文章
- Node.js 的module 系统
相较于原生的JavaScript,不同的JavaScript文件之间很难共享变量.有鉴于此,Node.js在JavaScript的基础上进行了扩充,引入了require,exports,module三 ...
- Exploring Python Code Objects
Exploring Python Code Objects https://late.am/post/2012/03/26/exploring-python-code-objects.html Ins ...
- (转)Node.js module.exports与exports
本文转自Node.js module.exports与exports 作者: chemdemo 折腾Node.js有些日子了,下面将陆陆续续记录下使用Node.js的一些细节. 熟悉Node.js的童 ...
- 公共模块定义/草案(Common Module Definition / draft - CMD草案)
This specification addresses how modules should be written in order to be interoperable in browser-b ...
- 21.Module 的加载实现
Module 的加载实现 Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 浏览器加载 传 ...
- Node.js中exports,module.exports以及require方法
在Node.js中,使用module.exports.f = ...与使用exports.f = ...是一样的,此时exports就是module.exports的一种简写方式.但是,需要注意的是, ...
- Node.js中module文件定义的top-level变量为何是私有的
在Node.js中,module文件里面使用var,const或者let定义的top-level变量为何是私有的,只能在这个模块文件中使用呢? 原因就是,在模块文件中的内容执行之前,node.js会降 ...
- 深入理解node.js的module.export 和 export方法的区别
你肯定非常熟悉nodejs模块中的exports对象,你可以用它创建你的模块.例如:(假设这是rocker.js文件) exports.name = function() { console.log( ...
- ES6的新特性(20)—— Module 的加载实现
Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 浏览器加载 传统方法 HTML 网页中, ...
随机推荐
- 一、Mybatis配置详解
Mybatis配置详解 XML配置文件层次结构 下图展示了mybatis-config.xml的全部配置元素 properties元素 properties是一个配置属性的元素,让我们能在配置文件的上 ...
- C++ day01-C++的函数和对象
C++的函数和对象 1.1 1 混合型语言 c++以.cpp为文件扩展名,有且只有一个名为main的主函数,因保留了这个面向过程的主函数,所以被称为混合语言 2 注释方式 . C++的注释方式有两种, ...
- 【agc028E】High Elements(动态规划,线段树,贪心)
[agc028E]High Elements(动态规划,线段树,贪心) 题面 AtCoder 你有一个\([1,N]\)的排列\(P\). 一个长度为\(N\)的字符串\(S\)是好的,当且仅当: 两 ...
- Java开发桌面程序学习(六)——拖动文件获得文件路径
拖动获得文件路径 在windows软件中,很多软件都提供了拖动文件的打开文件的功能,JavaFx中也是有这功能,是通过监听器来实现的 监听器 setOnDragDetected(new EventHa ...
- C#将Excel数据表导入SQL数据库的两种方法
最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...
- python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝
1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...
- python基础(4):用户交互、if判断、while循环、break和continue
1. 用户交互 使⽤input()函数,可以让我们和计算机互动起来 语法: 内容 = input(提⽰信息) 这⾥可以直接获取到⽤户输入的内容 content = input("你吃了么?& ...
- 初学Python常见异常错误,总有一处你会遇到!
初学Python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了pytho ...
- numpy 和 tensorflow 中的各种乘法(点乘和矩阵乘)
点乘和矩阵乘的区别: 1)点乘(即" * ") ---- 各个矩阵对应元素做乘法 若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵. ...
- Java生鲜电商平台-促销系统的架构设计与源码解析
Java生鲜电商平台-促销系统的架构设计与源码解析 说明:本文重点讲解现在流行的促销方案以及源码解析,让大家对促销,纳新有一个深入的了解与学习过程. 促销系统是电商系统另外一个比较大,也是比较复杂的系 ...