Math 132A Assignment 6 1. Suppose we have a speech signal represented as a finite sequence of real numbers x1, x2, . . . , xn (at least one nonzero). If we record this signal on magnetic tape, suppose that xi is recorded as the real number yi for each i. Suppose that we believe that a good model of the relationship between the recorded signal and original signal is that they are scaled, i.e., yi = αxi for some constant α. Use the least squares method to find a formula for estimating α. 2. For this question, Consider the problem of finding the point x∗ ∈ R4 in the solution set of Ax = b with minimum norm, where (a) Calculate x* exactly. (Feel free to use a computer for this!) (b) Apply Kaczmarz’s Algorithm to generate the first 5 members of a sequence (x(0) , x(1) , . . .) converging to x*. Use µ = 1. 3. This question is about single linear neuron training. Suppose we have a training set T ⊂ R3 × R and we believe a good model for the training set is that of a function f : R3 → R defined by f(x) = wT x for some w ∈ R3. (a) Suppose that Apply Kaczmarz’s algorithm to find a good w. (Let’s say go up to w(3)). (b) Now suppose Use gradient descent to find a good candidate for w (again just do three iterations).
HUMS1005 Personalised English Language Enhancement - 2025 General Course Information Course Code : HUMS1005 Year : 2025 Term : Term 1 Teaching Period : T1 Is a multi-term course? : No Faculty : Faculty of Arts, Design and Architecture Course Details & Outcomes Course Description Personalised English Language Enhancement (PELE) is a self-directed learning course designed to help you enhance your communication skills in English. In this course, you will be guided to develop a personal project that meets your needs and implement it in a warm and safe environment being supported not only by the teachers but also by peer mentors. In addition, you will learn a number of important skills needed for life-long learning, including refective thinking and time management. Course Learning Outcomes Course Learning Outcomes CLO1 : Analyse and identify specifc linguistic areas that need improvement within a given context CLO2 : Develop a personal project tailored to individual linguistic needs, utilising tools and resources for language enhancement CLO3 : Strengthen communication skills through consistent implantation of the personal project CLO4 : Evaluate personal progress and cultivate refective, critical thinking skills CLO5 : Communicate critical personal learning outcomes with peers Course Learning Outcomes Assessment Item CLO1 : Analyse and identify specifc linguistic areas that need improvement within a given context • Personal Project Design (PPD) CLO2 : Develop a personal project tailored to individual linguistic needs, utilising tools and resources for language enhancement • Personal Project Design (PPD) CLO3 : Strengthen communication skills through consistent implantation of the personal project • Logbooks and Journal CLO4 : Evaluate personal progress and cultivate refective, critical thinking skills • Project Evaluation CLO5 : Communicate critical personal learning outcomes with peers • Oral Presentation Learning and Teaching Technologies Moodle - Learning Management System Assessments Assessment Structure Assessment Item Weight Relevant Dates Personal Project Design (PPD) Assessment Format: Individual Short Extension: Yes (1 day) 20% Due Date: 06/03/2025 11:59 PM Logbooks and Journal Assessment Format: Individual 30% Due Date: 07/04/2025 09:00 AM Project Evaluation Assessment Format: Individual Short Extension: Yes (1 day) 30% Due Date: 29/04/2025 09:00 AM Oral Presentation Assessment Format: Individual 20% Due Date: Week 10 Lecture or Tutorial Assessment Details Personal Project Design (PPD) Assessment Overview Students will design a personal project to address their individual English language needs. They are required to specify their personal project goal, background, method, resources, progress measurement,timeline, daily schedule and anticipated outcomes. The Personal Project Design (PPD) should be informed by relevant literature in the feld. The word limit for PPD is 1000. Students receive written feedback based on rubrics. This assignment is submitted through Turnitin and students can see Turnitin similarity reports. Course Learning Outcomes · CLO1 : Analyse and identify specifc linguistic areas that need improvement within a given context · CLO2 : Develop a personal project tailored to individual linguistic needs, utilising tools and resources for language enhancement Assessment Length 1000 words Assignment submission Turnitin type This assignment is submitted through Turnitin and students can see Turnitin similarity reports.
CS 225|mp_lists Goals In this MP(machine problem)you will: ● learn to manipulate linked memory by writing functions to modify linked lists ● practice debugging more complex code ● practice using templates ● get familiar with iterators Checking Out the Code All assignments will be distributed via our release repo on github this semester.You will need to have set up your git directory to have our release as a remote repo as described in ourgit set up You can merge the assignments as they are released into your personal repo with git pull --no-edit --no-rebase release main --allow-unrelated-histories git push The first git command will fetch and merge changes from the main branch on your remote repository named release into your personal.The--no-edit flag automatically generates a commit message for you,and the--no-rebase flag will merge the upstream branch into the current branch.Generally,these two flags shouldn't be used,but are included for ease of merging assignments into your repo. The second command will push to origin(your personal),which will allow it to track the new changes from release. You willneed to run these commands for every assignment that is released. All the files for this lab are in the mp_lists directory. Preparing Your Code This semester for MPs we are using CMake rather than just make.This allows for us to use libraries such as Catch2 that can be installed in your system rather than providing them with each assignment.This change does mean that for each assignment you need to use CMake to build your own custom makefiles.To do this you need to run the following in the base directory of the assignment.Which in this assignment is the mp_lists directory. mkdir build cd build This first makes a new directory in your assignment directory called build.This is where you will actually build the assignment and then moves to that directory.This is not included in the provided code since we are following industry standard practices and you would normally exclude the build directory from any source control system. Now you need to actually run CMake as follows. cmake .. This runs CMake to initialize the current directory which is the build directory you just made as the location to build the assignment.The one argument to CMake here is..which referes to the parent of the current directory which in this case is top of the assignment.This directory has the files CMake needs to setup your assignment to be build. At this point you can in the build directory run make as described to build the various programs for the MP. You will need to do the above once for each assignment.You will need to run make every time you change source code and want to compile it again. Background Information:Template Classes ldentical to what you saw in lecture,template classes provide the ability to create generic container classes.In this MP,you will be writing a List class. template class List { //implementation }; This simply says that our class List has a parametrized type that we willcall T.Similarly,the constructor will look like this: template List::List(){ //implementation } We need the template or template above all of our functions—it becomes part of the function signature.The keywords class and typename can be interchanged. Template classes need access to the implementation for compilation.Every time a different class is used as the template,the code must be compiled to support containing it.For example,if you want to make a List,the compiler must take the generic List implementation code and replace all the Ts with ints inside it,and compile the result(this process is called template instantiation).Our solution to this is to#include "List.hpp"at the bottom of our List.h file,and not includeList.h in our List.hpp file.This ensures that whenever a client includes our header file,he/she also gets the implementation as well for compilation purposes(there are other solutions,but this is how we will solve it in this course). Background Information:Linked Lists The interface of this List class is slightly different from what you have seen in lecture.This List has no sentinel nodes;the first node'Sprev pointer,and the last node'Snext pointer,are both NULL.In lieu of these sentinels,we keep a pointer head to the first node,and a pointer tail to the last node in the List.(In an empty list,both head and tail are NULL.)The List class also has an integer member variable,length,which represents the number of nodes in the List;you will need to maintain this variable. Background Information:Iterators If you are not familiar with iterators,please read our notes here. We use iterators to figure out where we currently are in the list,what is the next/previous node,and to access the data. Iterator class has one member variable,namely a pointer to the node in the list.Some of the core functionality includes moving the pointer,getting current location,and checking the location of the iterator. Background Information:GDB We have a reference guide for GDB here.You should read through it to get an idea of how to start gdb,what commands you have available,etc. Guide:How to use GDB To summarize a bit,you could run: gdb --args ./test"[part=1]" to debug the part one test cases with gdb, gdb --args ./test"*insert*" to debug all the tests with“insert”in their name. Once you start gdb to execute the tests you want to run,you can set breakpoints to help you debug.For example,we could set a breakpoint at the beginning of a test case we want to debug,or breakpoint(s)at the beginning or end of functions which are not behaving as we expect.For example,if we are failing the insertFront test,we could add a breakpoint at the end of the insertFront function and see if the list lookshow we expect.This will let us know whether to focus our debugging on exactly what the function is doing,or what the test case is doing after this call to insertFront. For example,we can set a breakpoint in line 25 of our List class like so: (gdb)b List.hpp:25 or a breakpoint in line 50 of the part 1 test cases like so: (gdb)b tests/tests_part1.cpp:50 We can also set breakpoints using function names: (gdb)b main sets a breakpoint at the beginning of main,and (gdb)b List::sort() sets a breakpoint at the beginning of the sort function.You can tab complete this,so for example after typing b List::ins you can press tab to see a list of possible functions starting with ins in the List class,templatized with int. Remember that Catch will print not only the name of a failing test case,but also what file the test was in and the line number of the failing assertion.You can use this to decide which tests to run and where you might want to set breakpoints. OAll of the functions should be implemented iteratively outside of mergesort,which is recursive.If any functions are done recursively,you willencounter a stack overflow. Part 1:Debugging &Implementing Linked Lists In your mp_lists folder,you will find that the List class is split into four.h or.hpp files: ● List.h ● List.hpp ● List-ListIterator.hpp ● List-given.hpp We have provided a partial implementation of a few List functions for this part of the MP.Some functions are written,and some are unwritten.Those functions which are already coded may have a few bugs in them!This part of the MP is to help get you used to debugging certain kinds of logical and memory related bugs,as well as writing pointer manipulation code.All the functions are specified in List.h,and their(potentially empty)implementations are in List.hpp orList-ListIterator.hpp for you to write. You should use gdb,valgrind,and any other debugging tools or techniques you're comfortable with to complete the first part of this MP(as well as general debugging in Part 2 and beyond). See the [Doxygen][List]for details of the List class 1Notes on testing There are two ways to test this MP: 1.Using make to make list.cpp into./lists,which allows you to write your own lists to test. 2.Using make test to make./test,which allows you to run the automated tests. 3.You can add test to the automated tests in tests_student.cpp. You're free to run Valgrind (or other tools)on the executables: val(val)grind(grind) ./.t(/)est(lis)ts[part=1] You can also select test cases to run by their names,and run those under valgrind or gdb as well: ./test"List::reverse" ./test"*insert*" valgrind ./test"*insert*" gdb --args ./test"*insert*" List() This should default construct the list.Keep in mind everything mentioned in the background for the Linked List class. ~List()and_destroy() Since the List class has dynamic memory associated with it,we need to define all of the Rule of Three.We have provided you with the Copy Constructor and overloaded operator=. ● You will need to implement the destroyO helper function called by operator=(the assignment operator)and the destructor~List() · The_destroy()function should free all memory allocated forListNode objects. Insertion The insertFront Function (SeetheDoxygen for insertFront.) ● This function takes a data element and prepends it to the beginning of the list. ·If the list is empty before insertFront is called,the list should have one element with the same value as the parameter. ·You may allocate neW ListNodeS. Example For example,ifinsertFront is called on the list of integers with the parameter 6,then the resultant list should be The insertBack Function (SeetheDoxygen for insertBack.) ● This function takes a data element and appends it to the end of the list. ·If the list is empty before insertBack is called,the list should have one element with the same value as the parameter. ·You may allocate neW ListNodeS. Example For example,ifinsertBack is called on the list of integers with the parameter6,then the resultant list should be Testing Your insert Functions Once you have completed insertFront and insertBack,you should compile and test them.These tests do not rely on your iterator make test ./test "List::insertFront*" ./test"List::insertBack*" ./test"List::insert*" Iterator In order to provide the client code with the ability to read the data from the list in a uniform way,we need to have an iterator.We have provided a list iterator class List-ListIterator.hpp which has some functionality implemented.However,there are a few functions yet to be written as wellas some functions with buggy implementations!You will need to worry about all the functions with a @TODO comment: ● ListIterator&operator++() ● ListIterator operator++(int) ● ListIterator&operator--() ● ListIterator operator--(int) ● bool operator!=(const ListIterator&rhs) You will also need to implement the begin() and end()functions in List.hpp to have a way of obtaining an iterator from a List. Many of the more advanced functionality will be tested by using your iterator.So,you should make sure to debug and implement these after you have finished your insert functions but before you start working too much on the later functionality. The split Helper Function (SeetheDoxygen for split.) ● This function takes in a pointer start and an integer splitPoint and splits the chain of ListNodes into two completely distinct chains of ListNodes after splitPoint many nodes. ·The split happens after splitPoint number of nodes,making that the head of the new sublist,which should be returned.In effect,there will be splitPoint number of nodes remaining in the current list. ·You may NOT allocate neW ListNodeS Example For example,if split is called on the list of integers listl= then after calling list2 =list1.split(2)the lists will look like listl == list2 == Testing Your split Function Once you have completed split,you should compile and test it. make test ./test"List::split*" You should see images actual-split_*.png created in the working directory (these are generated by repeatedly splitting split.png).Compare them against expected-split_*.png. The waterfall Function (Seethe Doxygen for waterfall.) ● This function modifies the list in a cascading manner as follows. ·Every other node (starting from the second one)is removed from the list,but appended at the back,becoming the new tail. ● This continues until the next thing to be removed is either the tail(not necessarily the original tail!)or NULL. ·You may NOT allocate neW ListNodeS. ·Note that since the tail should be continuously updated,some nodes will be moved more than once. Example For example,if waterfall is called on the list of integers then the call to waterfall()should result in (Do you see the pattern here?) Step-by-Step Example We will look again at the list When we call waterfal1,this is how it should look step-by-step: -Skip the 1 curr tail -Remove the 2 and move it at the end curr tail -Skip the 3,and move the 4 to the end curr tail -Skip the 5 and move the 6 to the end curr tail -Skip the 7 and move the 8 to the end curr tail -We have moved past the original tail of the list. This is okay!Skip the 2 and move the 4 to the end, curr tail now for the second time! Skip the 6 and move the 8 to the end,now for the second time! curr tail We are done now because we skip over the 4 and get to the tail of the list.The s stays in place, and we have finished.If you were keeping track of moves,you would notice that a number (they happen to be in order here for convenience)gets moved the same amount of times as it is divisible by 2!Technically this might not be true for the s,but we could have moved it that last time,it just would have stayed where it was(remove it from the tail and put it back to the tail).Kinda neat,huh? Testing Your waterfal1 Function Once you have completed waterfall,you should compile and test it. make test ./test"List::waterfall*" Testing Part 1 Compile your code using the following command: make test After compiling,you can run all of the part one tests at once with the following command: ./test [part=1] Notes ● These tests are deliberately insufficient. We strongly recommend augmenting these tests with your own. ● Be sure to think carefully about edge cases and reasonable behavior of each of the functions when called on an empty list,or when given an empty list as a parameter. ·It is highly advised to test with lists of integers before testing with lists of HSLAPixelS. ·Printing out a list both forward and backwards(eg,using an iterator or a custom print function)is one way to check whether you have the double-linking correct,not just forward linking.Printing the size may also help debug other logical errors. ODOUBLE CHECK that you can confidently answer“no”to the following questions: ·Did I allocate new memory in functions that disallow it? ·Did Imodify the data entry of any ListNode? ·Do l leak memory? Extra Credit Submission For extra credit,you can submit the code you have implemented and tested for part one of mp_lists.Follow the submission instructions section for handing in your code. Part 2 The reverse Helper Function (SeetheDoxygen for reverse.) In List.hpp you will see that a public reverse method is already defined and given to you.You are to write the helper function that the method calls. ·This function will reverse a chain of linked memory beginning at startPoint and ending at endPoint. ·The startPoint and endPoint pointers should point at the new start and end of the chain of linked memory. ● The next member of the ListNode before the sequence should point at the new start,and the prev member of the ListNode after the sequence should point to the new end. ·You may NOT allocate neW ListNodeS. Example For example,if we have a list of integers (with head pointing at 1and tail pointing at 7)and call the public function reverse() The resulting list should be (with head pointing at 7 and tail pointing at 1) 9 Your helper function should be as general as possible!In other words,do not assume your reverse()helper function is called only to reverse the entire list-it may be called to reverse only parts of a given list. Additionally,the pointers startPoint and endPoint that are parameters to this function should at its completion point to the beginning and end of the new,reversed sublist. The reverseNth Function (SeetheDoxygen for reverseNth.) ·This function accepts as a parameter an integer,n,and reverses blocks of n elements in the list. ·The order of the blocks should not be changed. ·If the final block(that is,the one containing the tail)is not long enough to have n elements,then just reverse what remains in the list.In particular,ifn is larger than the length of the list,this will do the same thing as reverse. ·You may NOT allocate neW ListNodeS. Example For example,if reverseNth is called on the list of integers then the call to reverseNth(3)should result in For the list of integers the call to reverseNth(4)should result in 1Hint You should try to use your reverse()helper function here. Testing Your reverse Functions Once you have completed reverse and reverseNth,you should compile and test them. make test ./test"List::reverse" ./test "List::reverseNth #1" ./test"List::reverseNth #2" Sorting You will be implementing the helper functions for one more member function of the List template class:sort.This is designed to help you practice pointer manipulation and solve an interesting algorithm problem.In the process of solving this problem,you willimplement several helper functions along the way-we have provided public interfaces for these helper functions to help you test your code. Themerge Helper Function (SeetheDoxygen for merge.) ·This function takes in two pointers to heads of sublists and merges the two lists into one in sorted order(increasing). ● You can assume both lists are sorted,and the final list should remain sorted. ·You should use operator
Assignment Information Module Name: Strategic Portfolio and Programme Management Module Code: 7026SSL Assignment Title: Portfolio Management Office at UCL Medical University Assignment Due: 25/2/25 at 18:00 UK time Assignment Credit: 5 credits Word Count (or equivalent): 1000 words +/- 10% Assignment Type: Standard Percentage Grade (Applied Core Assessment). You will be provided with an overall grade between 0% and 100%. You have one opportunity to pass the assignment at or above 40%. Assignment Task This assignment is an individual assignment, which requires you to prepare a 1000-word report. You have recently been appointed to a newly established Portfolio Management Office at University College London (UCL), UCL Medical School, where your first assignment is to review the University’s portfolio of current and potential change initiatives. A list of these, together with a summary of University College London (UCL), UCL Medical School's strategic objectives is provided in Appendix A. at the end of this document. Following the appropriate stages of the Portfolio Definition Cycle, critically evaluate these change initiatives. Your evaluation should include: • Categorising each change initiative according to which strategic objective(s) it supports. • Prioritising each change initiative according to its expected financial return (Net Present Value) and its likelihood of success (Risk). • Plotting the results of your analysis on a Portfolio Bubble Map. University College London (UCL), UCL Medical School has insufficient resources (funds and staff) to implement all the change initiatives at the present time. Based on your evaluation, recommend which FIVE change initiatives University College London (UCL), UCL Medical School should pursue, justifying your choice through reference to relevant portfolio management theory. Please see the Company Background Supplemental document for detailed information on the case study. For more specific information about the criteria mentioned above, see the standard marking rubric. It is important that you read the detailed rubric for this CW1 before you start to design it. Source Material: The word count is 1000 words. • The word count is 1000 words in total +/- 10%. • There will be a penalty of a deduction of 10% of the mark (after internal moderation) for work which falls under or over 10% of the word limit. • The word limit does not include charts, figures, tables, headings, in-text citations, references and the Appendix (optional). • Ensure that all tables, diagrams and models are labelled, include a citation and are discussed in the text. • You must state the number of words used on the front cover of each part of the assignment. This assessment is categorised as AMBER for the use of AI. You may use AI for the following only: • Inspiration: using AI tools to generate research questions or topic. • Planning and management: using AI tools to suggest a title, structure, subheadings, or themes, to generate templates, to suggest processes for task management, or to generate prompts to assist thinking through assessment structure or task management. • Sources and data collection: using AI tools to suggest sources. • Summarising and consolidating notes: using AI tools to summarise notes or to consolidate notes. • Translation: using AI tools to translate small sections of your written or recorded work into the language(s) used in an assignment • Presentation: using AI tools to present data in an accessible format such as by generating, graphs, charts, tables, slides, images, word-clouds, animations, or captions. • Checking: using AI tools to proofread work. Where permitted, any assistance/content generated by AI is not your own work and must be acknowledged within your work (see submission instructions below). Failure to do so is academic misconduct. Submission Instructions: Your assignment should be presented as a report , Important points to remember • All discussion and recommendations should be supported by reference to academic and professional publications. • A list of references must be included. • You must ensure you are not plagiarising others published works. • Appendices should only be used to support information within the report. • Formatting of submission should always be Microsoft Word and not PDF. You need to acknowledge how you have used any AI tool by inserting a table as per the example below before your list of references: Tool How used in this assignment e.g. ChatGPT-3.5 Suggestions of topics e.g. Microsoft Copilot Consolidating notes Etc. CRITERIA Criteria 1. Categorisation 2. NPV calculations 3. Prioritisation 4. Bubble Map 5. Recommendations 6. Evidence of reading, use of resources and research For more specific information about the criteria mentioned above, see the attached standard marking rubric. It is important that you read the detailed rubric for this CW before you start to design it. Instructions: The assessment must be submitted by 18:00 (UK time) on the given date and time. • Your coursework will be given a zero mark if you do not submit a copy through Aula platform. Please take care to ensure that you have fully submitted your work. • Please ensure that you have submitted your work using the correct file format, unreadable files will receive a mark of zero. The Faculty accepts Microsoft Office documents, unless otherwise advised by the module leader. • All work submitted after the submission deadline without a valid and approved reason (see below) will be given a mark of zero. • The University wants you to do your best. However we know that sometimes events happen which mean that you can’t submit your coursework by the deadline – these events should be beyond your control and not easy to predict. If this happens, you can apply for an extension to your deadline for up to 5 working days, or if you need longer, you can apply for a deferral, which takes you to the next assessment period (for example, to the resit period following the main Assessment Boards). You must apply before the deadline. You will find information about the process and what is or is not considered to be an event beyond your control athttps://share.coventry.ac.uk/students/Registry/Pages/Deferrals-and-Extension.aspx • Students MUST keep a copy and/or an electronic file of their assignment. • Checks will be made on your work using anti-plagiarism software and approved plagiarism checking websites. Development of Skills and Attributes This module aims to prepare students in portfolio and programme management techniques. It will develop the student’s understanding of a number of portfolio and programme management Using a variety of teaching methods, students will understand different portfolio and programme management techniques.
COMP 2131 Programming Assignment-1 100 marks = 8% of final grade Getting started in C 1. Introduction The purpose of this assignment is to get familiar with C Language, use functions and array, and learn how to design a simple game with a friendly user interface using C Language. 2. Instructions You can use nano or any other editor to write your C code. 3. Steps: In this assignment, you will create a simple Tic Tac Toe game designed for one player (against the computer). You will need to create arrays and functions to complete this program. 1. The first screen should ask the user for his name, print a welcome message, and displays an empty 3x3 Tic-Tac-Toe board. Then, the program should ask the user to put the coordinates of his move. Once the user enters the coordinates, the program should respond accordingly with a print of the user’s move and the computer’s move. This should go on until a winning pattern is found. After you complete the program, copy the code from UNIX environment to Notepad in windows and upload the ‘C’ file to the Open Learning Faculty Member. Marks Distribution Steps Completed Upto Marks I Game Board designed 25 II User Inputs taken and marked on the board 25 III Validate the inputs i.e. no two inputs at same place and no input outside the range 20 IV Check the winner/loser and complete the game 30 Total 100
CEGE0102: Professional Skills in Civil Engineering GIS Coursework – Personal Map – January 2025. Your GIS coursework combines the work you have carried outin GIS Practical 1 and GIS Practical 2. If you have successfully completed those sessions, then you will have all the skills required to complete the coursework. This assessment is worth 15% of the module, CEGE0102: Professional Skills in Civil Engineering. The setting and submission dates areas follows: Group Date Set Date Due 1 13/01/2025 17/02/2025 9AM 2 27/01/2025 24/02/2025 9AM Description Your task is to produce 2 maps, pertaining to the outputs of the GIS Practicals. Your submission will be 2 pages combined (one for each map). Map 1: Please make a map of an area of your choice, using Ordnance Survey Mastermap data downloaded from Edina Digimap collection. This may be the area that you worked on in GIS Practical 1 or adifferent area. Your map should focus on a particular topic and should include a buffer around a feature or feature(s), in which some other interesting features are shown. Examples include: • Your route to UCL: Draw a map of your route to UCL, perhaps via different transport modes. Draw a buffer around the route and map the coffee shops that you could visit on your way to UCL • Your daily walking or exercise route: Map where you usually travel to exercise, go grocery shopping, meet friends etc. • Proximity to the beach: Map the hotels or other facilities that are within a certain distance of the beach (coastline) or some other leisure facility. You are encouraged to be creative with your choice of topic. Your map should meet the following requirements: • You must have at least one layer for each vector data format (i.e. at least one points layer, one lines layer and one polygon layer). These can be manually digitised or extracted from existing datasets. They must be of your own creation. • You must include relevant map elements,e.g.: scale bar insensible metric units, North arrow, map legend etc. • You must include the appropriate copyright statements for any data sources included in your map. • You must include a buffer or set of buffers around specified feature(s). • Consideration of cartographic design elements must be evidenced (e.g. in symbology). Map 2: Please produce amap showing all the towns in Wiltshire that are within 5km of the M5 motorway. • You must include relevant map elements,e.g.: scale bar insensible metric units, North arrow, map legend etc. • You must include the appropriate copyright statements for any data sources included in your map. • Consideration of cartographic design elements must be evidenced (e.g. in symbology). Marking Criteria All maps will be marked anonymously so please do not include any identifying information in either the map itself or the filename. Map 1 will be weighted at 80%; Map 2 will be weighted at 20%. In order to achieve a mark in the First Class band (70+) your mark will meet all of the specifications described in the section above. There will be no errors or very few errors (see below). The map title and filename for your submitted work will be sensible and descriptive. The submission is electronic. You will have to export you map as .PDF file so that the assessor can view it. Instructions for how to do this are included in the GIS Practical 1 handout. All features should be identifiable and viewable at A4 size. Try to imagine your marker printing out the map and being unable to zoom in. If you only submit one map, your map will be capped at the maximum for that element (i.e. 80 for Map 1; 20 for Map 2). An excellent map (80+) will meet and exceed the specifications through excellent cartography (good symbologies, neat labelling, good use of colour etc.), creativity and/or use of additional functions or data that were not introduced in the practical sessions. Where there are elements of the specification missing and/or there are errors present in your work, your mark will movedown from the First Class band. Errors to avoid include, but are not limited to: • Typographical errors in any of the text present in your map • Incorrect features and locations displayed • Leaving the blue selection highlight ON in your map, not clearing it before completion. • Messy presentation (e.g. overlapping features or labels, inappropriate feature symbology, visible data frame edges). • Not meeting the coursework specification (this is a big one!). • Inappropriate scale bar units (should be metric and appropriate for the scale at which the map is displayed, scale bar divisions should be sensible,i.e. in 0s and 5s). • Elements on the map not appearing in the legend, and viceversa. • The purpose and message of your map is unclear. • Incorrect file format for submission (file does not open for the assessor). • Poor filename chosen (needs to be simple, descriptive and professional). Attention to detail is crucial in order to achieve the top grades. Submission The submission consists of two parts: Part 1: The personal map as outlined above Part 2: The Wiltshire map you created in practical 2 IMPORTANT: You should submit your files as images exported from ArcGIS Pro. While on Layout view click on the ‘Share’ tab and then ‘Export Layout’. The preferred format is PNG. DO NOT SUBMIT THE .APRX or .MXD FILE. If you do the marker will not be able to open it and you will receive a grade of zero. Only part 1 will be graded. However, if you do not upload part 2 then 10 marks will be deducted from your overall grade for this assignment. Assignments should be submitted on Moodle. You may either submit the two files separately or place them in a zipped folder. Grading is anonymous so please do not put your name on your map.
BSc Computer Science CM3035 - Advanced Web Development Final Coursework: Build an eLearning app Introduction During the course so far, we have developed several applications using Django. This has covered single page applications, database schemas, appropriate model design, forms and templates, RESTful webservices, Celery, Django Channels, Web Sockets, Authentication and many other topics. For this assignment you are tasked with developing an eLearning application using all knowledge you have gained on the course so far. This assignment is worth 50% of the total mark for this module. Task To implement the eLearning web application. The minimum application requirements are: Your application should allow users to create new password secured accounts. You should have two different types of users i.e. students and teachers. Note: each type should have different permissions e.g. a teacher can have access to several student records, but this is not a possible for a student account. You should collect and store an appropriate amount of information about each user (e.g. username, real name, photo etc.). Each user should have a “home” page that shows their user information and any other interesting data such as registered courses, upcoming deadlines, etc. It should also display user status updates. These home pages should be discoverable and visible to other users. Students should be able to post status updates to their “home” page. Students should also be able to leave feedback for a particular course. Teachers should be able to search for students and other teachers. Teachers should create the courses and upload course material – images, pdfs, etc. Teachers should view their courses and see a list of students enrolled on their course. Students should see a list of available courses and select the courses they want to enrol to. Additionally, users should be able to use a portion of the application that makes use of real time communication by using web sockets. Some examples may be real-time text chat, shared whiteboard between students and teachers etc. Other functionality could also utilise audio streaming and file transfers. You are free to use web sockets as you wish but you must include 1 web sockets app in your application. An appropriate REST interface for User data should be provided. The application should include functionality that makes appropriate use of Web Sockets. You are free to design the application layout as you wish. Each functional module (student list, courses, search results, etc...) may be a separate page or you may choose to make the application a Single Page Application. Deliverables D1. A django application that implements an eLearning web application and fulfils the functional requirements. The Application should include some users (i.e. students and teachers) for demonstration purposes. D2. A report (4000-6000 words) describing the application and the reasoning for its design and functionality. The report should explain how your application meets the requirements (see below for criteria R1-R5). Explain the logic of your approach, why is your code arranged as it is? Explain the design of your application, covering all design and implementation decisions you have made. The end of the report should critically evaluate your application. Discuss your design and implementation, did it work well? what parts of the application could be better? What would you change if you attempted the project again? This report should also include a brief section on how to run the unit tests. Finally include a section on how to unzip, install requirements and run your application: • A list of all packages and the versions used for your implementation. • Your development environment i.e. the operating system and python version • Instruction for logging into the django-admin site i.e. username and password • Login credentials for teacher and students • Include how to run the unit tests D3: Include a video of your web application showing and verbally highlighting the main functionalities and your achievements. You can upload the video in .mp4 format or use the alternative link – see submission page. Your video should show how you: • install the app using the requirements.txt • talk about the database design and normalisation • test the app by running the tests • launch the app and logging in – showing e.g. feedback status updates for a course • launch redis server and in a second browser to login the second user to initiate a chat between students or a student and teacher. This should not be longer than 10 minutes. We recommend that you capture the video in mp4 format using software such as OBS. D4. Bonus points will be given to those who deploy their app using AWS, Digital ocean, etc. You should supply details in your report i.e. app address and login details. Requirements We will assess your work based on the following requirements and criteria: R1: The application should implement the following: a) Users to create accounts b) Users to log in and log out c) Teachers to search for students and other teachers d) Teachers to add new courses e) Students to enrol themselves on a course f) Students to leave feedback for a course g) Users to chat in real time h) Teachers to remove / block students i) Users to add status updates to their home page j) Teachers to add files (such as teaching materials to their account and these are accessible via their course home page k) When a student enrols on a course, the teacher should be notified l) When new material is added to a course the student should be notified R2: The application should also use: a) correct use of models and migrations b) correct use of form, validators and serialisation c) correct use of django-rest-framework d) correct use of URL routing e) appropriate use of unit testing R3: The application should implement an appropriate database model to model accounts, the stored data and the relationships between accounts R4: The application should implement appropriate code for a REST interface that allows users to access their data R5: The application should implement appropriate tests for the server-side code Code style and technique Your code should be written according to the following style and technique guidelines: C1: Code is clearly organised into appropriate files (i.e. view code is placed in an appropriate view.py or api.py file, models are placed in an appropriate models.py file) C2: Appropriate comments are included to ensure the code is clear and readable C3: Code is laid out clearly with consistent indenting, ideally following python pep8 standard C4: Code is organised into appropriate functions with clear, limited purpose C5: Functions, classes and variables have meaningful names, with a consistent naming style. C6: Appropriate tests to cover the API functionality are provided. Submission You should write a brief report, record a video demo and submit your source code. The submission should contain the following items and information: S1: Deliverables D1 compressed in standard .ZIP format. S2: Deliverables D2 and D4 in .PDF format. S3: Deliverable D3 in .mp4 format. S4: Deliverable D3 - alternative link – use of YouTube or similar and submit the link. Make sure your video remains unlisted. Marking Criteria The application will be graded on whether it is technically correct and implements the API as requested. Code should be clear and easy to follow. The application should be well organised - for instance - it should make correct use of models, API, view and serialiser files. A good application will include a suite of tests that ensure that application correctly implements the API that is described.
Java Lab 6 Fall 2021 In this lab, you will practice with classes. 1. Create a project named Lab6. For each class specification listed in the problems 2-5, create the class in the src folder. In addition to any other methods mentioned below, each class should have the following methods (feel free to use IntelliJ to auto-generate these, see Code->Generate): - default constructor - one overloaded constructor for all the member data - getters and setters for all member data - a toString( ) method. This should return a formatted string containing the member data with labels, such as "minimum: " + minimum, for the minimum data field in Sensor. 2. Class Sensor. Data: minimum, maximum, currentValue, interval – double; location, type – String; id – int. Methods: boolean trip( ). This method returns true if the currentValue is less than minimum or greater than maximum and returns false otherwise. 3. Class Device. Data: type, location – String; id – int. Methods: void actuate( ). This method prints the formatted data (that is, it prints toString() ) in ALL CAPS. 4. Class Room. Data: length, width– double; name – String; id – int. Methods: double getArea( ). This method computes and returns the room's area. 5. Class Alarm. Data: message – String; id -int. Methods: void soundTheAlarm( ) – displays the message and simulates a 911 call. 6. Create a class called Lab6; in it, create a main method the does the following: - create a Sensor object named temperature with data (in the order listed above): 0.0, 120.0, 68.0, 1.0, kitchen, temperature, id 1. - create a Device object named extinguisher with data fire extinguisher, kitchen, 1. - create a Room object named kitchen with data 12.0, 15.0, kitchen, 1. - create an Alarm object named bell with data "Ding! Ding!", 1. - display all the objects by printing their toString( ). 7. Continue with main: Display a welcome message. Display the Room information (yes, again). Create a loop that asks the user if they want to enter a new value, Y or N; loop until they enter N. In the loop, show the current kitchen temperature and prompt the user enter a new temperature; use it to reset the temperature object's currentValue, then see if that tripped the sensor – if it did, actuate the extinguisher, then sound the alarm; then reset the kitchen temperature back to what it was. 8. There are four related classes. How should they be organized? And how should they communicate with each other? Write your answer as a comment at the end of main( ); include in it: (a.) why you decided on this organization, and (b.) how the communication in main's loop would occur – which object/method would main call, then which object/method would that call, to get all the same work done. Deliverable: Add your name and Andrew id to the comment at the top of the Lab6 class file. Zip all the .java files and upload it to Canvas.
Honours Level 4 Projects 2024–2025 Introduction All B.Sc., M.A. and M.Sci. students at Honours Level 4 with a mathematics component in their degree programme are required to carry out project work worth 20 credits. Subject to any additional rules in their other subject, students on a joint degree programme with mathematics can only do one project at level 4, in either maths or their other subject. The two project types There are two options to choose from: • In a Standard Project a student works independently but under regular supervision by a member of staff on an appropriately chosen mathematical topic that they learn from textbooks and other suitable sources and then present in a 25 page long report. • In an Ambassador Scheme Project, a student interested in school teaching visit a primary or secondary school and design and deliver a mathematical activity there. Afterwards they write a 15-20 page report (up to a maximum of 20 pages). Aims The aim of the Standard Projects is to provide experience of independent working on an appropriately chosen mathematical topic. Intended Learning Outcomes By the end of this course students will be able to • Study independently a mathematical topic in depth and produce a written account of it. • Demonstrate skills in the written presentation of mathematical material, including the use of LATEX or other appropriate mathematical software. • Effectively use written and other sources of mathematical knowledge. • Effectively organise a timetable involving the delivery on time of a substantial report based on independent research. • Integrate the knowledge obtained in lecture courses and from other sources in order to produce an extended piece of writing. Topics and allocation A list of projects offered by our academics will be available at the beginning of September. An online survey will then be sent to all 4H students and all students doing a Maths project should enter their top 7 choices from those offered. The survey link will be distributed via email. The deadline for returning all choices will be around 1–2 weeks after the project list is circulated and students are encourage to discuss potential projects with supervisors. Allocation of projects will take place using an optimisation algorithm that takes into account student preferences and supervisor capacity and availability. Therefore it follows that there is a definite chance that not everyone will get their top choices! So your last option should be a topic you would be happy to work in. The algorithm will run just before the start of the academic year and the students will be informed of their allocations promptly. Students who do not respond to the survey will be allocated based on project/supervisor availability and will get no say in the choice. So it is in your interest to respond to the survey before the deadline. Overview Level and approach. The mathematical level in the project should be at least at the standard of a Level 4 Honours course. The student should decide the topic after consulting with the supervisor. The project can be to write a detailed mathematical account building to a key result, or it can instead be to present a range of examples for such a result. It can be a survey, comparing ideas, or to investigate mathematical, physical, biological problems or others that use mathematical methods. A project may involve substantial computer programming, but these have to be embedded into a mathematical framework. Originality. The project is not required to contain original results, the material can be collected from textbooks, mathematics journals, the web and other sources. However, projects must demonstrate originality in the form. of presentation and could involve own work for example in the form. of the independent computation of concrete examples that illustrate the general theory described. Overlap with lecture courses. The content of a project must not overlap significantly with courses or other work undertaken by the student, such as summer projects or projects written in Level 3. Timeline Term 1 At the beginning of Term 1 every student has to contact their supervisor in order to arrange regular supervision. Neither the supervisor nor the Head of Level 4 will contact a student to trigger the supervision process, although Advisers of Study are encouraged to make sure their advisees have managed to arrange regular supervision. During Term 1, students working under a particular supervisor will have group supervision, regularly meeting to discuss their progress as a group. During this period, the group will carry out work on the broad mathematical background underlying specific projects to diverge to individual specific project topics by the end of Term 1. As a guideline, every student is entitled to and should aim at receiving roughly 10 contact hours of supervision/feedback during the academic year, the majority of which should happen in Term 1. An interim report should be submitted by email to the supervisor in November. This report should be no longer than one single side of A4 and contain at least: • one paragraph summarising your understanding of the background material and your progress so far • one paragraph detailing your plans for the remainder of the project. Term 2 The second term is to be devoted to writing the report. Meetings with the supervisor should be brief and to address final questions. Draft reports of the Standard Projects are to be submitted directly to the supervisors in January. Students will receive feedback within two weeks. The drafts can be incomplete for which there will be no penalty. It is more important that the feedback opportunity is not missed. The final reports for both types of projects have to be submitted in March. The details of the submission process will be posted to Moodle. Formative assessment Regular meetings. Students should meet their supervisor at least once every two weeks. The supervisor will answer questions, suggest and explain the next steps, and discuss and comment on the progress. Term 1 meetings will be primarily group meetings to work through background material. The duration and form. of Term 2 meetings will be adapted to suit individual preferences but supervisors will be mindful that that granting excessive supervision to one student means disadvantaging others. Throughout the project, supervisors will set out clearly their expectations for the students. Students are highly encouraged to ask questions. For questions that request assistance with tasks that the supervisor think they should be able to carry out independently, the supervisors will explain this to the students and then give them the time and chance to meet the expectations. Draft report. Students may submit a draft report (see previous section) in electronic form. to their supervisor. Supervisors will read and comment on this, and provide detailed feedback within two weeks. The draft does not need to be anywhere close to the final report, but the structure should be planned and the aims and goals of the project should be clearly formulated. When the supervisor reads the draft, they will make general comments and suggestions for, say, more examples or less detail. They might not make detailed corrections or editing, though, but obviously students may ask for help with making the corrections. Summative assessment Format. The report must be at most 25 pages A4 in length, word processed in 12 pt type using the LATEX template provided on Moodle, and must include: • A title page containing the project title, student’s name and matriculation number and the supervisor’s name. • An abstract summarising the topic and content of the project and a table of contents. • The main body of the report which should usually begin with an introduction • A bibliography. Project reports must not exceed the page limit in the main body of the report - that is, the front matter, bibliography etc. does not count towards this page limit. Where appropriate, additional material (e.g. computer code or data tables) may be included in the form. of appendices that markers may ignore. If the report requires including a large amount of diagrams and figures in the main body, exceptions from the page limit may be made after consultation with the supervisor and the Head of Level 4 who will inform. the second marker. The aim of these page limits is to protect markers from excessive marking duties as well as students from excessive expectations of the supervisor or themselves. Content and style. The main body should begin with an introduction which gives a brief overview of the project and states its aims and objectives and also the intended readership. It can also include information about notation used or any prerequisites one is assuming. A natural choice of readership are the peer students, so that one assumes the reader is familiar with the mathematics taught in the first three years of our Honours Programme, while all definitions and results that go beyond that are introduced and explained. Structuring the project is important and will be assessed. The project should be meaningfully divided at least into sections with well chosen titles. The writing style. should be consistent and concise. Originality. In the declaration, which will be signed electronically when the project is uploaded onto Moodle, students affirm that the project is their own work and that they have read and understood the University and School Regulations on Plagiarism. Students will also be asked to agree that the project can be used by the School for teaching, recruitment and other aspects of its work. The student will obviously be using books, the internet and other references, but a lot of care must be taken to cite other people’s work when it is used. The aim of the project is to assimilate material from various sources and produce a coherent piece of work that is in the student’s own words and brings their own critical faculties to bear on the topic. Further information on plagiarism will be provided by the supervisor or the Head of Level 4 on request. Submission and marking The final report is marked independently by the supervisor and one other member of staff. In case the two markers disagree in their assessment there will be a mediation process. Marking is reviewed by the External Examiner. The marking scheme used is published on Moodle, and students are encouraged to study it in detail before or while writing the report in order to understand the criteria that will be assessed. Submission is via the Moodle course page. It will be possible to upload the report multiple times. At the time of the deadline the final version uploaded will be the final submission. These projects will be checked for plagiarism using a standard plagiarism software and the results will be available to students if they upload their report before the deadline. There will be a limit for the file size that ensures we can send projects by email, so keep the resolution of images reasonable. No submissions will be allowed after the final submission deadline unless this has been agreed.
Department of Accounting and Business Analytics OM 421 B01, Winter 2024 Midterm Exam 29 February Instructor: Armann Ingolfsson Exam time: 11:00 am – 12:10 pm Total points: 30 1) (1 pt.) You wish to encode the data variable “ Net migration” using colour. This variable equals the number of people moving into a region, minus the number of people moving out of the region, over some time period. Select a colour palette that would be appropriate for this variable. 2) (1 pt.) According to the textbook author, Figure 1.14 from the textbook (shown above) illustrates the following: a) The five bars on the left are less bright than the five bars on the right b) Bars that touch appear to differ more in brightness than bars that don’t touch c) Bars that don’t touch appear to take up less space than bars that touch d) Bars that touch appear taller than bars that don’t touch 3) (1 pt.) How many variables are in the gss_sm dataset? a) 6 b) 32 c) 2,016 d) 2,867 4) (1 pt.) In Tableau, connect to the World Indicators data set. Plot a histogram of the Internet Usage variable. What is the bin size that Tableau chooses by default? a) 0.0333 b) 30 bins c) 0.05 d) Need to know the sample standard deviation to answer 5) (1 pt.) How many different countries are included in the gapminder data? a) 5 b) 6 c) 12 d) 142 e) 1704 Source: “How To Read This Chart” Washington Post newsletter, by Philip Bump 6) (2 pts.) Compute a liefactor for the bar for Trump vs. the bar for DeSantis, as shown in the chart above. Source: https://jlaw.netlify.app/2023/12/04/are-birth-dates-still-destiny-for-canadian- nhl-players/ 7) (4 pts.) Use the terminology inwww.apptio.com/blog/visual-encoding/to decode the visualization above. Use “sequential colour” and “unordered colour” instead of “color value” and “color hue” . Determine the data variables, their types, and their visual encoding(s). 8) (6 pts.) Use R ggplot to do the following: • Load the tidyverse and gapminder libraries • Use the gapminder dataset • Map “gdpPercap” to x and “ lifeExp” to y • Create a graph that shows a quadratic trendline • Create small multiples based on the “continent” variable There is no need to change any graph defaults other than the ones mentioned above. Your graphs should only show trendlines and confidence interval ribbons. They should not show any data points. Paste the small-multiple chart into the space indicated in the Answers sheet. Paste the R code for creating the small multiples into the space indicated in the Answers sheet. Include only the code used to create the chart. Do not include code used to load libraries. 9) (6 pts.) Download the ufo_sightings.xlsx data from the online assessment tool. Each row corresponds to a UFO sighting. One of the variables is country_code, and it provides a two-letter code for the country of the sighting. Using the tool(s) of your choice (Excel, Tableau, or R ggplot), do the following: • Determine the four countries with the most sightings. Aggregate all other sightings into “Other” . • Plot a bar chart of the number of sightings for the top four countries and for “Other” . • Show the two-letter codes for the four countries, and the text “Other”, next to the y axis. The countries should be shown in descending order of number of sightings (country with the most sightings should be at the top). “Other” should be at the bottom. • Use log scale for the x axis. There is no need to change any graph defaults other than the ones mentioned above. Paste the graph into the space indicated in the Answers sheet. 10) (2 pts.) Do the following in Tableau: Connect to the World Indicators data set. Put Infant Mortality Rate into Columns and Region into Rows. For Infant Mortality in Rows, change the Measure to Average. You should see a horizontal bar chart of Infant Mortality Rate by Region. Provide instructions for how to sort Region, from highest (at the top) to lowest average Infant Mortality Rate. You do not need to use complete sentences. Limit your answer to 200 characters. Source:https://www.cbc.ca/news/canada/edmonton/alberta-voters-flock-to- advance-polls-in-record-numbers-1.6855205 . 11) (5 pts.) Create an improved version of the chart above. The data is in the Turnout.xlsx file. Paste the improved chart into the space indicated in the Answers sheet. Explain what you view as the most important change. Limit your answer to 200 characters.
Internet of Things (ITS67404) – February 2025 Assessment Task 1: Individual Assignment (Weightage: 30%) based on MLO1: Propose an IoT-based system with an entrepreneurial mindset for a real-world problem. IoT-Based Smart Irrigation System for Urban Farming: An Entrepreneurial Venture Problem: Urban farming is gaining popularity, but inefficient watering practices often lead to water waste, nutrient runoff, and suboptimal yields. Manual watering is time-consuming and inconsistent, while traditional irrigation systems are often too complex and expensive for small- scale urban farms. Proposed Solution: AnIoT-based smart irrigation system designed specifically for urban farming, targeting both individual hobbyists and community garden projects. System Components: 1. Moisture Sensors: Placed in the soil at different depths, these sensors measure the soil moisture content and transmit the data wirelessly. 2. Weather Station: A small, localized weather station collects data on temperature, humidity, rainfall, and sunlight intensity. 3. Microcontroller (e.g., ESP32, Arduino): The brain of the system, it receives data from the sensors and weather station, processes it, and controls the irrigation system. 4. Water Valves/Pumps: Electrically controlled valves or pumps regulate the flow of water to the plants. 5. Cloud Platform. Data from the microcontroller is sent to a cloud platform. (e.g., AWSIoT, Google Cloud IoT Core, Thingspeak) for storage, visualization, and analysis. 6. Mobile Application: A user-friendly mobile app allows users to monitor soil conditions, weather data, and control the irrigation system remotely. It also provides customized watering schedules based on plant type and environmental conditions. 7. Optional Features: • Nutrient Dosing: Integration with a nutrient dosing system to deliver precise amounts of fertilizer along with the water. • Leak Detection: Sensors to detect leaks in the irrigation system and alert the user. • Integration with other Smart Home Systems: Compatibility with existing smart home platforms for seamless control and automation. Entrepreneurial Aspects: Target Market: Urban farmers (individuals, community gardens, vertical farms, rooftop gardens), nurseries, and educational institutions. Value Proposition: Water conservation through optimized irrigation. Increased crop yields through consistent and precise watering. Reduced manual labor and time savings for urban farmers. Remote monitoring and control of the irrigation system. Data-driven insights into soil conditions and plant health. Business Model: Hardware Sales: Selling the complete smart irrigation system kit (sensors, microcontroller, valves, etc.). Subscription Service: Offering a cloud-based platform with advanced features (data analytics, customized reports, remote support) on a subscription basis. Installation and Maintenance Services: Providing professional installation and maintenance services for the system. Partnerships: Collaborating with nurseries, seed suppliers, and urban farming communities for distribution and marketing. Competitive Advantage: User-friendly interface and easy setup. Affordable pricing compared to complex commercial systems. Scalability to cater to different sizes of urban farms. Focus on specific needs of urban farmers. Question: Part 1: System Design and Functionality (15%) 1. Detailed System Architecture Diagram: Illustrate the interaction between all components (sensors, microcontroller, cloud, app). 2. Sensor Selection and Justification: Explain the type of moisture sensors and other sensors chosen and why they are suitable for this application. 3. Watering Algorithm: Describe the logic used by the microcontroller to determine when and how much to water (consider factors like soil moisture, weather data, plant type). 4. Data Management and Analysis: Explain how data will be stored in the cloud and what type of analysis will be performed (e.g., trends, alerts). 5. Mobile App Features: Outline the key features of the mobile app and how it will enhance user experience. Part 2: Business Plan and Market Analysis (15%) 1. Market Research: Analyze the size and potential of the urban farming market in a specific target region (e.g., a major city in Urban or rural Malaysia). Support your statements based on newspaper articles or latest research papers. 2. Competitive Analysis: Identify existing solutions and their strengths/weaknesses. How will your system differentiate itself? 3. Marketing Strategy: Describe how you will reach your target market (online marketing, partnerships, community events). 4. Financial Projections: Develop a basic financial model, including estimated costs (hardware, software, development, marketing) and potential revenue streams (hardware sales, subscriptions). 5. Scalability and Future Development: Discuss how the system can be scaled to accommodate larger projects and potential future features (e.g., integration with other smart agriculture technologies). Deliverables: • A comprehensive report (PDF) covering all aspects of the assignment. Report Template Details: 1. Font type: Times New Roman 2. Font size: 12 3. Line spacing: 1.5 4. Alignment: Justify 5. Document type: PDF 6. Number of pages: approximately 10-15 pages a. Your full report (one PDF file) should consist of the following: b. Cover Page (Student Name, ID and Signature) c. Table of Content d. Marking Rubric e. Complete Turnitin Report 7. Start each task on a separate page 8. All figures and tables should be labelled properly. 9. In-text citations and Reference list must be provided. 10. File naming convention:StudentID_Assessment-01.pdf Additional Note: Students are not allowed to transcribe directly (cut and paste) any material from another source into their submission. Include in-text citations to support your work and add the list of references at the end of your report (IEEE format). The list of references is required to be in proper format. The Turnitin similarity is 20% overall and less than 2% from a single source.
Introduction to Accounting and finance Week1 test practice UnansweredQuestion 1 0 / 1 pts One purpose of accounting information is to help certain group of users assess how effectively the managers are running the business and make judgments about the likely levels of risk and return in the future. Which one of the following user groups is likely to use accounting information for such purpose? Employees Community representatives Customers Owners and investors Incorrect. Owners entrust their own money to the company and expect to earn positive returns on their investment. Therefore, they use accounting information about the current and the future profitability of the firm to assess how well the managers are performing. If the firm generates insufficient profits, owners can vote to replace the board of directors. They can also sell their shares in that particular company and invest their money in another, more profitable one. UnansweredQuestion 2 0 / 1 pts Which of the following statements is incorrect? The presentation and contents of financial accounting reports need to follow a standardised format. Management accounting reports tend to be prepared more frequently than financial accounting reports. Management accounting reports tend to contain more detailed information than financial accounting reports. Financial reporting accounts are subject to less regulation than management accounting reports. Incorrect. Unlike management accounting reports which are prepared only for internal use within a firm, financial accounting reports are audited and made available to the general public. For that reason, financial accounting is regulated much more heavily than management accounting. UnansweredQuestion 3 0 / 1 pts Which of the following resources of a firm cannot be readily described by accounting information? The value of the products ready for immediate sale. The skills and knowledge of its employees. The intellectual property trademarks the firm bought from a competitor. The firm's office building. Incorrect. Unlike the physical resources of a firm, the knowledge and skills of its employees are very difficult to quantify, and therefore cannot easily be assigned a monetary value despite being a crucial determinant of a company's performance. Note that any intellectual property acquired from a third party, rather than generated internally, can be assigned a monetary value. UnansweredQuestion 4 0 / 1 pts Which of the following statements about reliability of accounting information is incorrect? It requires that information is free from significant error and bias. It allows a piece of information to be a faithful representation of the substance of the phenomenon it represents. It implies that a piece of information can be depended upon to correspond to the relevant events it summarises. It requires that information has to be perfectly accurate in all respects. Incorrect. Reliability implies that a piece of information faithfully represents the substance of the phenomenon it seeks to represent. To achieve that it has to be free from significant error and bias but does not have to be perfectly accurate in all respects. UnansweredQuestion 5 0 / 1 pts To assess how risky a new loan is, a lender must carefully assess the borrower's ability to generate enough cash over time to be able to pay the loan back. What is the main source of information used to undertake such an assessment? The borrower's financial accounting reports. The borrower's financial and management accounting reports. The borrower's management accounting reports. Tea leaves. Incorrect. As management accounting reports are not available to external users of accounting information, such as lenders to a firm, the assessment in question would utilise information collected from the borrower's financial accounting reports. Tea leaves are no longer considered a suitable source of information to support decision-making processes. UnansweredQuestion 6 0 / 1 pts Consider the following two statements: 1) The main purpose of accounting is to prepare financial reports for users of accounting information on a regular basis. 2) There is normally no close substitute for the type of information included in accounting reports. Which of the above statements are true? Statement 2 is true but statement 1 is false Statement 1 is true but statement 2 is false Both statements are true Both statements are false Incorrect. The objective of accounting is to summarise past events into numerical information which is then presented to managers and other stakeholders for decision-making and control purposes. Such information may be presented to outside stakeholders in the form. of regularly published reports (this is known as financial accounting). However, accounting information may also be produced for internal purposes only, whenever managers deem it necessary, and presented in a non-standardised form (this is known as management accounting). As accounting reports provide a numerical summary of nearly all activities undertaken by a business organisation, or all the factors relevant to a particular decision that is evaluated by managers, there is no close substitute for the information they provide. UnansweredQuestion 7 0 / 1 pts There are two branches of accounting. Financial accounting, which deals with preparation of regular reports for outside users is one of them. What is the other one? Commercial accounting Strategic accounting Business accounting Management accounting Incorrect. Management accounting is the second branch of accounting. It focuses on preparation of reports which focus on the current and the predicted future performance of the firm to aid managers' short-term decision-making. UnansweredQuestion 8 0 / 1 pts Which one of the following is an internal user of accounting information? Local tax agency Lenders to the business Potential investors in the company The board of directors Incorrect. The board of directors comprises the most senior managers of a business organisation, who are in a position of power and responsibility to make all the important decisions about the future direction of the firm. Although the local tax agency, the lenders to the business, and the shareholders are important stakeholders in the firm, i.e. they all have an interest in how it performs, they are external users of accounting information, and cannot directly affect the decisions made at the organisation. UnansweredQuestion 9 0 / 1 pts The ability of a piece of accounting information to affect the decision of its user if it is not present or is misstated at the time is best summarised by which one of the following characteristics? Comparability Materiality Understandability Cost v benefit Incorrect. A piece of information is considered material if its absence or incorrect presentation affect the outcome of the decision-making process. UnansweredQuestion 10 0 / 1 pts The primary purpose of accounting is to support which of the following processes? Performance evaluation Data validation Business analysis Decision-making Incorrect. The objective of accounting is to aid users of information in making better decisions. This pertains to both internal and external users - accounting information can help the management team decide on what the best business strategy for their business is, or assist shareholders, lenders and government agencies in keeping the managers accountable. Although some understanding of the business is necessary in order to appropriately analyse accounting data and to evaluate the performance of the firm, the main objective of accounting is to help the users make better decisions.
FourInARow 0. Development We are requiring that you do all your development in Codio and not OUTSIDE editors. 1. Background The game of 4-in-a-row (or Connect4 by Hasbro) is a popular children’s game where two players take turns dropping colored chips into 1 of n columns (usually, n=6 but we will allow any value of n) with the goal of having 4 chips in a row (of the player’s color – we will use red and yellow). An online example is available here. Also, here is a video overview of the project from Prof. Redekopp. Note: it is 25 minutes but should give you reasonably clarity on how to jump in. 2. The Rules Setup The game starts with an empty n x m board (grid) with rows numbered 0 (at the bottom) to n−1 (at the top) and columns (the x-coordinate) numbered 0 to m−1 (left to right). In our code we refer to n as the size of the y-dimension, or ydim, and m as the size of the x-dimension, or xdim. The typical children’s game uses ydim=xdim=6. Gameplay Players (player 0 = red and player 1 = yellow) take turns choosing a column (an x coordinate) and dropping their specific colored chips into that column. The Goal The winner of the game is the first player to get 4 of their chips in a line (horizontally, vertically, or diagonally). At that point the game immediately ends. A draw may occur with the game ending once all squares are full. Modes Our implementation will support 4 modes of play (though, you will really only have to implement 2 modes). We will specify the mode as a command line argument that you can use to control your implementation according to the following description. · 2P or 2p (Human vs. human): Your program will use cin to receive alternating input from each choosing an x-coordinate to drop their chip. We start with input from red player then switch to yellow player and so on. This is the main mode you will implement. · test (RandomAI vs. RandomAI): This mode uses a random selection AI for both red and yellow player. We have already implemented this random AI and we encourage you to read through it and learn from its approach. It randomly selects 1 of the columns that are not full and places the current player’s chip in that column. You need only ensure you call our random AI function for both players when in test mode. You (and our tests) can use this mode to create random board configurations to check if your code to detect a winner is functioning correctly (or potentially a draw…even though a draw is unlikely in a random game). Randomized Testing One common strategy in software and hardware development is randomized testing. Rather than manually defining test cases, we can randomly generate inputs and verify that the program behaves either in an expected fashion or at least does not crash. · 1P or 1p (Human vs. UserAI): This mode uses human input for the red player and a simple AI that you will write to automatically choose a column to drop the yellow player’s pieces. Developing a sophisticated AI is a major undertaking, but we do NOT expect you to do so. Instead, we have a few basic expectations and leave any more sophisticated approach as an optional undertaking based on your interest and desire. This is a great exercise in algorithmic thinking. How could you intelligently choose where to place your chip? For now, the only requirement is that your AI try to block the opponent if they could win on their next turn. This is the only aspect of the AI we will test. However, at the very least you should also make your AI be able to WIN if it could do so on its current turn (i.e. has 3 in a row and a blank spot that could create FOUR in a row). · 0P or 0p (RandomAI vs. UserAI): This mode will not be tested, but is instead for you to test your UserAI. The idea is that even a simple AI that you devise should be able to beat a random AI most of the time. You can use this mode to test your AI. 3. Coding Background 3.1) Grid/Board Representation We can envision our board/grid as a 2D array and use a Cartesian coordinate system where(y,x)=(0,0)represents the lower left corner of the board. We flip the traditional ordering and use (y,x). We do this since y is the row index to our 2D array and C++ programs work more efficiently when we use the ROW (y) as the first index and COLUMN (x) as the second index y=n-1,x=0 y=n-1,x=1 ... y=n-1,x=m-1 . . . . . . y=1,x=0 y=1,x=1 ... y=1,x=m-1 y=0,x=0 y=0,x=1 ... y=0,x=m-1 We use the y-coordinate first to access the appropriate row first and then the x-coordinate as the column index. 3.2) 2D Array Allocation To allocate the grid/board, we must use dynamic allocation. This is because we do not know the size of the grid until runtime. Remember that a single call to new can only allocate a 1D array. Thus, you will need to allocate each row of the 2D array as a separate 1D array. The way to allocate a 2D array in C++ is: use new[] once to allocate a 1D array of pointers, then using a loop containing new[] to allocate many 1D arrays whose starting addresses are stored in the pointer array elements. See the dynamic memory exercise nxmboard and deepnames on Edstem (in class exercises). Memory leaks Remember that you need to deallocate everything that you allocate. This means that every call to new[] needs a matching call to delete[]. Otherwise, your program will have a memory leak! Typically, the pattern you use to allocate is the same pattern you will use to deallocate, but just in reverse order. But what type of array should we use? Since each entry in the grid can be a RED piece, YELLOW piece, or BLANK, we will use an enum (enumerated type) to make our code more readable. enum BoardValue { BLANK=0, RED, YELLOW}; Thus, to have a 2D dynamically allocated grid of BoardValue elements, we would need a BoardValue** pointer as the top-level variable. This would point to an array of BoardValue* and each of those would point to an array of BoardValues. You will implement separate functions: allocateBoard(...) and deallocateBoard(...) to abstract these tasks. More info is on the next page. 3.3) Command Line arguments This program will use command line arguments to provide some basic configuration info: NROWS (y−dim), NCOLS (x−dim), the mode: 2P/2p, 1P/1p, 0P/0p, or test, and, finally, a seed for the random AI (or if your user AI needs random numbers), So for example, the program may be started as: $ ./connect4 6 8 2P 42 This would indicate a 6 row by 8 column board with the game operating in two player (human vs. human) mode and a seed of 42 for the random number generator . Recall, that to accept command line arguments the signature for main should be updated to: int main(int argc, char* argv[]) Review your lecture slides to recall what these two arguments store and how to use them. But in short argv[0] will be the program executable name while the information of interest (6 8 2P 42) starts with argv[1]. Also, all arguments are C-strings and need to be converted to integers. Part of your task in main() is to perform. that conversion for the number of rows and columns (i.e. y-dim and x-dim) as well as the seed. 4. File Structure, Code Organization, and Solution Executable For this project we have split the code into separate source files. We will decompose our implementation into many functions and place those functions in the file c4lib.cpp and headers in c4lib.h. The main() function which will perform. high level tasks and call the various functions will be in connect4.cpp. You will need to compile all the files together, practicing multifile compilation. Recall that: · undefined reference errors mean you haven’t compiled all the .cpp files · we never compile .h files on the command line. At this point, we would recommend you take a few minutes and look over the skeleton files we have provided to orient yourself to the various functions you will need to write and some of the arguments and data that will be passed and returned. In particular, read the documentation of each function in the c4lib.h file. In an effort to ensure you are clear on how the program should behave and what is expected, we have placed a pre-compiled solution executable, ./connect4-sol that you can run. This is a compiled version of our solution. If you are in doubt about how the program should handle a case, just try that case with our solution to see what we expect. If you like, try it now. Run: $ ./connect4-sol 6 6 2P 0 You can then play the game by typing in column numbers where you would like to place the player’s piece. Or try the test mode with seed 111, which will run a full, random simulation of a game until someone gets 4 in a row. $ ./connect4-sol 6 6 test 114 Randomized Testing Once you have reviewed the skeleton code we have provided and understand the general game, you can begin your implementation. We have a suggested order of implementation described below with some notes about specific functions. In addition to the instructions on this page, the skeleton code comments act as further guide and requirements. Follow those closely. 1. Handling Command Line arguments In connect4.cpp, complete the handling of command-line arguments. In particular, convert the appropriate arguments so set the integer ydim (number of rows), xdim (number of columns), and the seed. 2. Allocation and Deallocation Implement the allocation and deallocation functions in c4lib.cpp BoardValue** allocateBoard(int ydim, int xdim); void deallocateBoard(BoardValue** board, int ydim); Review lecture slides and coding examples for how to perform. allocation. Recall the 2D board/grid array is made of BoardValue elements, which though they are like ints are their own type. Thus, we can also have pointers of type BoardValue* or BoardValue**. 3. Human Input A reasonable development checkpoint goal is to be able to compile and run a simpler version of the program that allows a 2P human v. human “game” where there is no winner but players just take turns placing pieces (i.e. your program gets input and updates the board). Get something simple like this to work before trying to determine if there is a winner or draw. To that end, next implement the getNextHumanInput() function to prompt the current player to enter (via the keyboard) the column to drop their piece. When you get the input, ensure you can legally place the current player’s chip (i.e. the column is in the range 0 to xdim-1 and that the appropriate column is not full). If it is a viable column to place a chip, update the board by placing the selected piece in the column (in the lowest row that is blank) and return false. Return true otherwise (if there is an error in the input). bool getNextHumanInput( BoardValue** board, int ydim, int xdim, int *y, int *x, int currentPlayer); Please notice that we pass two pointers to integers. These are output parameters that are utilizing pass-by-reference so that the function can have more than 1 "return value". We want to return the coordinates of where the player’s piece was placed. This can be helpful in our code to determine if there is a winner. More on this in a bit. To aide in the implementation of this function and the AI functions, it would be useful to determine which row a chip would land in when dropped into a column. For this, we have a helper function prototyped and waiting for you to implement in c4lib.cpp. int findYValue(BoardValue** board, int ydim, int x); This function should return -1 if the given column (specified by x) is full. Otherwise, it should return the smallest blank row in that column. One other note is that in c4lib.cpp we have a global array (you may not create other global variables) playerToValue. This array can help you convert the currentPlayer integer to the appropriate BoardValue enum. Handling Bad Input If there is an error with the input value as described above, the program should exit with the appropriate message: "Early exit". This will also allow a kind of "exit code". If the user wants to quite the game early, they need only enter an out-of-bounds column. 4. Initial Testing At this point you could write a basic gameplay loop in main() to alternate getting input from each player and ensuring the placement of chips is correct. The game should quit with an invalid column input. Setting up this initial test may require some alteration to the skeleton code. To get the test working, you may need to comment out some code or add dummy values so that your code will compile. This is likely worth it so you can flesh out early bugs now and not have to debug so much later on. 5. Winning Now move on to implement hasWon() to determine if the current player has four in a row. bool hasWon( BoardValue** board, int ydim, int xdim, int sy, int sx, int currentPlayer); 5.1 Approaches You may implement this function in one of two ways. One may be easier to implement but less time efficient while the other would hold the opposite properties. · Method 1: Scan through the entire 2D array (rows and columns) searching for 4 in a line. This method may appear like more work but may be easier to implement. Also, this method does not require the knowledge of where the current player just placed their piece (i.e. sy and sx) since we’ll look for ANY 4 pieces of the same color in a line. · Method 2: Use the location where the current player placed their piece (i.e. sy and sx) and determine if that has created a sequence of four in a row. Rather than checking the entire board, we need only check if the new piece has created 4 consecutive pieces in a line. This should take less computation than the previous method, but may be just a bit trickier to implement. As soon as some player has won, the game should halt (and give no more turns) and print either Red wins or Yellow wins Whatever method you choose (and it is 100% your choice…no better grade will be achieved if you choose one over the other), read the hints in the next section. 5.2 Checking in Directions Implementing your checks for a winner will require scanning through the 2D array in specific directions (vertical, horizontal, and diagonal). Spend some time thinking about how you might implement that. Does the scan in each direction need to be a separate loop …OR… is there a way to generalize the directional scan so that one loop (the outer loop) iterate through the directions to scan while the inner loop scans (enumerates the coordinates) in the specific direction. To that end, consider the usefulness of the following arrays and how they might be useful. const int NDIRS = 4; const int xDirDelta[NDIRS] = { 0, +1, -1, +1}; const int yDirDelta[NDIRS] = {+1, 0, +1, +1}; 6. Draws Implement the isDraw() function to determine whether the game is over due to a draw, which is defined as the board being full without a winner. Return true if there is a draw and false, otherwise. bool isDraw( BoardValue** board, int ydim, int xdim); The game should quit and print Draw anytime isDraw returns true. 7. AI Now implement your user AI. Remember, the only requirement is it must block the opponent if they could win on their next turn. We encourage you to also implement the ability to choose a winning location, if the current player can win on the next turn. bool getUserAIInput( BoardValue** board, int ydim, int xdim, int *y, int *x, int currentPlayer); Beyond that, we strongly encourage you to consider some basic approaches and rules of thumb for how you could select a move to make that would be most advantageous? Experiment a little as you are able and have time. Try to run your AI in 0P more to play against the provided random AI. We leave this open ended so that it is truly your own creation and would be something you could research and improve on as you are able and incorporate into your own portfolio of work. Because it is fully your creation, you are welcome to post this function publicly if you wish (e.g. on your personal Github account…but only this function) to show to potential employers or others. As you learn more data structures to create and store “potential” player moves to explore alternative scenarios and even implement an optimal AI using the minimax algorithm (look up more if you are interested). 8. Putting it all together Now complete main() and its primary gameplay loop as well as ending code. Be sure you change the current player (between 0 and 1) on each iteration. (Since we are using integer values 0 and 1 to track the current player, think about how you could use a simple arithmetic expression to switch from 0 to 1 or vice versa without using an if statement.) Once you feel you have finished your code, we encourage you to compile and run it in a few modes to test it for yourself. Don’t just jump to the automated tests. It will be much more intuitive and easier to find bugs as you test the code yourself than parsing and considering the test cases we may have come up with. Hint: Remember what you have learned about compiling programs consisting of multiple files, and apply that when you compile this program. Also, we strongly suggest you run your code via valgrind before you run the automated tests. It will be easier to debug in the console than in the Codio automated test output logs. Recall to run valgrind you can use this command line: valgrind --tool=memcheck --leak-check=yes ./connect4 6 6 2P 0 or whatever command line arguments you desire. Once you believe your code is working move on to the next page and run the automated tests to earn credit. Manual tests Manual tests Don’t just jump to automated tests!. Run the program yourself several times at the command line and test various aspects. For example, play 2 Players where you control both players and see if different winning patterns will work (e.g. diagonals, verticals, horizontals, etc.). Does a scenario where a draw work? You can even then move on to the AI. If not, add print statements or use the debugger. But until you can get simple tests like this working, please don’t proceed to automated tests.
MGDI70982 Online Quiz 1: Example questions No. Question Answers Feedback E1 Which of the following is an ontological question? 1. Does the state exist as an objective reality independent of human perception, or is it fundamentally constructed through human meaning-making and interpretation? 2. To what extent can the findings from western countries be generalized to developing world settings given the differences of history and geography? 3. What statistical techniques are most appropriate for analysing data from complex longitudinal studies with missing observations and nested hierarchical structures? 4. How can researchers ensure that their personal biases and preconceptions do not unduly influence the interpretation of qualitative interview data? Option 1 poses a fundamental ontological question about the nature of reality itself - specifically whether the state exists independently of human minds (realism/objectivism) or is constructed through human interpretation (constructivism/idealism). This represents a classic ontological concern about what exists and the fundamental nature of being. The other options address different aspects of research: Option 2 raises an epistemological question about the transferability of knowledge across contexts. Option 3 addresses a methodological question about analytical techniques. Option 4 concerns methodological reflexivity and validity in qualitative research. Ontological questions specifically address the nature of reality and existence - what entities exist, how they exist, what categories of being are fundamental, whether reality is mind-independent or mind- dependent, and the relationships between different types of entities. These foundational assumptions about reality shape both epistemological positions and methodological choices in research. E2 Should quantitative and qualitative methods be combined when designing research? 1. No, because the different epistemological assumptions underlying quantitative and qualitative approaches create irreconcilable philosophical contradictions in research design 2. Yes, because combining methods always produces more robust findings than using either approach alone, regardless of the research question 3. Yes,when the research question requires both breadth and depth of understanding, and the methods are integrated in ways that acknowledge their distinct contributions while maintaining philosophical coherence 4. Yes, but only when qualitative methods are used in a preliminary phase to generate hypotheses that can then be tested quantitatively Option 3 correctly captures the nuanced position that mixed methods can be appropriate, but their combination must be justified by the research questions and implemented thoughtfully. The other options represent common misconceptions: Option 1 takes an overly rigid stance. Option B makes an unsupported universal claim about the superiority of mixed methods, when some research questions are better addressed through a single approach. Option 4 incorrectly relegates qualitative methods to a preliminary role, ignoring their potential for explanation, triangulation, or expansion of quantitative findings. The key is that methodological choices should be driven by research questions and purposes, with mixed methods employed when their integration adds value and can be philosophically justified.
MHH223204/MHH225189 Adv Structural Engineering (2024-25) Coursework 2: Group Project on the Concrete Centre Structural Concrete Design Competition 2025 COURSEWORK 2 (2024-25) GROUP PROJECT ON THE CONCRETE CENTRE STRUCTURAL CONCRETE DESIGN COMPETITION 2025 Note: This coursework part contributes to 40% of the final marks of the module. This group project is to be working on Structural Concrete 2025 which sets a demanding challenge for all students studying structural design as part of UK University BSc, BEng, MEng and MSc degree courses in Civil and/or Structural Engineering by the Concrete Centre. You are required to form. groups of 3-4 yourselves. This student design competition aims to encourage interest and raise competence in designing with concrete. The competition offers a stimulating and fun challenge to students, while supporting the curricula of civil and structural engineering departments of UK universities. The main benefit for a student is in being able to present their work to prospective employers, some of whom are involved in setting and judging the competition. The national winners will be presented with their prizes at an event in London where their award-winning entries will be presented to the audience. The 2025 project is to design a hotel building which is to be constructed as part of the redevelopment of a former dock area on an estuary close to the centre of a large UK town. The client, a hotel owner and operator, has commissioned an initial structural design from a firm of consulting engineers for the 4-star hotel that is to be known as the Port Aspdin Hotel. The building is to include a conference centre/banqueting suite, a feature restaurant projecting over the water, as well as bedroom accommodation on five floors. Entrants must respond as though they are the engineer responsible within the consultant’s team. More technical specifications can be seen in the Structural Concrete 2025 brochure produced by the Concrete Centre. The provisional marking schemes are given as follows. Also peer marking method is used to objectively reflect individual contributions to the project, see Appendix. No Item Remarks Weighting 1 Structural concrete solutions Two distinct and viable structural concrete solutions with column/wall layouts, load transfer mechanism, framing and stability functions, construction methodology, and evaluation of their merits and disadvantages 10% 2 Foundation scheme Description of foundation scheme for the preferred solution with no full design 5% 3 Concrete and reinforcing materials Technical specifications for the selected construction materials 5% 4 Construction method A method statement for a safe construction procedure for the building 5% 5 Robustness statement A statement to confirm avoidance of disproportionate collapse is satisfied 5% 6 Required details A, B and C Outlining what could be achieved and how this would change the design of the structure 5% 7 Structural design calculations Sufficient design calculations by hand to establish the form. and size of all structural elements for the selected scheme under both ULT and SLS, including stairs 20% 8 Engineering drawings Three A3 size drawings to present general arrangements, sections and elevations of the building and to show the layout, disposition and dimensions of structural elements 10% 9 Sustainability appraisal Prepare a section on the structural aspects, including any mitigating measures, fire safety and fabric protection, material efficiency and resilience 10% 10 Group presentation Include your options, your selection and other relevant technical issues, together with individual contributions to the project 15% 11 Report editing No more than 60 single sided A4 pages and three A3 size drawings 10% Total 100% All groups are required to present their design projects on Monday and Tuesday, 28th-29th April 2025 in Room M232 in Week 14 and a PDF file of the whole coursework need to be submitted online via GCULearn per group by Wednesday, 30th April 2025 in Week 14, together with individual peer assessment sheets to be be submitted separately on the same day online.
Homework 5: Making Your Own ggplot GSND 5345Q, Fundamentals of Data Science Multiple Due Dates (Video: Sun 2/23; Comments/write-up: Wed 2/26) Objective Demonstrate your understanding of data visualization principles by creating an informative and well-annotated plot using ggplot in R. You will present your plot in a recorded video and engage with your peers by providing constructive feedback on their visualizations. Instructions 1. Find a Dataset Choose one of the following: - A dataset provided in class. - A dataset from your own research or work experience. - A publicly available dataset from a credible source (Kaggle, government databases, academic repositories). 2. Create an R Markdown Report (50 points) • Use ggplot2 to create at least one well-designed and well-annotated plot (or multiple plots) that meaningfully describe your dataset. • Apply best practices in data visualization, such as: – Choosing an appropriate plot type for your data. – Using clear labels, titles, and legends. – Selecting effective color schemes. – Showing the data in a way that avoids misleading interpretations. – Encoding three or more variables when possible. • Provide a short written explanation of your plot, addressing: – What the plot shows and why it’s appropriate for your data. – Which visualization principles were applied. – Any design choices made to improve readability or clarity. • Include your fully reproducible code in an R Markdown ( .Rmd) file. 3. Video Presentation (50 points) • Record a 3-5-minute video explaining your visualization. • Your video should include: – A brief introduction to your dataset. – A walkthrough of your plot(s), describing the insights they reveal. – An overview of the code used to generate the plot. – A discussion of the data visualization principles applied in your work. • Post your video in the Chat section on Canvas no later than 11:59 PM on Sunday, 2/23. 4. Peer Review (50 points) • Watch at least five of your classmates’ videos. • Provide thoughtful and constructive comments on each, focusing on: – Strengths of their plot design and presentation. – Suggestions for improvement (if applicable). • Document your comments in your .Rmd file (include the names of the videos you reviewed). • Submit the updated .Rmd file with your own plot code/comments and your peer review comments on Canvas no later than 11:59 PM on Wednesday, 2/26. Grading Breakdown Category Points Well-designed ggplot with clear annotations and applied principles 50 Video presentation with clear explanation and visualization discussion 50 Peer review with meaningful feedback on five classmates’ videos 50 Total 150 Additional Notes • Ensure your plots and video are accessible and understandable to someone unfamiliar with your dataset. • Be concise but thorough in your explanations. • Use proper formatting and grammar in your .Rmd file and comments. • Engage respectfully and constructively in your peer reviews.
CSE 6242 / CX 4242: Data and Visual Analytics Spring 2025 HW 2: Tableau, D3 Graphs, and Visualization "Visualization gives you answers to questions you didn't know you have" -Ben Schneiderman Download the HW2 Skeleton before you begin Homework Overview Data visualization is an integral part of exploratory analysis and communicating key insights. This homework focuses on exploring and creating data visualizations using two of the most popular tools in the field; Tableau and D3.js. Questions 1-4 use data from BoardGameGeek, featuring games'ratings, popularity, and metadata, to showcase the uses and strengths of different types of visualizations. Question 5 shifts focus to a different dataset on wildlife trafficking incidents, offering an opportunity to apply visualization techniques to address a global issue. Below are some terms you will often see in the questions: • Rating – a value from 0 to 10 given to each game. BoardGameGeek calculates a game's overall rating in different ways including Average and Bayes, so make sure you are using the correct rating called for in a question. A higher rating is better than a lower rating. • Rank – the overall rank of a boardgame from 1 to n, with ranks closer to 1 being better and n being the total number of games. The rank may be for all games or for a subgroup of games such as abstract games or family games. The maximum possible score for this homework is 100 points. Students have the option to complete any 90 points’ worth of work to receive 100% (equivalent to 15 course total grade points) for this assignment. They can earn more than 100% if they submit additional work. For example, a student scoring 100 points will receive 111% for the assignment (equivalent to 16.67 course grade points, as shown on Canvas). Important Notes A. Submit your work by the due date on the course schedule. a. Every assignment has a generous 48-hour grace period, allowing students to address unexpected minor issues without facing penalties. You may use it without asking. b. Before the grace period expires, you may resubmit as many times as needed. c. TA assistance is not guaranteed during the grace period. d. Submissions during the grace period will display as "late" but will not incur a penalty. e. We will not accept any submissions executed after the grace period ends. B. Always use the most up-to-date assignment (version number at the bottom right of this document). The latest version will be listed in Ed Discussion. C. You may discuss ideas with other students at the "whiteboard" level (e.g., how cross-validation works, use HashMap instead of array) and review any relevant materials online. However, each student must write up and submit the student's own answers. D. All incidents of suspected dishonesty, plagiarism, or violations of the Georgia Tech Honor Codewill be subject to the institute's Academic Integrity procedures, directly handled by theOffice of Student Integrity (OSI). Consequences can be severe, e.g., academic probation or dismissal, a 0 grade for assignments concerned, and prohibition from withdrawing from the class. Submission Notes A. All questions are graded on the Gradescope platform, accessible through Canvas. a. Question 1 will be manually graded after the final HW due date and Grace Period. b. Questions 2-5 are auto graded at the time of submission. B. We will not accept submissions anywhere else outside of Gradescope. C. Submit all required files as specified in each question. Make sure they are named correctly. D. You may upload your code periodically to Gradescope to obtain feedback on your code. There are no hidden test cases. The score you see on Gradescope is what you will receive. E. You must not use Gradescope as the primary way to test your code. It provides only a few test cases and error messages may not be as informative as local debuggers. Iteratively develop and test your code locally, write more test cases, and follow good coding practices. Use Gradescope mainly as a "final" check. F. Gradescope cannot run code that contains syntax errors. If you get the “The autograder failed to execute correctly” error, verify: a. The code is free of syntax errors (by running locally) b. All methods have been implemented c. The correct file was submitted with the correct name d. No extra packages or files were imported G. When many students use Gradescope simultaneously, it may slow down or fail. It can become even slower as the deadline approaches. You are responsible for submitting your work on time. H. Each submission and its score will be recorded and saved by Gradescope. By default, your last submission is used for grading. To use a different submission, you MUST “activate” it (click the “Submission History” button at the bottom toolbar, then “Activate”). Do I need to use the specific version of the software listed? Under each question, you will see a set of technologies with specific versions - this is what is installed on the autograder and what it will run your code with. Thus, installing those specific versions on your computer to complete the question is highly recommended. You may be able to complete the question with different versions installed locally, but you are responsible for determining the compatibility of your code. We will not award points for code that works locally but not on the autograder. Q1 [25 points] Designing a good table. Visualizing data with Tableau. Goal Design a table, a grouped bar chart, and a stacked bar chart with filters in Tableau. Technology Tableau Desktop Deliverables Gradescope: After selecting HW2 - Q1, click Submit Images. You will be taken to a list of questions for your assignment. Click Select Images and submit the following four PNG images under the corresponding questions: ● table.png: Image/screenshot of the table in Q1.1 ● grouped_barchart.png: Image of the chart in Q1.2 ● stacked_barchart_1.png: Image of the chart in Q1.3 after filtering data for Max.Players = 2 ● stacked_barchart_2.png: Image of the chart in Q1.3 after filtering data for Max.Players = 4 Q1 will be manually graded after the grace period. Setting Up Tableau Install and activate Tableau Desktop by following “ HW2 Instructions” on Canvas. The product activation key is for your use in this course only. Do not share the key with anyone. If you already have Tableau Desktop installed on your machine, you may use this key to reactivate it. If you do not have access to a Mac or Windows machine, use the 14-day trial version of Tableau Online: 1. Visithttps://www.tableau.com/trial/tableau-online 2. Enter your information (name, email, GT details, etc.) 3. You will then receive an email to access your Tableau Online site 4. Go to your site and create a workbook If neither of the above methods work, use Tableau for Students. Follow the link and select "Get Tableau For Free". You should be able to receive an activation key which offers you a one-year use of Tableau Desktop at no cost by providing a valid Georgia Tech email. Connecting to Data 1. It is optional to use Tableau for Q1.1. Otherwise, complete all parts using a single Tableau workbook. 2. Q1 will require connecting Tableau to two different data sources. You can connect to multiple data sources within one workbook by following the directions here. 3. For Q1.1 and Q1.2: a. Open Tableau and connect to a data source. Choose To a File – Text file. Select the popular_board_game.csv file from the skeleton. b. Click on the graph area at the bottom section next to "Data Source" to create worksheets. 4. For Q1.3: a. You will need a data.world account to access the data for Q1.3. Add a new data source by clicking on Data – New Data Source. b. When connecting to a data source, choose To a Server – Web Data Connector. c. Enter this URLto connect to the data.world data set on board games. You may be prompted to log in to data-world and authorize Tableau. If you haven’t used data.world before, you will be required to create an account by clicking “Join Now” . Do not edit the provided SQL query. NOTE: If you cannot connect to data-world, you can use the provided csv files for Q1 in the skeleton. The provided csv files are identical to those hosted online and can be loaded directly into Tableau. d. Click the graph area at the bottom section to create another worksheet, and Tableau will automatically create a data extract. Table and Chart Design 1. [5 points] Good table design. Visualize the data contained in popular_board_game.csv as a data table (known as a text table in Tableau). In this part (Q1.1), you can use any tool (e.g., Excel, HTML, Pandas, Tableau) to create the table. We are interested in grouping popular games into "support solo" (min player = 1) and "not support solo" (min player > 1). Your table should clearly communicate information about these two groups simultaneously. For each group (Solo Supported, Solo Not Supported), show: a. Total number of games in each category (fighting, economic, ...) b. In each category, the game with the highest number of ratings. If more than one game has the same (highest) number of ratings, pick the game you prefer. NOTE:Level of Detail expressionsmay be useful if you use Tableau. c. Average rating of games in each category (use simple average), rounded to 2 decimal places. d. Average playtime of games in each category, rounded to 2 decimal places. e. In the bottom left corner below your table, include your GT username (In Tableau, this can be done by including a caption when exporting an image of a worksheet or by adding a text box to a dashboard. If you use Tableau, refer to the tutorialhere). f. Save the table as table.png. (If you use Tableau, go to Worksheet/Dashboard Export Image). NOTE: Do not take screenshots in Tableau since your image must have high resolution. You can take a screenshot If you use HTML, Pandas, etc. Your learning goal here is to practice good table design, which is not strongly dependent on the tool that you use. Thus, we do not require that you use Tableau in this part. You may decide the most meaningful column names, the number of columns, and the column order. You are not limited to only the techniques described in the lecture. For OMS students, the lecture video on this topic is Week 4 - Fixing Common Visualization Issues - Fixing Bar Charts, Line Charts. For campus students, reviewlecture slides 42 and 43. 2. [10 points] Grouped bar chart. Visualize popular_board_game.csv as a grouped bar chart in Tableau. Your chart should display game category (e.g., fighting, economic,...) along the horizontal axis and game count along the vertical axis. Show game playtime (e.g., It is incorrect to use an absolute path such as: 6. For questions that require reading from a dataset, use a relative path to read in the dataset file. For example, suppose a question reads data from earthquake.csv, the path should simply be "earthquake.csv" and NOT an absolute path such as "C:/Users/polo/hw2-skeleton/Q/earthquake.csv". 7. You can and are encouraged to decouple the style, functionality and markup in the code for each question. That is, you can use separate files for CSS, JavaScript and html. Q2 [15 points] Force-directed graph layout Goal Create a network graph shows relationships between games in D3. Use interactive features like pinning nodes to give the viewer some control over the visualization. Technology D3 Version 5 (included in the lib folder) Chrome v131.0.0 (or higher): the browser for grading your code Python http server (for local testing) Allowed Libraries D3 library is provided to you in the lib folder. You must NOT use any D3 libraries (d3*.js) other than the ones provided. On Gradescope, these libraries are provided for you in the auto-grading environment. Deliverables [Gradescope] Q2 .(html/js/css): The HTML, JavaScript, CSS to render the graph. Do not include the D3 libraries or board_games.csv dataset. You will experiment with many aspects of D3 for graph visualization. To help you get started, we have provided the Q2.html file (in the Q2 folder) and anundirected graph dataset of boardgames, board_games.csv file (in the Q2 folder). The dataset for this question was inspired by a Reddit post about visualizing boardgames as a network, where the author calculates the similarity between board games based on categories and game mechanics where the edge value between each boardgame (node) is the total weighted similarity index. This dataset has been modified and simplified for this question and does not fully represent actual data found from the post. The provided Q2.html file will display a graph (network) in a web browser. The goal of this question is for you to experiment with the visual styling of this graph to make a more meaningful representation of the data.Hereis a helpful resource (about graph layout) for this question. Note: You can submit a single Q2.html that contains all the css and js components; or you can split Q2.html into Q2.html, Q2.css, and Q2.js. 1. [2 points] Adding node labels: Modify Q2.html to show the node label (the node name,e.g., the source) at the top right of each node in bold. If a node is dragged, its label must move with it. 2. [3 points] Styling edges: Style. the edges based on the "value" field in the links array: 1. If the value of the edge is equal to 0 (similar), the edge should be gray, thick, and solid (The dashed line with zero gap is not considered as solid). 2. If the value of the edge is equal to 1 (not similar), the edge should be green, thin, and dashed. 3. [3 points] Scaling nodes: a. [1.5 points] Scale the radius of each node in the graph based on the degree of the node (you may try linear or squared scale, but you are not limited to these choices). Note: Regardless of which scale you decide to use, you should avoid extreme node sizes, which will likely lead to low-quality visualization (e.g., nodes that are mere points, barely visible, or of huge sizes with overlaps). Note: D3 v5 does not support d.weight (which was the typical approach to obtain node degree in D3 v3). You may need to calculate node degrees yourself. Example relevant approach ishere. b. [1.5 points] The degree of each node should be represented by varying colors. Pick a meaningful color scheme (hint: color gradients). There should beat least 3 color gradations and it must be visually evident that the nodes with a higher degree use darker/deeper colors and the nodes with lower degrees use lighter colors. You can find example color gradients at Color Brewer. 4. [6 points] Pinning nodes: a. [2 points] Modify the code so that dragging a node will fix (i.e., "pin") the node's position such that it will not be modified by the graph layout algorithm (Note: pinned nodes can be further dragged around by the user. Additionally, pinning a node should not affect the free movement of the other nodes). Node pinning is an effective interaction technique to help users spatially organize nodes during graph exploration. The D3 API for pinning nodes has evolved overtime. We recommend reading this post when you work on this sub-question. b. [1 points] Mark pinned nodes to visually distinguish them from unpinned nodes, i.e., show pinned nodes in a different color. c. [3 points] Double clicking a pinned node should unpin (unfreeze) its position and unmark it. When a node is no longer pinned, it should move freely again. IMPORTANT: 1. To pass autograder consistently for part 1 (which tests if a dragged node becomes pinned and retains its position), you may need to increase the radius of highly weighted nodes and reduce their label sizes, so that the nodes can be more easily detected by the autograder's webdriver mouse cursor. 2. To avoid timeout errors on Gradescope, complete the double click function in part 3 before submitting. 3. If you receive timeout messages for all parts and your code works locally on your computer, verify that you are indeed using the appropriate ids provided in the "add the nodes" section in the skeleton code. 4. D3 v5 does not support the d.fixed method (it was deprecated after D3 v3). For our purposes, it is used as a Boolean value to indicate whether a node has been pinned or not. 5. [1 points] Add GT username: Add your Georgia Tech username (usually includes a mix of letters and numbers, e.g., gburdell3) to the top right corner of the force-directed graph (see example image). The GT username must be a element having the id: "credit" Figure 2: Example of Visualization with pinned node (yellow). Your chart may appear different and can earn full credit if it meets all the stated requirements.
COMP 2131 Programming Assignment-2 100 marks = 8% of final grade Working with C Files 1. Write a menu driven program to create and manage the records in the binary file. The record structure for the binary file is Student ID Student Name Email ID Course ID Grade Submission Copy the program into a notepad document and save it as Assignment 2. When completed send the document to the Open Learning Faculty Member for grading. Folllow the grading criteria for the assignment. Step Jobs Done Marks I Develop the user menu 20 II Design the student record structure 20 III Accept input from the user and write user input to a binary file 20 IV Read from the binary file and display the contents of the file 10 V Seek and list a specific record 10 VI Update the contents of a specific record 10 VII Delete a record for a specific name 10 Total 100