ECON5022 Student Assessment Brief 1. Question The file exchangerates.csv contains the daily spot exchange rate of the U.S. Dollar against the Pound sterling1 for the period 24/03/2000 - 23/03/2021. The data analysis must be completed using EViews (the student version can be downloaded for free2). 1. Plot the series. Looking at the graph, would you say that the series is mean-reverting? Explain. Would the assumption of mean reversion around a constant mean be appropriate from an economic perspective? Explain (Hint: what are the potential implications in terms of forecast ability?). 2. Test for the presence of a unit root in the spot exchange rate series. Justify the model specified for the unit root test and comment on the outcome of the test. Why is it important to test for unit roots? 3. Select an appropriate ARIMA(p,d,q) model for the spot exchange rate series. Are the residuals autocorrelated? Are the square residuals autocorrelated? Comment on your findings. 4. Fit a suitable ARIMA(p,d,q)-GARCH(1,1) process to the spot exchange rate series. Obtain the autocorrelation function (correlogram) for the standardized residuals and the squared standardized residuals. What do you conclude about the goodness of fit of the model? Explain. Compare your results with the finding in question 3. 5. Split the sample in two parts. Use the sub-sample until 11/01/2021 to estimate the model, and the sub-sample between 12/01/2021 and 23/03/2021 for out-of-sample dynamic forecast of the daily spot exchange rate. Explain the output (e.g: Are the forecasts one-step or multi-step ahead forecasts? What are the bands around the forecast?...). Comment on your findings. 2. Further Details Word limit 2000 words, excluding graphs and tables. There is no lower limit. Action to be taken if word limit is exceeded The marker will use academic judgment to adjust the grade to reflect failure to adhere to the word limit. The text beyond the word limit may be ignored. 3. Additional Information for Group Assignments · Duration of the group work: 10/02/25 -- 10/3/25. · Number of students per group: 3 or 4. · Arrangements for forming groups students can self-enrol in groups. · Group members should work collectively on each question, instead of individually working on assigned tasks. · Peer evaluation will be used for monitoring purposes. Reports must be submitted on 17 February and 10 March 2025. · Students should communicate using Microsoft Teams and are invited to keep track of the progress and participation for each meeting. · Students must contact the course coordinator immediately if issues within the group arise (e.g. one group member is not equally contributing to the group assignment) · If there is compelling evidence that the contribution to the group work from one or more members is insufficient, the final grade will be adjusted to reflect the students’ contribution. 4. Assessment Rubric/Criteria Assessment Criteria Advanced Exceeds expectations Excellent Competent Meets expectations Very good Progressing Partially meets expectations Satisfactory Beginning Does not meet expectations Needs Improvement Content, topic, knowledge Highly detailed knowledge and understanding of material, concepts and theories for this level of study. Very good, consistent knowledge and understanding of the material, main concepts and key theories at this level. Broadly accurate knowledge and understanding of the material, with some gaps. Some elements missing and flaws are evident. Major gaps in knowledge and understanding. Significant inaccuracies. Analysis Organises and synthesises empirical evidence to reveal insightful patterns, differences, or similarities related to focus. Organises evidence to reveal important patterns, differences, or similarities related to focus. Organises evidence, but the organization is not effective in revealing important patterns, differences, or similarities. Lists evidence, but it is not organized and/or is unrelated to focus. Argument Substantial, logical, and concrete development of ideas. Assumptions are made explicit. Details are germane, original, and convincingly interpreted. Offers solid but less original reasoning. Assumptions are not always recognized or made explicit. Contains some appropriate details or examples. Offers some support that may be dubious, too broad or obvious. Details are too general, not interpreted, irrelevant to the thesis, or inappropriately repetitive. Offers simplistic, undeveloped, or cryptic support for ideas; inappropriate or off-topic generalizations; faulty assumptions; and/or errors of fact. Structure and formatting All questions are answered to a high standard. The work is presented in a professional‐looking document, using informative headings and figures/tables where appropriate. All questions are answered to a good standard. Attention to the presentation is given but may not be executed to the highest standard. Some of the answers are incomplete, missing or contain mistakes. Little attention to the presentation is given. Key answers are not provided and/or presented with errors evident. Overall presentation of the document is not to a professional standard. Sources and evidence Uses sources to support, extend, and inform, but not substitute for the writer’s development of ideas. Skilfully combines material from a variety of sources. Always conforms to style. manual. Uses sources to support, extend, and inform. the writer’s development of ideas. Appropriately uses quotes but may not always conform. to the required style. manual. Uses relevant sources but substitutes them for the writer’s ideas. Quotations and paraphrases may be too long and/or inconsistently referenced. Fails to use sources and/or overuses quotations or paraphrasing and/or uses source material without acknowledgement. Technical writing skills Language is clear and precise. Technical jargon is used appropriately. Sentences display consistently strong, varied structure. Rules of grammar, usage, and punctuation are followed with some errors. Few or no spelling errors. Errors do not distract from meaning. The paper contains a few grammatical, punctuation and spelling errors. The language lacks clarity or includes the use of some jargon or conversational tone. The paper contains many grammatical, punctuation, and spelling errors. The language uses jargon or a conversational tone.
ECM3165- Digital Signal Processing - TMA Note: This assignment carries 10% of the module mark. Completed work should be handed in using the ELE2 system by the deadlines stated there. Information on downloading and installing Matlab on your own PC/Mac can be found at https://www.exeter.ac.uk/departments/it/new/softwarecatalogue/#a8 Note: You must write your Matlab routines as m-files (script. files), rather than input lines individually via the Matlab command window. Using m-files enables you to alter, correct and modify routines more easily and efficiently than if you were to use command line entry. You must follow the coding suggestions given here (DO NOT use code generated by AI) You must include comment statements in your m-files too. Include a copy your m-files as an appendix to your report. In this TMA we investigate tone generation using marginally-stable IIR digital filters, and the use of such techniques for the generation of DTMF signals as used with touch-tone keypads. 2.1 Tone generation using marginally-stable digital filters (60 marks) (a) The aim of a tone generator is to produce a sinewave type signal. A digital (discrete-time) sinewave, let’s call it s(n), can be described as s(n) = sin(Ω0n) = sin(w0nTs) where the symbols have their usual meaning. If we assume that the signal s(n) is to be generated by a DTLTI system (i.e. it will be the output from the DTLTI system), then the impulse response of this system is simply equal to s(n), i.e. ℎ(n) = sin(Ω0n) Now that we know h(n) for the DTLTI tone generator, we can find its transfer function using the z-transform, since H(z) = ZT{h(n)}, where ZT{} represents the z-transform. operation. We can show that H(z) for the above tone generator can be written as Draw, in block diagram form, a DTLTI system to implement this transfer function H(z) and write down the numerical value for the system’s multiplier coefficients, assuming Ω0 = π/4. (15 marks) (b) The next step is to implement the filter from part (a) using the filter function in Matlab, to then input into that filter an impulse signal, and, finally, to plot the resulting output of the filter (the output should of course be the tone signal!). The filter function is described in Matlab as follows (found by typing ‘help filter’ in the command window) filter - 1-D digital filter This MATLAB function filters the input data x using a rational transfer function defined by the numerator and denominator coefficients b and a. y = filter(b,a,x) The b and a coefficients should be those you found in part (a) above (but – remember Matlab needs an extra ‘zeroth-order’ a coefficient that is always set to 1). To form. the impulse signal that we are going to use for the input to this filter, we need to generate a signal that has one sample value equal to 1, and all other samples values equal to zero. Let’s assume a sampling frequency of 10 kHz and use the value for the tone frequency from part (a) above, i.e. Ω0 = π/4 (or f0 = Ω0fS/(2π)). We can now set up the impulse signal in Matlab using the following code: fs=10000; omega_o = pi/4; fo=omega_o*fs/(2*pi); % set sampling and tone frequency t=0:1/fs:1; % set suitable time range (here up to max of 1 second) x=zeros(1,length(t)); % create an input signal of all zeros x(1)=1; % set first value of input signal equal to 1, to generate an impulse Once you have set up the input (impulse) signal to your filter as above, find and plot the filter output signal using Matlab’s filter function appropriately. Your output should be a sinusoidal tone with a frequency equal to f0 (or 1250 Hz). If it isn’t, you have done something wrong! (Note that you may have to adjust the time range over which you plot your signal to see the sinewave properly). Next, confirm that your output signal is a 1250 Hz tone by finding (and plotting) its amplitude spectrum using Matlab’s fft routine. Make sure you normalise the amplitude spectrum properly Finally, in this section, plot the pole-zero diagram for the tone generator system. You should plot the pole-zero diagram using the fvtool command, as shown below: fvtool(b, a, 'polezero'); %find and plot the poles and zeros of a DTLTI system defined by coeffs b and a Comment on the position of the poles for this tone generator system, and the resulting stability, or otherwise, of this particular DTLTI system. (45 marks) 2.2 DTMF Tone generation (40 marks) Tone generation similar to that used above finds practical application in dual-tone multifrequency signal (DTMF) generation used for touch-tone keypads on telephones, mobile phones etc. The standard DTMF system is shown Figure 1 below. When the number 5 is pressed, for example, a dual-frequency tone consisting of 770 Hz and 1336 Hz is generated (and used by the telephone switching system to identify which number to call/record). In the second part of this TMA your task is to write a Matlab script. (m-file) that can, in response to a user input of a number from 1 to 9, generate the correct DTMF tones. Use the same sampling frequency as in 2.1 part (c) above (i.e. 10 kHz) You must use the method of tone generation developed in part 2.1 above (i.e. use digital filters of the type in 2.1 but with appropriate coefficient values, to generate the tones). Note that you can input a number and assign it to a variable in Matlab using something along the following lines: number = input(‘input a keypad number 1 to 9‘); % prompts user to input a number 0 to 9 Figure 1: Tone generation in the DTMF keypad system You should verify that your program is working by carrying out the following: Selecting a keypad number to input to your generator program (a single number will suffice) Generating the required DTMF tone and plotting its waveform. (i.e. time-domain plot of the DTMF tone generated) Calculating and plotting the amplitude spectrum of the DTMF tone, and confirming that it contains the required frequencies Reminder, you only have to demonstrate the above for a single pressed number, not all of them! The part below, on listening to the tones you generate, is NOT ASSESSED – it is only there for you to look at if you so wish. If you wish to listen to the tones you generate (they should sound the same as those generated by your mobile phone), you can convert a signal to an audio output in Matlab using the sound command, as described below (but note that generating sounds is just for fun – not an assessed part of this TMA) sound(Y,FS) sends the signal in vector Y (with sample frequency FS) out to the speaker on platforms that support sound. Values in Y are assumed to be in the range -1.0
Building Our Digital World: Computer Systems and Architecture COMP1860 Activity Sheet 2.2 This worksheet contains a combination of formative activities (which contribute towards your learning) and summative activities (which you will complete and submit to be assessed as part of your portfolio). Every exercise marked with a red border is a summative exercise and must be submitted as part of your portfolio. You should use PebblePad to submit portfolio activities. In addition, you may be required to submit other activities — the module teaching staff will provide instructions. Activities marked by (*) are advanced, and may take some time to complete. Expectations: 1. Timeliness You should complete all of the activities in the order provided and submit your portfolio evidence on PebblePad before the completion date (Friday, 14/02/2025, at 17:00). 2. Presentation You should present all of your work clearly and concisely following any additional guidance provided by the module staff in the module handbook. 3. Integrity You are responsible that the evidence you submit as part of your portfolio evidence is entirely your own work. You can find out more about academic integrity on the Skill@library website. All work you submit for assessment is subject to the academic integrity policy. Feedback: Feedback on formative activities will be provided via Lab classes and tutorials. Feedback on evidence submitted as part of the portfolio will be available on PebblePad. Support opportunities: Support with the activity sheet is available in the Lab classes and tutorials. Individual support is available via the online booking system. Expected time for completion: 2-3 hours. Expected complete date: Friday, 14/02/2025, at 17:00 Coursework summary In Activity Sheet 2.1, you have developed some Hack assembly using registers and branches. This week, you will see how these same basic components can be used to implement more advanced programming constructs: iterations and pointers. In addition to the lecture slides for Lecture 16 (Semester 1) and the material for Activity Sheet 2.1, useful references for this activity sheet are [1, sect. 4.2 and 4.3] and the corresponding YouTube videos by the authors.1 Learning outcomes On completion of this activity sheet, you will have: 1. translated high-level paradigm you are familiar with to Hack assembly; and 2. designed and implemented Hack assembly programmes featuring iteration and pointers. Instructions Please submit your .asm files to the Activity Sheet 2.2 assessment on Gradescope. To complete this activity sheet, your solutions to the portfolio questions will need to pass at least 75% of the tests. When this happens, Gradescope will return an 8-character string for you to add as evidence in the PebblePad workbook for this activity sheet. 1. In the file Square.asm, write Hack assembly code to compute y = x 2 , where x is the values initially stored in R0. The code must store the final result y in R1 and must not modify the value initially stored in R0. 2. In the file SumEvenIntegers.asm, write Hack assembly code to compute that is, the the sum of the first n even numbers. The input argument n is the value initially stored in R0. The code must store the final result z in R1 and must not modify the value initially stored in R0. If n is negative, R1 must be set to −1, and if the sum overflows, R1 must be set to −2. 3. In the file IntegerDivision.asm, write Hack assembly code to compute the integer quotient and remainder of an integer division. Let x and y be the (signed) values initially stored in R0 and R1, respectively, and let m and q be the two integers that satisfy x = y · m + q, where q has the same sign as x and is such that |q| < y. The registers R2 and R3 must store the values m and q, respectively. The register R4 is a flag, which must be set to 1 if the division is invalid, and to 0 otherwise. The code must not modify the values initially stored in R0 and R1. Hint: To set the flag correctly, you need to figure out when the division between two integers is undefined. If you are stuck, you can think about division between reals. 4. In the file SumArrayEntries.asm, write Hack assembly code that computes the sum of all entries in an array. The entries of the array are stored contiguously in memory; the memory address of the first entry of the array is stored in R0, and the number of elements in the array is stored in R1. The codes must store the final result in R2 and must not modify the values initially stored in R0 and R1. If the value initially stored in R1 (number of entries in the array) is not positive, then the sum must be set to 0. Hint: You can assume that the value stored in R0 is at least sixteen, so that you can use the register R3, R4, . . . , R15 to store any temporary variables you might need. References [1] Noam Nisan and Shimon Schocken. The Elements of Computing Systems: Building a Modern Computer from First Principles. The MIT Press, Cambridge, MA, USA, second edition, 2005. The book is available to view and down-load at https://ebookcentral.proquest.com/lib/leeds/detail.action?docID=6630880. Additional material is available at https://mitpress.mit.edu/books/elements-computing-systems.
5PAHPRM3 Semester 2 Coursework Worksheet 2024/25 The coursework involves the conduct and interpretation of a data analysis, which is assessed by means of a quiz on KEATS. You should complete the analyses on described this worksheet before attempting the quiz on KEATS. You are provided with a data set file which contains data from a hypothetical direct replication of Wade-Benzoni et al. (2012), Experiment 1, as described in the data file information document. Note that the analyses on this worksheet do not correspond precisely to the analyses presented in the paper (e.g. the authors did not present analysis of the number of words written in priming task; you will not need to consider any aspects of Experiment 2 of the target article). Once you have performed and interpreted the analyses below, you should be able to answer all of the KEATS quiz questions. The quiz will be open for several weeks, and you have 24 hours to complete the quiz questions after you open the quiz - so you will have time to review your and repeat an analysis if required. Analyses can be conducted on JASP or SPSS. All analyses should run with all suitable data included (do not exclude any outliers, and take care if using filters with your data file) ANALYSIS 1 Perform. Exploratory Analysis (Descriptive Statistics & Boxplots) for the following variables: Age, Amount, Words. These analyses should be conducted in three ways: (1) for the whole data set; (2) for each gender separately; (3) for each of the 4 experimental groups separately. Ensure your output includes the mean, median and variance of each variable along with the kurtosis and skewness. Determine whether any variable shows noticeable skewness, or kurtosis, or contains any extreme outliers (based on a criterion of 3 x H-spread). Generate a 95% confidence interval estimate for the difference in age between the two gender groups. Do not assume equality of variance. · ANALYSIS 2 Perform. a suitable ANOVA to investigate whether the Amount donated is influenced by the factors of priming type (death or control) and recipient type (present or future). Using a suitable plot of the means, and/or a table of means, ensure that you understand the pattern of results. Complete a table summarising the key hypothesis tests within the ANOVA, including consideration of what each F test is evidence for Predictor (model term) Statistics (F, df p) Effect size [partial eta-squared] Evidence for? · ANALYSIS 3 Perform. a one-way ANOVA to investigate whether the number of words written is influenced by experimental group assignment. Your analysis should include measures of the effect size for this effect, and a test statistic for this ANOVA model which does not assume equality of variance, based on the Welch model. Generate simultaneous 95% confidence interval estimates for the pairwise differences in the mean number of words written between participants in the four experimental groups. Do not assume equality of variance. · ANALYSIS 4 Perform. a suitable analysis investigate whether the number of words written is influenced by gender. Your analysis should include measures of the effect size for this effect. Generate a 95% confidence interval estimate for the differences in the mean number of words written between the two gender groups. Do not assume equality of variance. · ANALYSIS 5 Perform. a suitable linear regression model to investigate the relationship between age and mean words written, to determine the following: the correlation between age and number of words written, and whether this is significant. the proportion of observed variation in words written that can be predicted by observed age (in this sample) an estimate of the proportion of total variation in words written associated with age in the wider population (from which this sample was taken) A 95% CI estimate of the predicted change in words written with a change in participant age of 1 year (from this model)
CSCI-SHU 360: Machine Learning - Homework 2 Due: Mar 12 23:59, 2025 100 points + 20 bonus points Instructions • Collaboration policy: Homework must be done individually, except where otherwise noted in the assignments. “Individually” means each student must hand in their own answers, and you must write and use your own code in the programming parts of the assignment. It is acceptable for you to collaborate in figuring out answers and to help each other solve the problems, and you must list the names of students you discussed this with. We will assume that, as participants in an undergraduate course, you will be taking the responsibility to make sure you personally understand the solution to any work arising from such collaboration. • Online submission: You must submit your solutions online via Gradescope. You need to submit (1) a PDF that contains the solutions to all questions to the Gradescope HW2 PaperWork assign- ment, (2) x.py or x .ipynb files for the programming questions to the Gradescope HW2 CodeFiles assignment. We recommend that you type the solution (e.g., using LATEX or Word), but we will accept scanned/pictured solutions as well (clarity matters). • Generative AI Policy: You are free to use any generative AI, but you are required to document the usage: which AI do you use, and what’s the query. You are responsible for checking the correctness. • Late Policy: No late submission is allowed. 1 Linear Regression and Convexity [10 points] Show detailed derivations that the linear regression loss function is convex in the parameters w: L(w) = ||y − Xw||2(2). Here y is an n-dimensional vector, X is an n × d matrix and w is a d-dimensional vector. X is of full rank. There are multiple ways to show it, but we force you to take the following approach: compute ∇L(w) using directional derivative and then compute ∇2 L(w). 2 Gaussian Distribution and the Curse of Dimensionality [40 points] In this problem, we will investigate the Gaussian distribution in high dimensional space, and develop intu- itions and awareness about the curse of dimensionality, a critical concept that everyone who wishes to pursue study in machine learning should understand. For a random variable x of m dimensions (i.e., x ∈ Rm ) drawn from a multivariate Gaussian distribution, recall that the Gaussian density function takes the form. where µ ∈ Rm is an m-dimensional mean vector and C ∈ Rm ×m is an order m × m symmetric positive definite covariance matrix. When C is a diagonal matrix, then the covariance between different dimensions is zero, which is known as a axis-aligned Gaussian, and when C = σ 2 I , I being the m × m identity matrix, we already saw this in Homework 1 where the m = 2 (2D) Gaussian in this case has spherical (circle) shaped contours. A spherical Gaussian in m dimensions thus has the following equation form.: We start by examining some basic geometric properties of the sphere in m dimensional space. A sphere is generally a collection of points such that the distance of any point to the center of the sphere (we always center the sphere on origin 0 for simplicity) is equal to r, the radius. In other words, we define an m-dimensional sphere as Sm−1(r) = {x ∈ Rm : ∥x∥2 = r}, the set of points in m-dimensional space that are distance r from the origin (note that Sm−1(r) is the equation for the surface of the sphere, although in some fields, such as physics, they define the sphere as the surface and interior, as in {x ∈ Rm : ∥x∥2 ≤ r}). We also use Vm (r) for the volume of an m-dimensional sphere. Sm−1(r) represents the surface area of the m-dimensional sphere (meaning, e.g., that m = 2 dimensional sphere of radius r has surface area S1 (r), this convention is used since the surface area is a curved m − 1 dimensional manifold embedded in m-dimensional ambient space). Please make sure you answer every question: 1. [1 points] Before we move tom dimensions, let’stalk about 2D and 3D cases. Write down the equations, in terms of the radius r, of Sm−1(r) for m ∈ {2, 3} and Vm (r) for m ∈ {2, 3}. 2. [5 points] Intuitively explain the following equation: Why does this equation make sense and why should it be true? You may help to convince yourself and improve intuition, by verifying the equations of S1 (r), V2 (r), S2 (r) and V3 (r) from the previous question. 3. [4 points] As you may have guessed, Vm (r)’s only dependence on r and m is via m’s power of r, or specifically rm . Suppose for a unit sphere (r = 1) in m dimensional space, the surface area is S(¯)m−1 . Write Sm−1(r) in terms of r and S(¯)m−1 . 4. [5 points] Now consider all the points on the sphere Sm−1(r) (which, because of our definition of Sm−1(r) really means the surface). We wish to integrate over all of those points weighted by the Gaussian probability density p(x) of each point, where p(x) is defined as given in Equation (2). That is, we integrate over all points points x ∈ Sm−1(r) weighted by p(x). Indeed, this is an integration, but you can avoid doing the mathematical integration by utilizing the results from previous questions. Write the equation ρm (r) for the integrated density of sampled points from the Gaussian distribution lying on the surface of Sm−1(r). 5. [5 points] For large m, show that ρm (r) has a single maximum value at ˆ(r) such that ˆ(r) ≈ √mσ . 6. [10 points] For large m, consider a small value ϵ ≪ ˆ(r) (the symbol “≪” means “much less than”), and show that Hint: during your derivation, first get the expression simplified and close to the desired form. Then use Taylor expansion to get the approximation. 7. [3 points] The previous problem shows that ˆ(r) is the radius where most of the probability mass is in a high dimension Gaussian, and moreover, as we move away from this radius, say going from ˆ(r) to ˆ(r)+ ϵ, then the total mass becomes smaller exponentially quickly in ϵ . Also, note that since ˆ(r) ≈ √mσ , for large m we have σ ≪ ˆ(r) — since σ (the standard deviation) is in low dimensions usually used to indicate where much of the probability mass is, indeed p(x) > p(x′ ) whenever ∥x∥ < ∥x′ ∥ with the highest density value being p(0) at the origin 0. When we get to high dimensions, however, most of the mass is far away from the σ neighborhood around the origin. This means that most of the probability mass, in a high dimensional Gaussian, is concentration in a thin skin (e.g., think of the skin of an m-dimensional apple or synthetic leather layer of an m-dimensional soccer ball) of large radius. If we only get a finite number of samples from a high-dimensional Gaussian distribution, therefore, where do most of the points reside? At what radius do they reside? For a low dimensional Gaussian distribution, where do most points reside? 8. [7 points] The conclusion from the previous questions may seem highly counterintuitive, but so can be the curse of dimensionality. Calculate and compare the probability density at the origin and at one point on sphere Sm−1(ˆ(r)). The curse of dimensionality comes from the extremely high growth rate of volume as the dimensionality of the space increases (there’s just a lot of room in high dimensions). Write a python script that samples from an m-dimensional Gaussian. For each m ∈ {1, 2, . . . , 40}, produce 100 samples and compute the mean and standard deviation of the radii of the samples, and plot this as a function of m. Is your plot consistent with the above? Why or why not? Fully understand what you see, and clearly explain to us that you understand it and how you justify it. 3 Ridge Regression [15 points] Recall that linear regression solves Where X is the data matrix, and every row of X corresponds to a data point, y refers to the vector of labels, and w is the weight vector we aim to optimize. Specifically, X is an n × d data matrix with n data samples (rows) and d features (columns), and y is an n-dimensional column vector of labels, one for each sample. Ridge regression is very similar, and it is defined as where we add an additional regularization term to encourage the weights to be small and has other benefits as well which we will discuss in class. Please make sure you answer every question 1. [3 points] Describe (with drawings and intuitive description) one setting for (X, y), where standard linear regression is preferred over ridge regression. The drawing should show: (1) the data points (X, y); (2) the expected linear regression solution (e.g., a line); (3) expected ridge regression solution (also, e.g., a line). You need to explain the reason for why the standard linear regression is preferred. You need not do any actual calculation here. 2. [3 points] Describe (with drawings and intuitive description) one setting for (X, y), where ridge re- gression is preferable to linear regression. Your answer should fulfill the same requirements in part 1. 3. [4 points] Solve for the closed-form solution for ridge regression. To get the closed-form solution, you can set the gradient of the objective function F(w) in the above minimization problem to be zero and solve this equation of w. If you are not familiar with how to compute the gradient (or such derivatives), please refer to Section 2.4 of the Matrix Cookbook (https://www.math.uwaterloo.ca/~hwolkowi/ matrixcookbook.pdf) The Matrix Cookbook is extremely helpful for linear algebra. 4. [5 points] Now consider two cases: (1) where the columns (or features) of X are more than the rows (or samples); and (2) where the columns (or features) of X are highly correlated (an extreme case is where many features are identical to each other). For each of the above: (a) Can you still compute the closed-form solution of the vanilla linear regression? (b) With the closed form. solution of the previous question and compared to the solution for standard linear regression, do you discover other benefits of ridge regression? 4 Programming Problem: Draw an Ellipsoid [10 points] General instruction for python: please install anaconda python (python 3.x version is recommended) by following the instructions at https://www.anaconda.com/download/ if you have not done so, and then install scikit-learn, numpy, matplotlib, seaborn, pandas and jupyter notebook in anaconda, for example, by running command “conda install seaborn” . Note some of the above packages may have already been installed in anaconda, depending on which version of anaconda you just installed. You may also use Colab directly. We provide an ipython notebook “draw ellipsoid.ipynb” for you to complete. You can use any functions from numpy, scikit-learn, and plotting libraries. 1. [2 points] Write a function that takes in a list of 3D points and plot them. After you finish the function, draw the following list of points [(0, 0, 0), (0, 1, 0), (0, 0, 1), (0, 1, 1)]. 2. [8 points] Draw half of an ellipsoid. An ellipsoid is a high-dimensional ellipse. Note that an ellipsoid is mathematically defined as xT Mx = c, with c > 0 and M positive definite. We’ve provided a randomly generated positive definite matrix M of dimension 3 × 3 in the python notebook. Please draw the 3D ellipse with M and c = 300. You are required to generate at least 2500 points that satisfy the ellipsoid equation. Moreover, we ask you to draw only half of the ellipsoid (any half is fine). Feel free to choose the points as long as the point cloud you draw can clearly illustrate the 3D shape of half of the ellipsoid. In addition, it is suggested to annotate your code properly. 5 Programming Problem: Linear Regression [25 points] In this problem, you will implement the closed-form solvers of linear regression and ridge regression from scratch (which means that you cannot use built-in linear/ridge regression modules in scikit-learn or any other packages). Then you will try your implementation on a small dataset, the Boston housing price dataset, to predict the house prices in Boston (“MEDV”) based on some related feature attributes. We provide an ipython notebook “linear regression boston.ipynb” for you to complete. In your terminal, please go to the directory where this file is located, and run the command “jupyter notebook” . A local webpage will be automatically opened in your web browser, click the above file to open the notebook. You need to complete the scripts below the “TODOs” (please search for every “TODO”), and submit the completed ipynb file (inside your .zip file). In your write-up, you also need to include the plots and answers to the questions required in this session. The first part of this notebook serves as a quick tutorial of loading dataset, using pandas to get a summary and statistics of the dataset, using seaborn and matplotlib for visualization, and some commonly used functionalities of scikit-learn. You can explore more functionalities of these tools by yourself. You will use these tools in future homeworks. 1. [5 points] Below “1 how does each feature relate to the price” in the ipynb file, we show a 2D scatter plot for each feature, where each point associates with a sample, and the two coordinates are the feature value and the house price of the sample. Please find the top-3 features that are mostly (linearly) related to the house price (“MEDV”). 2. [5 points] Below “2 correlation matrix”, we compute the correlation matrix by pandas, and visualize the matrix by using a heatmap of seaborn. Please find the top-3 features that are mostly (linearly) related to the house price (“MEDV”) according to the correlation matrix. Are they the same as the ones in the previous question (sub-question 1)? 3. [5 points] Below “3 linear regression and ridge regression”, please implement the closed-form solver of linear regression and ridge regression (linear regression with L2 regularization). You can use numpy here. Recap: linear regression solves while ridge regression solves where X is an n × d data matrix with n data samples and d features, and y is an n-dim vector storing the prices of the n data samples, and F(w) is the objective function. Run the linear regression and ridge regression on the randomly split training set, and report the obtained coefficients w. For ridge regression, it is recommended to try different η values. 4. [5 points] Below “4 evaluation”, implement prediction function and root mean square error where ˆ(y)i is the predicted price and yi is the true price of sample i. Apply the implementation and report the RMSE of linear regression and ridge regression on the training set and test set. Compare the training RMSE of linear regression and ridge regression, what do you find? How about the comparison of their test RMSE? Can you explain the difference? 5. [5 points] Below “5 linear models of top-3 features”, train a linear regression model and a ridge regression model by using the top-3 features you achieved in sub-question 2, and then report the RMSE on the training set and test set. Compare the RMSE of using all the 13 features: what is the difference? What does this indicate? 6 Bonus: Locality Sensitive Hashing (LSH) [20 points] We haven’t talked about LSH in detail in class, and this problem serves as a tutorial for LSH. This problem requires a lot of reading and thinking, though the math involved is not particularly hard. As this is a bonus problem, we suggest you leave it to the end if you have extra time and are interested in the topic. In general, locality sensitive hashing refers to a special property of hash functions and is closely related to approximate nearest neighbor search (NNS), i.e., we find close points to the query instead of exactly the nearest neighbor. For simplicity, suppose the design matrix X (which is n × m) consists of only binary features. This means that every data point (i.e., every row of the design matrix) has the form xi ∈ {0, 1}m . Define d(xi , xj ) as the hamming distance between two data points xi and xj , i.e. d(xi , xj ) = Σa∈{0 , 1 ,...,m−1} |xi [a] − xj [a]| . Hamming distance simply counts the number of positions where the two binary vectors differ, and hamming distance is a proper distance metric (see https://en.wikipedia.org/wiki/Metric_(mathematics) for the full definition of a distance metric). 1. [5 points] Imagine you have the following magical oracle. Given a query point q ∈ {0, 1}m , and two parameters r > 0 and c ≥ 1, (a) If ∃x ∈ X such that d(x,q) ≤ r, the oracle returns to you some point x′ ∈ X such that d(x′ , q) ≤ cr. (b) If ∄x ∈ X such that d(x,q) ≤ cr, the oracle returns to you nothing. (c) Otherwise (∃x ∈ X such that d(x,q) ≤ cr but ∄x ∈ X such that d(x,q) ≤ r), the oracle is not stable, and can either return to you some point x′ such that d(x′ , q) ≤ cr or return to you nothing. Suppose you want to find exactly the nearest neighbor point in X of the query point q. Using as few times as possible of calling the oracle, how do you appropriately set the values r and c in order to get back the nearest neighbor of q? 2. [2 points] Unfortunately, the magical oracle is not free. Suppose we set r to be slightly larger than the distance to the nearest neighbor, i.e. r = minx∈X d(x,q) + ϵ, if we set a very large c, the oracle may return to us any data point, which is cheap but not useful. However, if we set a small c, the oracle becomes expensive and returns to us a point with distance at most cr, which may serve as a good approximation to the true nearest neighbor. By setting values of c, we are controlling the trade-off between the quality of the approximate nearest neighbor and the oracle’s running time. We will then show how to implement the oracle using locality sensitive hashing functions. Consider a family of hash functions H, where each function h is associated with a random integer a from {0, 1, . . . , m − 1}, and given the input xi , h(xi ) = xi [a]. This hash function is very simple, and merely returns coordinate a of the data point xi. Suppose we randomly pick a hash function h from H. For two inputs xi and xj , if d(xi , xj ) ≤ r (r > 0), what’s a lower bound for the probability that h maps xi and xj to the same value (i.e. Pr(h(xi ) = h(xj )))? We name this lower bound asp1 . Similarly, if d(xi , xj ) ≥ cr (c ≥ 1), what’s an upper bound for the probability that h maps xi and xj to the same value (i.e. Pr(h(xi ) = h(xj )))? We name this upper bound asp2 . 3. [2 points] LSH refers to the following properties. A family of hash functions is (r,c,p1 , p2 )-LSH (1 ≥ p1 ≥ p2 > 0, c > 1, r > 0) if: (a) Pr(h(xi ) = h(xj )) ≥ p1 when d(xi , xj ) ≤ r; (b) Pr(h(xi ) = h(xj )) ≤ p2 when d(xi , xj ) ≥ cr. Note h is a randomly sampled hash function from the family of hash functions. Intuitively, when two data points are close (d(xi , xj ) ≤ r), the hash function should map them to the same output value with (relatively) high probability at least equal to p1 . If two data points are faraway (d(xi , xj ) ≥ cr), the hash function should map them to the same output value with (relatively) low probability at most equal to p2 . The very simple hash functions from H introduced above indeed satisfies the LSH property (you can verify by comparing your answers to the two previous questions). With the dataset X, we can first hash all data points using a single function h randomly sampled from H. Then, given a query point q, we hash q with the same function h, and retrieve all data points in X that get hashed to the same value as h(q) (if any). Finally, we can iterate over the retrieved points (if not empty), and return the point closest to the query point q. As p1 ≥ p2 , the hash function is more likely to hash close points into the same value than faraway points. However, the difference between p1 and p2 might be not significant enough. One simple trick to make close points more probable relative to the faraway points is to sample multiple hash functions from H , and two data points have the same hashed value if all the sampled hash functions give the same value. In other words, we define a new hash function g via the use of k randomly sampled hash functions from H, and we do this by concatenating their output together into a vector of length k. g(xi ) = (h1 (xi ), h2 (xi ), h3 (xi ),..., hk (xi )). (10) Give a lower bound for the probability that g(xi ) = g(xj ) if d(xi , xj ) ≤ r in terms of p1 and k. Give an upper bound for the probability that g(xi ) = g(xj ) if d(xi , xj ) ≥ cr in terms of p2 and k. (Note that g(xi ) = g(xj ) if they are equal on every coordinate of the output vectors. You can also think the binary vector output of g as a binary encoding of an integer, so the output of g becomes an integer value.) 4. [2 points] As we increase the value of k, the close data points are more probable relative to the faraway data points. However, we also get lower probability to have two data points hashed to the same value. For large value of k , the probability can be negligible, no two points may get hashed to the same value, and as a result, our algorithm may always return nothing. To alleviate such problems, we may have l instances of g functions, where each g has independent k sampled hash functions from H. Then we hash q with every g function, and collect all data points (if any) that share the same hashed value as g(q). Finally, we iterate over the collected data points from all g functions, and return the one with the least distance. Give a lower bound for he probability that ∃b ∈ {0, 1,..., l−1} such that gb (xi ) = gb (xj ) if d(xi , xj ) ≤ r. Give an upper bound for the probability that ∃b ∈ {0, 1,..., l − 1} such that gb (xi ) = gb (xj ) if d(xi , xj ) ≥ cr. 5. [7 points] Again, assume we set r appropriately so that there exists some data point x ∈ X with d(x,q) ≤ r. Let ρ = ln(p2)/l(p1) , l = nρ and k = ln(1/p2)/ln(n) . Consider the following two events: (a) For some x′ ∈ X, d(x′ , q) ≤ r , ∃b ∈ {0, 1,..., l − 1} such that gb (x′ ) = gb (q). (b) There are at most 4l items in X where each x in those 4l items has d(x,q) ≥ cr and for some b, gb (x) = gb (q). Show the first event happens with probability at least 1 − e −1 (note that limk→∞ (1−1/k)k = e −1 and (1 − 1/k)k < e −1). Show the second event happens with probability at least 3/4 (HINT: use Markov’s inequality https://en.wikipedia.org/wiki/Markov%27s_inequality). Give a lower bound on the probability that both events happen. 6. [2 points] The two events from the previous question happen with a constant probability. We can then boost the probability of success by running multiple independent instances so that the probability that the two events fail for all instances is negligible. For this problem, assume that the previous two events happen with certainty. Recall that we construct l hash functions, and each hash function g consists of k sampled functions from H. Given a query q, we collect all data points in X if they share the same hashed value for any gb with the query point. Now we want to iterate over the collected points and report one point as the nearest neighbor. If we only want to return a point that has distance at most cr to the query point q , how many points do we need to check? Are we guaranteed that there is a point with distance at most cr and why?
International Financial Management (M21081) Course work 2025 Choose a top 100 company from the NASDAQ.You are going to examine that company's Corporate Governance policies. Steps 1.Download the chosen company's latest (2024 or 2025)Corporate Governance statement. 2.Annotate the statement highlighting areas of where the company has demonstrated good and poor corporate governance practice. 3.Write the report,see below for detail. Required: A 1500 word report 1.Introduction where you will provide a short biography of the selected company and an explanation as to why you chose that company. 2.Critically evaluate the corporate governance of the company making direct reference to the annotated statement of corporate governance. 3.Conclude the report by evaluating the possible impact that corporate governance has had on the company's performance and reputation. 4.Reference list 5.Appendix that includes the annotated corporate governance statement. You will be required to research these topics widely in academic texts and journals. The work should be referenced in accordance with APA. Example of how to present you annotations
FIN2023 Financial Management Semester 2, 2024-2025 Academic Year Assignment One Due Date: 5pm, March 14, 2025 Question 1 (20 marks) a. You recently sold 200 shares of Disney stock, and the transfer was made through a broker. Explain whether this is a primary market transaction or a secondary market transaction. (10 marks) b. If a firm's manager deliberately understates costs and thereby increases profits, what impact will this unethical behavior. have on the firm’s stock price in the short run and in the long run? What other consequences could possibly result from this unethical behavior? (10 marks) Question 2 (20 marks) Using the following financial data, complete the missing entries in the balance sheet and income statement: Total assets turnover: 1.6× Days sales outstanding: 73 days (Calculation based on a 365-day year) Inventory turnover ratio: 3× Quick ratio: 2× Debt ratio: 70% Balance sheet Cash Accounts Payable 110,000 Accounts Receivable Long-Term Debt Inventories Common Stock 140,000 Fixed Assets 220,000 Retained Earnings Total L&E Income statement items Sales 960,000 Costs of Goods Sold Question 3 (20 marks) Bradley Enterprises is considering two financial plans for next year. Management expects: - EBIT = $50,000 - Total assets = $200,000 - Tax rate = 30% Given the company only use debt and equity to finance its asset. Plan A uses 50% debt and 50% equity with an 8% interest rate. Bondholders require a Times Interest Earned (TIE) ratio ≥ 5. Plan B maximizes debt while adhering to the TIE constraint. Assume all operational metrics, interest rates, and tax rates remain constant. By how much does the ROE change when switching from Plan A to Plan B? Question 4 (20 marks) Your cousin offers to sell you her coffee truck business for $180,000 with "seller financing" at a 12% nominal annual rate (compounded monthly). The loan requires 24 equal monthly payments over 2 years, plus a final balloon payment of $30,000 at the end of the last month to fully repay the loan. a. What would your monthly payments be? (9 marks) b. Construct the amortization schedule for the first 3 months. (6 marks) c. Explain the difference between the nominal interest rate (APR) and the effective annual rate (EAR). Why is the EAR a more accurate measure of the true cost of borrowing? (5 marks) Question 5 (20 marks) After graduation, you plan to work for Dynamo Corporation for 12 years and then start your own business. You expect to save and deposit $7,500 annually for the first 6 years (t = 1 through t = 6) and $15,000 annually for the following 6 years (t = 7 through t = 12). The first deposit will be made one year from today. In addition, your grandfather has just given you a $25,000 graduation gift, which you will deposit immediately (t = 0). If the account earns 9% interest compounded annually, how much will you have when you start your business 12 years from now?
SESS0009 Applied Game Theory for Economics and Business COURSEWORK 2024/25 Instructions: Answer ALL questions. For each question, illustrate your knowledge of game theory concepts and models. Provide examples and detailed answers where appropriate and present the workings and thought process in full detail. UCL guidance on plagiarism and the use of AI applies as described on Moodle. You MUST include the completed Coversheet, available on Moodle, as the first page of your submission. The word count of 3000 words is based on Chapter 10.11 of the SSEES Student Handbook and applies to net text only (does not include numbers, equations, tables and figures, captions and titles, references, abstract etc.). If you face problems in submission, please contact your Programme Administrator or [email protected]. Marking criteria: All questions and sub-questions carry the denoted marks. Arriving at a correct result without any explanation is worth minimal marks. Marks are awarded based on i) understanding the course material and question requirements ii) showing insight and creativity iii) correctness iv) proper use of terminology, accuracy and clarity in explanation and language v) proper presentation and notation. The criteria are in random order. Computer-formatted submissions are strongly encouraged. Plots and diagrams can be hand-drawn but must be properly placed within the text and properly labelled. Any questions must be posted on the Teams channel for AGT, not sent by email or personal message, to benefit as many students as possible. Question 1 (10 points) Solve the following sequential games and explain your methodology step by step, state the Nash Equilibrium (or Equilibria). (I) Order of payoffs is (A, B) (3 points) (II) Order of payoffs is (A, B) (3 points) (III) Order of payoffs is (A, B, C) (4 points) Question 2 (10 points Find all the Nash Equilibria (pure and mixed) in the following simultaneous games and explain your methodology step by step. (I) (3 points) (II) (3 points) (III) (4 points) Question 3 (10 points) Bertrand competition with differentiated goods. Firms 1,2 with demand functions Q1 = 10 – 3P1 + 2P2 , Q2 = 10 – 3P2 + 2P1 and marginal costs C1 = 6, C2 = 4. i) Find the Nash Equilibrium prices, quantities and individual profits. (3 points) ii) The firms agree to form a cartel. Find the prices, quantities, cartel profits and individual profits under the cartel agreement. (3 points) iii) Which firm has a reason to suggest the cartel, and is the cartel sustainable or not? Depict and explain the cartel game in an appropriate way. If it is sustainable, explain. If no, explain and suggest a mechanism that can make it sustainable a) if the deal is for one period only b) if the deal is renewed each period over 5 periods. (4 points) Question 4 (10 points) The merchant ship Antelope, carrying silk, was wrecked upon Goodwin Sands in October 1604. The silk belonged to two Canterbury tailors but all records have been lost. The ship was insured, so the owner invites both traders to provide separate self-assessments of the value of their silk. They can declare any amount between 50 and 200 pounds, but if they disagree the trader that declared the lower amount will receive a bonus of 50 pounds on it, while the other a penalty of 50 pounds on his amount. If they agree, they both receive the stated amounts. What is the Nash equilibrium of the game? Explain and illustrate the solution, comment on the outcome and how it relates to rationality and human behaviour. Question 5 (50 points) Select one example (case study) from “Economics of Strategy” , available on Moodle, that relates to economics, finance, management etc and can be modelled via game theory. Only examples (case studies) in blue backgrounds may be selected and only from the book, as below. Examples not from the book or that are not in blue backgrounds will be marked with zero (0). State the example as "Chapter X, Example Y.Y, p. ZZZ, Title". The goal is to model the case study through a game theoretical approach and draw conclusions from modelling and subsequent analysis. State the basic facts and intuition/subject: what feature are you modelling and why, and how does that relate to the case study? Explain the game you construct (payoffs, setup, uncertainty, rounds etc) in full detail and justify your choices. Link the facts of the case study to the model structure. Solve the game and fully interpret and discuss your solution. Provide the economic intuition of your result. What does it tell us about the situation, the agents/ framework and real-world actions? Further guidance: i) Elaborate games modelling more complex cases (e.g. introducing informational asymmetry in a competitive setup) will be awarded more points, but a simple game that is solved correctly is better than a complex game solved incorrectly, or not at all. Please bear in mind that overly simplistic approaches will receive rather low marks. ii)A case study contains different aspects and each aspect can be modelled in different ways – there is not a unique way and your model is not meant or expected to capture everything. However, the various approaches are relevant, informative or meaningful to different degrees. If you want to capture more than two aspects in your model you are welcome, but this is not required. iii) Do NOT do any further research on the firms, do NOT cite papers/ news/ reports and do NOT collect any data. You must use only the information provided in the case study. Feel free to make assumptions, but do not overextend and do not override or misrepresent the information given. iv) Modelling a single feature does not mean you are required to have only one tree/ table. You are encouraged to model different variations or sub-cases and explore the case study. However, be mindful of reverse-engineering. v) Try to discuss your results to some extent and state what you can learn from your model and what insight it provides about the situation at hand.
Resistance and Ohm’s Law - MBL In this experiment you will investigate different aspects of Ohm’s Law, which relates voltage, current, and resistance. A computer will be used to collect, display, and help you analyze the data. THEORY Ohm’s Law: V = IR (1) where V is voltage, I is current, and R is resistance. Factors that can affect resistance include: • Temperature. Resistance generally increases as temperature increases, although this is not true for all materials. • The density of charge carriers in the device. Semiconductors are good examples of materials in which the number of charge carriers changes as the applied voltage changes. A resistor is a device with some resistance. Examples include the element in a toaster, the filament in a lightbulb, or even just a length of wire. For a wire of length L and cross-sectional area A, made from a material with a resistivity ρ, the resistance is given by: R = ρ L/A (2) On a circuit diagram the symbol for a resistor is: When resistors are connected together in a circuit, the overall resistance of the circuit can be found by using the following relationships. These show the total resistance obtained when resistors are placed in series or in parallel. Adding resistors in series: R = R1 + R2 (3) Adding resistors in parallel: 1/R = 1/R1 + 1/R2 (4) In series circuits the current is the same through each resistor. In parallel circuits the voltage is the same across each resistor. In addition to resistors, you will use several other devices in the circuit in this experiment. These are shown below, along with the symbol used to represent them in a circuit diagram. A current at any point in a circuit can be measured with an ammeter. Ammeters are placed in series with the device through which the current is being measured, to ensure that the current through the ammeter is the same as the current through the device. The ammeter should also have a very small resistance, so it will change the current in the circuit by a negligible amount. Potential differences (voltages) in a circuit are measured using voltmeters. These are placed in parallel, because devices in parallel have the same voltage across them. Voltmeters need to have high resistance to ensure they have minimal impact on the currents and voltages in the rest of the circuit. HINTS ON WIRING CIRCUITS The following page shows circuit diagrams for the different circuits you will use in the experiment. The lines on the diagrams represent the wires you will use to connect the different components to one another. To connect the first circuit, start with the power supply (the blue box). Connect one of the wires from the voltage sensor to the + terminal of the power supply, and then connect the second wire to the – terminal of the power supply. You may find it helpful to have the power supply on the left and the voltage sensor on the right, as shown in the diagrams. For Circuit II, wire the power supply, current sensor, and resistor in a big loop. That puts all those things in series with one another. Then connect one end of the voltage sensor to one end of the resistor, and the other end of the voltage sensor to the other end of the resistor. That puts the voltage sensor in parallel with the resistor. CIRCUIT DIAGRAMS PROCEDURE Part I – Familiarizing yourself with the equipment. 1. Load the software for the experiment by double-clicking on the “Ohm’s Law” icon in the Intro I folder. The screen should show a graph, a table, and, in the lower right corner, boxes with the voltage and current readings. Click the button and select “Zero All Sensors” to make sure the voltage and current readings read zero when they are not connected to anything. 2. Whenever you hit the button, the computer should record voltage and current over a 20- second interval (you can hit the Stop button to end before 20 seconds is up, if you’d like). In this part of the experiment you will graph voltage (potential) as a function of time. 3. Following the diagram for Circuit I, connect the two leads on the voltage sensor (this is connected to Probe 1 on the Dual-Channel Amplifier) to the power supply, which is a blue box. The red lead should go to the + on the power supply and the black lead should go the –. The current sensor should not be connected. Make sure the current knob on the power supply is turned to maximum (fully clockwise), then hit the button and observe what happens when you rotate the voltage knob on the power supply. 4. Now reverse the leads of the voltage sensor (red to –, black to +). Hit the button again and observe what happens now when you rotate the knob on the power supply. Question 1 – What range of voltages do you have to work within this experiment? Part II – Investigating Ohm’s Law. 1. In this part of the experiment you will look at graphs of current vs. voltage. To change what is displayed on an axis click on the axis label, check what you want to display, and (for the y-axis only) remove the check(s) for anything you do not want displayed. Set the graph to show current on the y-axis and potential on the x-axis. 2. To set the scales properly, click on one of the numbers to the left of the y-axis. This should bring up a box where you should enter a minimum of –0.3 and a maximum of 0.3 for the manual scaling. Do something similar for the x-axis, clicking on a number below the axis to bring up the axis settings box. This time enter –6 as the minimum and 6 as the maximum. 3. Following Circuit Diagram II, wire up the circuit to measure the voltage and current across a 100 Ω resistor. A resistance box is used as the resistor. Set it for 100 ohms. On the power supply turn both the current and the voltage to maximum. 4. Hit the button. Over several seconds turn the voltage down to minimum, then quickly reverse the leads at the power supply. Over several seconds turn the voltage knob towards maximum again. This should give you a graph of current vs. voltage covering from about –5 volts to +5 volts. Repeat the process until you are happy with the graph, select the Data menu, and choose “Store Latest Run” . Question 2 – Remembering what Ohm’s Law says, what do you expect the slope of the current vs. voltage graph to be equal to? 5. Find the slope of the line by selecting the Curve Fit button, . Select “Linear Fit” from the list and click . Write down the slope before hitting , because after hitting not enough significant figures are shown. Question 3 – Determine the resistance from the slope. How does it compare to the expected value? 6. Set the resistance box to 200 Ω. Repeat step 4 to obtain a current vs. voltage graph. Question 4 – Again determine the resistance from the slope. How does it compare to the expected value? Resistors are fine but, as you should have noticed from the graphs, they’re fairly boring in that the resistance doesn’t change. Now we’ll investigate a light bulb and a light-emitting diode (LED), which give more interesting results. 7. Turn the voltage all the way down and turn the power supply off. (Turning the power off completely gives us no voltage – when the voltage knob is all the way down but the power supply is on there is still some voltage being applied.) Replace the resistance box with the light bulb. Hit the button, wait a couple of seconds until the current stabilizes, then gradually increase the voltage to maximum and turn it back down to minimum about twice as fast. This should give you a current-voltage graph for the light bulb that looks somewhat more complicated than those for the resistors. Question 5 – Use Ohm’s Law to determine the resistance of the lightbulb at about 1 volt and also at about 5 volts. How do the numbers compare? Examine the graph closely. What happens when the power supply is first turned on? Is the current the same at a particular voltage when the voltage is being increased as it is at that voltage when the voltage is being decreased? How can you explain these results? 8. Now set the current to minimum and the voltage to maximum. Replace the lightbulb by the LED (light-emitting diode), and gradually turn up the current knob until the current is about 0.100 A. If you don’t get any current turn the current back down to minimum, reverse the leads to the LED, and try again. Once again obtain a current-voltage graph by hitting , turning the voltage knob down to minimum, reversing the leads at the power supply, and turning the voltage knob back to maximum. Question 6 – When current changes from positive to negative, what it means is that the current has reversed direction in the circuit. Does a resistor behave differently in response to positive and negative currents? In other words, does the resistor have a preferred direction for the current? What about the light-emitting diode? Question 7 – Compare your graph for the LED to the graph for the 100 Ω resistor. Comment on any differences. What can you conclude about the resistance of the LED? Part III – Comparing a lightbulb and a resistor. 1. Now you will look at graphs of current vs. time. Click on the x-axis label and check “Time” . For this part it helps to record data at a faster rate, so from the Setup menu choose “Data Collection” and then Sampling. Set the sampling speed to 100 samples/second. You should also click on one of the numbers beside the y-axis and enter a minimum of 0 and a maximum of 0.6. 2. Following Circuit Diagram III, wire up the circuit to measure voltage across and current through a lightbulb. Check that your voltage and current readings are positive, and set the knobs on the power supply to give maximum voltage and maximum current. 3. Open the switch. Hit the button. After a few seconds close the switch. You should not adjust the knobs on the power supply. Open and close the switch a few times. Question 8 – What do you observe? When you close the switch is the current constant? Explain your observations. 4. Replace the lightbulb by the 100 Ω resistor (the resistance box again). Repeat step 3. Question 9 – What do you observe this time? Make note, in particular, of any differences you notice between the graph for the lightbulb and the graph for the resistor. Explain any differences you see. Part IV – Investigating series circuits. Question 10 – What do you think happens when current passes through devices in series? Does the current get used up as it goes through each device, or is it the same everywhere? 1. Wire the circuit to look like Circuit IV, with the ammeter, a 100 Ω resistor and another 100 Ω resistor in series,in that order. With the voltage at maximum, what is the current? 2. Wire the circuit so the ammeter is between the two resistors. Measure the current now. Change the order again, to be resistor, resistor, ammeter. Measure the current a third time. Question 11 – Compare the readings. What does this tell you about current in series circuits? Part V – The Mystery Box Hidden inside each dark blue box are five identical (within 1%) resistors. They are connected in some unknown series-parallel combination to the posts labeled A-D. Your job is to determine how the resistors are connected, and to determine their resistance, by taking only three measurements of resistance with the digital meter, between posts A and B, B and C, and C and D. Each box is unique, so make sure you record the code number written on the label. Record the three measurements, and then sketch the circuit diagram for your mystery box and figure out the resistance of the five identical resistors.
Geographic Perspectives on Earth System Science Geography 210 Assignment #3: Observed Global Temperature Change Due via Canvas Friday March, 7 at 11:59 pm Goal: The goal of this assignment is to quantitatively assess instrumental (i.e., observed) records of global temperatures. You will download and collate data into Excel for analysis, make two plots, and assess trends using Excel’s =SLOPE function. You should plan to download the full version of Excel to your computer or work in a computer lab that has Excel installed. Using the web version of Excel (or Google sheets) may be possible, but the instructions included here pertain to the desktop version of Excel. Read all instructions carefully! You are responsible for two deliverables to be uploaded to Canvas: 1. A PDF document with the written answers and your plots. To get your plots into your writeup, you can simply right-click it in Excel, select Copy, and paste it into a Word document (by right-clicking or Edit->Paste). 2. Your Excel workbook where you’ve assembled the data, created the plots, and done any other calculations. Name this LastName_TempData_GEOG210_A3.xlsx. Submissions not including an Excel file that includes the analysis shown in the writeup will be penalized 50%. Specific objectives: • To obtain and analyze observed temperatures. • To assess trends in data by calculating linear slopes. Global mean temperature Global mean temperature datasets are assembled by multiple scientific agencies using air and ocean temperature observations collected from across the world. In the United States, NASA’s Goddard Institute of Space Studies (GISS) and the National Oceanographic and Atmospheric Administration (NOAA) both compile important global temperature datasets. Similar datasets come from international groups including the Japan Meteorological Agency and the UK’s Hadley Center Climate Research Unit (HadCRU). More recently, a group in the US called Berkeley Earth began creating their own independent global temperature record, initially motivated by their founder’s climate change skepticism. Step A: Download global temperature data The first part of this assignment has you download, plot, and investigate the global temperature datasets yourself. For simplicity let’s just work with the NASA GISS, HadCRU, and Berkeley Earth data. Download each dataset as a csv (comma separated values) text file (you may need to right click and choose “save as” to do this). NASA GISS data: https://data.giss.nasa.gov/gistemp/ • Download: Combined Land-Surface Air and Sea-Surface Water Temperature Anomalies (Land-Ocean Temperature Index, LOTI) “Global-mean monthly, seasonal, and annual means” data. • Important: get the CSV (comma separate values) file. Once downloaded, it can be opened directly by Excel! UK Met Office/HadCRUTv5 data: https://www.metoffice.gov.uk/hadobs/hadcrut5/data/HadCRUT.5.0.2.0/download.html • Download: HadCRUT5 analysis time series: ensemble means and uncertainties -> global (NH+SH)/2 -> Annual data (CSV). Berkeley Earth data: http://berkeleyearth.org/data/ [GET FROM CANVAS – see below] • Since the data are provided in a plain text file, it would take a few extra steps to get the data into Excel. Given this, we’ve converted them to CSV to make it easier for you – download the data from Canvas! • Note that the original data are the: Global Time Series Data -> Global Monthly Averages (1850 – Recent) -> annual summary (of the Monthly Global Average Temperature). This data file has a “header” that describes the data and the columns. In our analysis, we want to use the “Land + Ocean data using air temperatures above sea ice” data. Step B: Collate the data into a single Excel workbook Now that you’ve downloaded the three files containing the data, we will want to bring them into a single Excel workbook, but under separate worksheets (tabs). Make sure to label your tabs, so you know which dataset is which! NASA GISS data: • Double click the GLB.Ts+dSST.csv NASA GISS data file to open it in Excel. Immediately after opening save the notebook as an Excel Workbook (.xlsx) file (this is critical!). Name it LastName_TempData_GEOG210_A3.xlsx. • Rename the tab (aka worksheet) to “NASA GISS” by double clicking on the tab in the lower left. HadCRUTv5 data: • Double click the HadCRUT.5.0.2.0.analysis.summary_series.global.annual.csv file, which will open it in another Excel window. • Let’s move this to the other workbook, by right clicking the tab at the bottom left and clicking Move or Copy. In the “To book” select your LastName_TempData_GEOG210_A3.xlsx file, then click OK. • Rename the tab to “ HadCRUT.5” by double clicking on the tab in the lower left. Berkeley Earth data: • Double-click the BerkeleyEarth_Feb2025.csv file, which should open in another Excel window. • As with the HadCRUT data, let’s move this to our main workbook. Right click the tab at the bottom left and click Move or Copy. In the “To book” select your Lastname_TempData_Lab5.xlsx file, then click OK. • Rename the tab to BerkeleyEarth. When all datasets are in the same Excel workbook, you’ll have three worksheet tabs that looks something like: Step C: Analyzing global temperature data Question 1 [20 pts]: Create a single plot including all three datasets. Tip: the type of chart you’ll want to use a scatter plot with straight lines. Plot time along the x-axis and temperature along they-axis. Label your y-axis, limit your x-axis from 1840 to 2030, and set the major units to 20. Click they-axis and specify that the horizontal axis crosses at the minimum value on your y-axis (this places the x-axis at the bottom of the chart). Add a legend with appropriate names for the datasets you’ve plotted. The data to plot are: • NASA GISS: J-D (Jan-Dec average temp anomaly; Column N) over 1880-2024 • HadCRUTv5: Anomaly (degC) (Column B) over 1850-2024 • BerkeleyEarth: Annual Anomaly (Column B) over 1950-2024 Hints to get you started: • Start in the NASA GISS tab. Select 1880-2024, then select the corresponding temps in the J- D column (note you’ll need to skip the last value as it’s for 2025 and incomplete!). • Once the data (not the full columns!) are selected, go to the tab Insert -> Scatter -> Scatter with straight lines. This will plot the data! • Next, right click the plot and click “Select Data … ” • Give Series 1 a better name: NASA GISS • Click the + • Type a name for the dataset (HadCRUTv5) • Click the button in right of the X values box to select data: • Click to the HadCRUTv5 tab and select the rows with the years. • Now clear out the ={1} in the Y values field, and select the corresponding temperature data for HadCRUTv5. • Do the same for Berkeley Earth now! • For full credit, tidy up your plot following the instructions in (a) above! Question 2 [5 pts]: Describe (qualitatively – in words) how the three datasets compare. Is there a consensus of how global temperature has changed over this time period? Question 3 [10 pts]: What are the annual trends in temperature from each dataset between 1970 and 2024? Use Excel’s SLOPE function (=SLOPE(known_y's, known_x's)) to calculate linear trends in the data. • For theY data, use the temperature data. For X, use the years. • The slopes are in °C/year. • What are the decadal trends from each dataset? (Hint: you’ll need to multiply yearly trends by 10 to get the decadal trends). • Again, how do these numbers compare between the datasets? Question 4 [10 pts]: Create a copy of the BerkeleyEarth worksheet by right clicking the tab, selecting “Move or Copy” and checking the “Create a copy” check box. Clear the extra columns of data so you just have two columns: year and annual temperature anomaly. What are the 10 hottest years on record? What are the 10 coldest years on record? Use Excel’s sort function to find hottest and coldest years: • Select the temperature data, then use the Sort & Filter tool in the Home tab: Be sure to tell it to expand the selection (this will reorder the years column as well): Question 5 [5 pts]: Based on your analysis, what would you say to someone that says the world is not warming? [5 pts]
ISYS1000 Introduction to Business Information Systems Semester 1, 2025 ISYS1000 Assessment 1(30%) This assessment consists of two parts: Weekly worksheets (10%) & ISDF Assignment (20%). Part 1: Weekly Worksheets (10%) To help you stay on track with your learning, we’ve designed weekly worksheets that align with Modules 1–5. These are great opportunities to reinforce key concepts and practice applying what you’ve learned! Due Dates & Completion Timeline You can complete the worksheets online at your own pace, as long as you submit them by the deadlines. Key deadlines to remember: • Worksheet 1 (Module 1) and Worksheet 2 (Module 2) are due on 16 March. • Worksheets for Modules 2–5 will each have two weeks for completion. • Worksheet 5 (Module 5) is due by Sunday, 6 April 2025. Accessing the Worksheets • You can find the worksheet links on Blackboard → Assessments → Assessment 1: Business Technology Analysis (ISDF). Completing & Submitting the Worksheets • All worksheets must be completed on the Pearson MyLab platform. • If you have not yet set up your Pearson MyLab account, please follow the instructions provided on Blackboard → MyLab. Recommendations for Successful Completion • Start early to allow ample time for completion and review. • Ensure you are familiar with the Pearson MyLab platform before beginning. • If you have any questions or encounter difficulties, please reach out for assistance. Monitored Test – Closed-Book Exam Information To ensure fairness and maintain academic integrity, these worksheets will be closed-book, monitored tests that must be completed under exam conditions. Preparing for the Test To take the test, you will need to install Respondus Monitor & LockDown Browser ahead of time. This tool helps create a secure test environment and ensures a smooth experience for all students. What to Expect During the Test • You’ll take the test in a quiet, secure space without external resources. • The Respondus LockDown Browser will prevent you from opening other applications or browsing the web during the test. • Respondus Monitor will use your webcam and microphone to verify exam conditions. Helpful Reminders • To avoid any last-minute issues, please install and test the Respondus LockDown Browser & Monitor in advance. • Step-by-step setup instructions are available on Blackboard → Assessments → Assessment 1: Business Technology Analysis (ISDF) → Respondus LockDown Browser Download and Install. Part 2: Information Systems Description Framework (ISDF) Assignment (20%) Revised due date: Friday 28-March-2025 6:00 pm In this individual assignment, you will use the Information Systems Description Framework (ISDF) to analyse an Information System within a selected real-world business. This analysis will involve providing detailed descriptions and diagrams to illustrate the components and operations of the system. The Information Systems Description Framework (ISDF) is a structured, step-by-step process for describing the components and processes of an Information System. The proposed documentation should clearly describe the User, uses and components of the information system that you are describing. Assignment Tasks To begin, you need to select a small or medium-sized enterprise (SME) within your locality that has implemented an Information System to address a specific business need or to optimise its operations. Ideally, this should be a business you are familiar with, such as your own workplace (if employed) or a business you frequently interact with. Choosing a business you have access to will help in gathering relevant information for your analysis. Once you have selected a business, provide a brief description that includes its name, location, industry, and the products or services it offers. Additionally, describe its typical daily operations, such as sales transactions, order processing, inventory management, appointment scheduling, or customer service interactions. This section should give context to the business environment in which the Information System operates. Next, identify two key business processes that are crucial for the business's operations. These could include functions such as order processing, inventory management, appointment scheduling, or customer service. For each process, provide a brief explanation of how it functions and why it is important to the business. Consider what role these processes play in improving efficiency, reducing errors, or enhancing customer experience. After identifying two business processes, select one of these processes for a detailed ISDF analysis in the following sections. Clearly state which process you have chosen. In the following section, your analysis of the chosen process should focus on how the information system supports this process, detailing the system's components, the users who interact with it, and the overall workflow. Ensure that your explanation includes diagrams in the relevant sections to visually represent the information system’s structure and its role within the business. Your write-up for these sections can serve as the introduction of your submission, providing a clear foundation before diving into the deeper analysis using the ISDF framework. 1.0 General Description 1.1 Identifying Key Functions in the Business Process For the chosen business process, identify and briefly describe four key functions or sub-processes within the process. These functions should represent the major steps involved but should not include internal technical details of the Information System itself. For example, in an Order Processing system, the process begins when a customer initiates a purchase. Once the order is placed, the system records the sale through data capture, such as scanning a barcode at the Point-of-Sale (POS) system. After the transaction is logged, the inventory is automatically updated to reflect the reduction in stock levels. Finally, the system generates a receipt for the customer, and the transaction is stored for reporting and future reference. 1.2 Identifying the Supporting Information System After outlining the key functions, identify the Information System that supports this process and describe its overall purpose within the business. Explain how the system contributes to the efficiency, accuracy, or automation of the process, ensuring a clear connection between the system and the business operations. 1.3 Identifying Users and System Components Identify and describe all users and their roles within the Information System. Users can include external users, such as customers and suppliers, who interact with the system for transactions, tracking, or service requests. Additionally, other information systems may act as users by exchanging data, automating processes, or supporting business functions. In this assignment, these are considered non-computerised users because they interact with the system but are not human users. Next, identify internal users, such as employees and managers, who use the system for daily operations, decision-making, and managing business processes. Then, identify the key system components, such as internal software applications and storage databases, that interact within the system. In this assignment, software applications and storage databases are also conceptualised as non-computerized users because they interact with other components of the Information System but are not human users. Briefly explain how both computerised and non-computerized users interact with each other within the Information System. These interactions may include inputting data, retrieving information, processing transactions, or storing records. Provide a high-level explanation, focusing on the overall purpose of these interactions rather than technical details. The specific details will be discussed further in the ‘External Description’ and ‘Internal Description’ sections. 2.0 External Description In this section, you will describe the inputs, outputs, and boundaries of the Information System. The focus should be on understanding how users interact with the system, what data they provide, how that data is processed, and what outputs the system generates for various users. 2.1 Inputs to the Information System Identify all user roles and specify the inputs they provide to the components of the information system, along with the data entry methods used for submission. Users interact with the system by submitting various types of input data through different data entry methods. These methods may include manual entry, such as filling out a web form; scanning, such as barcode scanning for inventory updates; or automatic capture, where an online purchase is recorded by the system without manual intervention. Each user role should be clearly identified along with the data entry method used, the specific input data provided, and the software or application to which the data is submitted. This submission corresponds to the information processor discussed in the Internal Description section. 2.2 Outputs from the Information System Identify all user roles and list the specific outputs they receive from components in the information system, along with the delivery method usedt After processing user inputs, the system generates various outputs that provide relevant information to users. These outputs can be delivered in different forms, such as emails, reports, notifications, receipts, or system updates. Each output is tailored to a specific recipient and contains information relevant to their role. The format for describing outputs should include the name of the user or system receiving the output, the data output method, which defines how the information is delivered (e.g., receipt, report, notification), and a description or example of each output. 2.3 System Boundary The boundary of the Information System defines what is inside the system (internal components) and what interacts with it externally (external components). External components are elements outside the system that provide inputs or receive outputs, such as customers, suppliers, or external databases. Internal components are elements within the system that process or store information, such as internal databases, software applications, or internal users. For example, in an Online Retail System, external components include customers, who place orders, and suppliers, who send stock updates. The internal components include an Order Management System, which handles orders and transactions, and an Inventory Database, which stores product stock levels. In this scenario, customers input order details, the system processes the order, the warehouse receives a packing list, inventory levels are updated, and the finance team receives sales reports. The system boundary distinguishes what is part of the system, such as databases and internal processing, from what interacts with it externally, such as customers and suppliers. When describing system boundaries, focus on information processing itself rather than specific hardware, software, or communication technologies. Ensure that your descriptions of inputs and outputs are detailed, clearly identifying who provides or receives them and how they interact with the system. This section should offer more depth than the general system description, providing a structured understanding of how the Information System operates within its defined boundaries. 3.0 External View of the Information System Create a diagram summarising the external components and interactions of the Information System, following the format below. Ensure the diagram includes all relevant details from the external description of the information system. Figure 1 - External View of the Information System 4.0 Internal Description This section details the information processors, information stores, and internal networks within the Information System. These components are crucial in processing, managing, and storing information to support business operations. 4.1 Information Processors Information processors are the components responsible for handling and transforming data within the system. These processors can be human-based, where employees manually enter or verify data, or software-based, where automated systems perform calculations and process transactions. Each processor has a specific function in managing information to ensure efficient operations. Example 1: Software-based information processor is the Automated Order Processing Application (AOPA), which automates order handling and transactions. This system processes online orders by calculating total costs, including taxes and discounts, verifies payment transactions, and updates stock levels accordingly. It also generates order confirmation emails for customers. • Type: A software-based information processor that automates order handling and transactions. • Function: o Processes online orders by calculating total costs, including taxes and discounts. o Verifies payment transactions and updates stock levels. o Generates order confirmation emails for customers. • Description: when a customer places an order on an e-commerce website, the AOPA automatically calculates the final price, confirms the payment through an integrated payment gateway, updates the inventory system, and sends an order confirmation email to the customer. This automation reduces manual work, minimises errors, and improves the speed of order processing. Example 2: Barcode Scanning System, a hardware device with embedded software that processes barcode data and transmits it to an inventory management system or Point-of-Sale (POS) software. This system reads product barcodes, decodes the data, and updates stock levels accordingly. • Type: A barcode scanner with embedded software that processes scanned data and transmits it to an inventory system. • Function: o Reading product barcodes and extracting information. o Sending scanned information to the inventory management system or POS. o Automatically updating stock levels and tracking product movement. • Description: when a warehouse worker scans a barcode on an incoming shipment, the scanner processes the data, verifies product details, and updates the inventory system. Note: While the barcode scanner is a physical device, the actual data processing is performed by the software embedded within the scanner or in a connected system. This distinction clarifies that the scanner itself is hardware, but the information is processed by its internal software or an integrated system. Example 3: Manual Data Entry by Employees [Human-Based Information Processor] Employees play an essential role in reviewing and correcting system-generated records, as well as manually inputting data where necessary. • Type: A person manually inputting or verifying data in the system. • Function: o Reviewing and correcting system-generated records to ensure accuracy. o Manually inputting data when automation is unavailable or unreliable. • Description: Customer support staff may need to correct an incorrect shipping address in the order management system to ensure the order is delivered to the correct recipient. In situations where automation is limited, human input ensures that errors can be corrected, and data accuracy is maintained. 4.2 Information Stores Information stores are the components of an information system that store and retrieve data. These stores can be physical (e.g., paper-based records, filing cabinets) or digital (e.g., databases, cloud storage, file management systems). The purpose of these stores is to ensure that critical information is securely recorded and accessible when needed. Example 1: Customer Database (CDB) [Digital Storage] A common example of a digital information store is the Customer Database (CDB), which stores customer-related data, including names, contact details, and order history. This database helps businesses track customer purchase behaviour and preferences while enabling quick retrieval of information for order processing and customer support. For instance, when a returning customer logs into an e-commerce website, the CDB retrieves their saved shipping address and previous order history, streamlining the checkout process and enhancing the customer experience. • Type: A digital database that stores customer-related data. • Function: o Stores customer details such as names, contact information, and order history. o Tracks customer purchase behaviour and preferences. o Allows quick retrieval of customer information for order processing and support. Description: A returning customer logs into an e-commerce website. The CDB retrieves their saved shipping address and previous order history, enabling a faster checkout process. Example 2: Inventory Management Database (IMD) [Digital Storage – Cloud-Based or On-Premise Database] Another example of a digital storage system is the Inventory Management Database (IMD), which is used to track stock levels, product details, and warehouse locations. This structured database can be cloud-based or on-premise, and it maintains real-time records of product availability and stock movements. It automatically updates inventory levels after a sale or upon receiving new stock. For example, when a warehouse worker scans a barcode on a newly arrived shipment, the IMD updates stock levels instantly, ensuring accurate inventory tracking and supporting supply chain management. • Type: A structured digital database that tracks stock levels, product details, and warehouse locations. • Function: o Maintains real-time records of product availability and stock movements. o Updates inventory levels automatically after a sale or new stock arrival. o Supports supply chain and warehouse management. Description: A warehouse worker scans a barcode on a newly arrived shipment. The IMD updates the stock levels automatically, ensuring accurate inventory tracking. Example 3: Document Storage System (DSS) [Physical Filing System] In contrast, a Document Storage System (DSS) represents a physical filing system used for storing important business documents, such as invoices, contracts, and compliance records. This system allows businesses to retrieve physical documents when needed for operations, audits, or legal requirements. For instance, when the finance department needs to verify a past transaction, they locate the relevant filing cabinet, retrieve the customer’s invoice, and review the payment details for reconciliation. • Type: A physical repository for business documents, such as filing cabinets or paper-based record storage. • Function: o Stores important documents, including invoices, contracts, and compliance records. o Enables retrieval of physical documents when needed for business operations. o Provides a structured filing system to support audits and legal requirements. Description: The finance department needs to verify a past transaction. They locate the DSS filing cabinet, retrieve the customer's invoice, and review the payment details for reconciliation. 4.3 Communication Networks Communication networks are essential for transferring information within and outside an Information System. These networks facilitate seamless interaction between internal system components and external users, ensuring secure and efficient data exchange. Communication networks are categorised into: • Internal communication networks are used within the organisation to facilitate data exchange between employees, systems, and databases. • External Communication Networks connect the system to external users, third-party services, and other external entities. 4.3.1 Internal Communication Networks Internal communication networks enable data transfer within the organisation, allowing employees, systems, and databases to communicate efficiently. These networks provide secure access to internal applications, facilitate collaboration, and ensure smooth business operations. 4.3.2 External Communication Networks External communication networks connect the system with customers, suppliers, payment gateways, and third-party services. These networks allow external users to interact with the system for transactions, support, and information exchange. Examples of communication networks 1. Intranet [Internal Network] - Type: A private network accessible only to employees within the organisation. An Intranet is a private network accessible only to employees within the organisation. It provides secure access to internal applications, shared files, and company resources while connecting internal systems such as the Automated Order Processing System (AOPS) and Inventory Management Database (IMD). It also enables employees to collaborate using internal web portals and dashboards. • Function: o Provides secure access to internal applications, shared files, and company resources. o Connects internal systems, such as the Automated Order Processing System (AOPS) and Inventory Management Database (IMD). o Enables employees to collaborate using internal web portals and dashboards. • Description: o Sales manager may access the Intranet to check order reports and inventory status from the Inventory Management Database (IMD). 2. VPN (Virtual Private Network) [Secure Remote Access] - Type: A secure encrypted network that allows employees to access internal systems remotely. A VPN is a secure, encrypted network that allows employees to access internal systems remotely. It creates a secure tunnel for remote employees to connect to company resources while encrypting data to protect sensitive information from external threats. Employees can access internal databases, applications, and file servers securely from outside the office. • Function: o Provides a secure tunnel for remote employees to connect to company resources. o Encrypts data to protect sensitive information from external threats. o Allows access to internal databases, applications, and file servers from outside the office. • Description: Remote employee uses a VPN to securely access the Customer Database (CDB) from their home computer to update customer records. 3. Internet [Public Network] - Type: A global public network that enables customers and external users to access system resources. The Internet is a global public network that enables customers and external users to access system resources. It supports online transactions, customer interactions, and third-party integrations. Customers can place orders, track shipments, and receive automated notifications via a web-based portal. • Function: o Supports online transactions and customer interactions. o Enables customers to place orders and track shipments through a web-based portal. o Allows third-party integration with services such as payment gateways and logistics providers. • Description: Customer visits the company’s e-commerce website via the Internet, places an order, and receives an automated order confirmation email. 4. Direct Email Communication [External Email Network] - Type: An external communication network for exchanging emails with customers, vendors, and partners. Direct email communication is an external communication network used for exchanging emails with customers, vendors, and business partners. This network facilitates automated order confirmations, invoices, and shipping notifications while enabling direct customer service interactions. It also supports business-to-business communication with suppliers and partners. • Function: o Sends automated order confirmations, invoices, and shipping notifications to customers. o Enables direct customer service interactions. o Facilitates business-to-business communication with suppliers and partners. • Description: After a successful payment, the Automated Order Processing System (AOPS) sends an email confirmation to the customer with their order details and estimated delivery date. 5.0 Internal View Diagram Create a diagram that visually represents the internal workings of the Information System. Use the provided drawing as a base and modify it to include all relevant internal components. Ensure that your diagram: • Accurately reflects the internal description from Part 4, including information processors, information stores, and communication networks. • Clearly labels each component, showing how data flows within the system. • Maintains consistency with your written explanation, ensuring that all essential elements are visually represented. Once you have edited the diagram, review it carefully to confirm that it aligns with your written description of the internal system and effectively illustrates its key components and interactions. Figure 2 - Internal View of the Information System
ACCT5907 Skill 1: Filter and identify relevant information that is likely to move the price of the company’s stock. (1) What one information provided by the Company during its Investor Presentation could be considered materially good news to investors? Give your reason. Note that your answer has to be material in the opinion of the marker, i.e. it cannot be nominally good but insignificant news. (1.5 mark) (2) What one (1) information provided by the Company during its Investor Presentation could be considered bad news to investors? Give your reason. Note that your answer has to be material in the opinion of the marker, i.e. it cannot be nominally bad but insignificant news. (1.5 mark) Skill 2: Compare performance with respect to relevant benchmarks, e.g., year-on-year, sequential and expectations. (3) What is the year-on-year change in net income for the quarter? (1.5 mark) (4) What is the quarter-on-quarter change in net income for the quarter? (1.5 mark) Skill 3: Conduct analysis using the Financial Reporting and Earnings Quality (FREQ) framework: Using the Financial Reporting and Earnings Quality (FREQ) framework, analyse and identify ONE issue (only) based on the material covered in Topics 1 and 2. [Note: giving more than ONE gives the impression that you do not know the answer and are just throwing darts at the target, and will get zero marks because the explanation, inference and adjustment flows from your ONE answer and may not logically follow if you give more than ONE. If you think there is more than one FREQ, choose your best FREQ and provide the answers to it.] (5) FREQ label: principles of financial reporting/ earnings quality addressed (1.5 mark) (6) FREQ explanation: (1.5 mark). Note that both answers to (5) and (6) must be correct and consistent to earn these marks. (7) INFERENCE: how to detect & understand the problem. (1.5 mark) (8) ADJUST: if the information was available, adjust the information and calculate the figure; if the information is not available describe the steps and the information you would need to adjust the relevant figure, or to obtain the relevant information. (1.5 mark) Skill 4: Retrospective understanding and analysis (9) MARKET JUDGEMENT: (a) Did the Market interpret the information provided by the company as Good or Bad news? State your answer whether Good or Bad news, plus your evidence from the market. You may show your evidence by pasting in a chart of snapshot of some lines from an article. (1.5 mark) (b) Give your reason why the market interpreted it as such (i.e. Good or Bad news). (1.5 mark) Notes: · Where you are required to give your reasons, the reason for your answer is more important than your answer itself; your answer will be marked based on the quality of the supporting reasoning in support of your answer. · Attention to detail is important in being able to read information correctly. As such, answers that are incorrect due to lack of attention to detail will receive no flexibility in marking. · Do not worry if in typing in your answers, you change the length of this document. This was original designed for in-class hardcopy handwriting and the lines and space was to guide students on how much to write. I do not expect your answers to be very long and only expect at most 3 lines of writing for each mark to be earned. You may write in bullet-points.
EOSC 322 – Metamorphic Petrology Spring 2025 PROBLEM SET #4 – Reactions in Siliceous Carbonates DUE - Tuesday, March 11, 2025 This exercise is designed to illustrate (1) the usefulness of ternary diagrams in ‘visualizing’ metamorphic reactions and (2) that the composition of the fluid phase is an important variable in metamorphism, particularly for calcareous rocks. You are given a T-X(CO2) diagram (Figure 1) that shows a set of metamorphic reactions that occur in siliceous carbonates. All of the minerals can be plotted on a CaO-MgO-SiO2 ternary diagram, by projecting through the H2O-CO2 fluid phase (Figure 2). On Figure 1, I have illustrated the stable minerals and tie-lines (the so-called ‘phase topology’) of the highest and lowest temperature mineral assemblages. Your assignment is as follows: 1) Draw the stable mineral assemblages and tie-lines on the ternary diagrams provided (Figures 3 and 4) for each of the isobaric divariant fields labelled 1 through 12. Start from the ternary diagrams given at the lowest and highest temperatures and work towards the middle. The first sequence (1 to 7) represents the sequence of prograde metamorphic reactions expected in siliceous carbonates coexisting with H2 O-rich fluid (Figure 3). The second sequence (8 to 12) represents the prograde sequence for CO2-rich fluids (Figure 4). Please use a ruler (straight edge) to construct tie-lines in each ternary diagrams. 2) Reaction ‘F’ on the T-X(CO2) diagram is labelled with question marks. You should be able to determine the reaction by examining the ternary diagrams on either side of the reaction as deduced in question (1). What is this reaction? Write the (unbalanced) reaction as it occurs with increasing temperature in the space below: Figure 1. Temperature - X(CO2) for carbonaceous rocks. Temperature increases upward and to X(CO2) increases to the right. Figure 2. SiO2-CaO-MgO ternary phase diagram for carbonaceous rocks. Note the various co- linear phases along the coloured lines as well as the along the edges of the SCM diagram. Figure 3. Ternary phase diagrams for the assemblages and reactions in siliceous carbonates for H2O-rich fluids Figure 4. Ternary phase diagrams for the assemblages and reactions in siliceous carbonates for CO2-rich fluids
1 Digital Communications 4/M: Forward Error Correction 1.1 Introduction This laboratory project will introduce you to some issues that occur in digital communication channels. In particular we will study Forward Error Correction (FEC)as atechnique to overcome the detrimental efects of noise on the communication channel. In your previous laboratories on this course you will have studied modulation formats. Here we will circumvent some of the low-level coding by using the komm Python library https://pypi.org/project/komm/ to provide the appropriate functionality. If you are using your own computer, make sure the Python libraries scipy, numpy, matplotlib and pillow as well as komm version 0.16.2 or later are installed, and your python version is 3.10 or later. It is recommended that you use a suitable IDE for your project, such as Spyder. Eachprojectwillbescheduledoveratwoweekperiod, withinwhichtherewillbe2scheduled consultation sessions where you will be able to ask teaching staf for guidance. The project should be written up as a short report describing what you’ve done and the results you have taken along with any conclusions that you draw. Include your python code(s) in the appendices. Make sure your name and student ID number is on the report. The report should be uploaded to the Moodle assignment by the stated deadline, either using Moodle’s inbuilt html editor, or as a single PDF file. 1.2 Block Coding: BCH codes Block codes work on fixed-size blocks (packets) of bits or symbols of predetermined size. Practical block codes can generally be hard-decoded in polynomial time to their block length. Bose-Chaudhuri-Hocquenghem (BCH) codes form. a class of cyclic error-correcting codes that are constructed using polynomials over a finite field (also called Galois field). One of the key features of BCH codes is that during code design, there is a precise control over the number of symbol errors correctable by the code. In particular, it is possible to design binary BCH codes that can correct multiple bit errors. Another advantage of BCH codes is the ease with which they can be decoded, namely, via an algebraic method known as syndrome decoding. This simplifies the design of the decoder for these codes, using small low-power electronic hardware. BCH codes are used in applications such as satellite communications, compact disc players, DVDs, disk drives, solid-state drives and QR codes. Table 1.2 lists indexes for a sample of some short primitive narrow-sense BCH binary codes which can correct up to t bit errors, and which will be used in this laboratory project. The parameters for the code require a code word length n = 2μ - 1 and number of added parity bits (n - k) ≤ μt . The parameter δ = 2t + 1 is known as the Bose distance (essentially, dmin). The setup to use the BCH code class in python is on providing suitable values for μ and δ: Table 1.2: indexes for a sample of some short primitive narrow-sense BCH binary codes import komm code = komm.BCHCode(mu=3, delta=3) n,k = code .length, code.dimension #decoder = komm.BerlekampDecoder(code) #decoder = komm.ExhaustiveSearchDecoder(code, input_type="hard") #decoder = komm.SyndromeTableDecoder(code) 1.2.1 (7,4) code alphabet The (n =7,k =4) BCH code (top line of table 1.2) is equivalent to the Hamming (7,4) code. First, generate the alphabet of valid 7-bit codewords by examining code.codewords(). Confirm that cyclic permutations of valid 7-bit codewords, and bitwise XOR of two valid 7-bit codewords result in other valid 7-bit codewords. The corresponding generator polynomial can be obtained from code.generator_polynomial 1.2.2 Forward error correction using BCH codes A number of 8 bit depth grayscale images of various sizes have been provided for you to use in this laboratory project. You may also consider the use of the numpy .random library to create random binary streams for testing purposes. As the runtime depends on the size of the data, you should generally use the smallest data set first, although in terms of accuracy it maybe advisable to use the larger datasets where the smallest images result in a small number of bit errors, say < 25, to improve your accuracy in determining the bit-error-rate. In this laboratory project, use quadrature phase shift keying (QPSK) with unit average power per symbol. Begin with your python code from the previous laboratory for noisy channel simulation. There is a choice of 3 possible decoders in the komm library as shown above. Uncomment the one you wish to use; I recommend the ExhaustiveSearchDecoder as I found it to be generally faster for this set of BCH codes. Having set up the code as shown above, coding and decoding are done with: coded_word = code.encode(message_word) ... message_word = decoder(coded_word) where the message_word is a fixed length k bits and coded_word is a fixed length n bits. You will therefore need a program loop to code (and decode) your entire binary data, and, if necessary, add dummy bits to ensure the input data is a whole number times k bits. You will also need to ensure your encoded data stream corresponds to a whole number of modulation format symbols. Plot ber (logarithmic axis) vs snr (in dB) over a suitable range of signal-to-noise (e.g. -3 to 9dB) for the BCH codes listed in table 1.2. snr=10**(snr_db/10.) awgn = komm.AWGNChannel(snr=snr, signal_power=1.0) Compare your results with your measurements/theory for the bit error ratio with QPSK without error correction, as you investigated in the previous laboratory project. 1.3 Convolutional Coding Convolutional codes work on bit or symbol streams of arbitrary length. They are most often soft decoded with the Viterbi algorithm, though other algorithms are sometimes used. Viterbi decoding allows asymptotically optimal decoding efficiency with increasing constraint length of the convolutional code, but at the expense of exponentially increasing complexity. The komm library provides functions for encoding and decoding convolutional codes. There area number of options. In particular the best convolutional code performance is normally with soft-decision decoding on the real values returned from the demodulator based on the euclidean distance from the symbol, thus providing a confidence level to the Viterbi decoder. Figure 1.3: A simple rate convolutional encoder. The constraint length L is the number of shift registers, including the input. Taking the simple rate convolutional encoder shown schematically in figure 1.3 as an example, this has a constraint length of 3. The code generator represents the connections to the modulo 2 adders. In this case the code generator is where the right expression is the equivalent octal representation. import komm code = komm.ConvolutionalCode(feedforward_polynomials=[[0o7, 0o5]]) tblen = 18 encoder = komm.ConvolutionalStreamEncoder(code) decoder = komm.ViterbiStreamDecoder(code, traceback_length=tblen, input_type="hard") # change for soft decoding ... rx_enc = psk.demodulate_hard(rx_data) # for hard decoding rx_enc = psk.demodulate_soft(rx_data, snr=snr) # for soft decoding tblen is a positive integer scalar that specifies the traceback depth in the Viterbi algorithm. When used in stream (continuous) form, the decoder has a delay (latency) equal to tblen for a single input stream code. Therefore you should append tblen zeros to the input binary stream, and discard the first tblen bits of the output stream. Typical values for atraceback depth tblen are about five or six times the constraint length L. Remember, you will also need to ensure your encoded data stream corresponds to a whole number of modulation format symbols. With "hard" decoding, rx_enc should contain strict binary data. However with "soft" decoding, rx_enc should contain real values. Again, take your python code from the previous laboratory for noisy channel simulation and adapt it to use convolutional coding. Plot ber (logarithmic axis) vs snr (in dB) over a suitable range of signal-to-noise for both "hard" and "soft" decoding. Compare your results with your measurements/theory for the bit error ratio with QPSK without error correction from the previous laboratory project. The Jet Propulsion Laboratory developed constraint length 7 convolutional codes for the Voyager missions. The rate code uses feedforward_polynomials=[[0o155, 0o117]] and the rate code uses feedforward_polynomials=[[0o155, 0o117, 0o127]]. Again, plot ber (logarithmic axis) vs snr (in dB) over a suitable range of signal-to-noise for each of these using "soft" decoding. 1.4 Comparing Codes Compare the various error-correction techniques (simple parity check and ARQs, BCH block codes, Convolutional Code with hard/soft decision) you examined for the configurations given in the lab descriptor. Which of these provides the best error correcting for the data provided in cases of values for snr =3dB using QPSK? What is the code rate in each optimal case? 1.5 Concatenated Codes - Mandatory for ENG5336/ Optional for ENG4052 Many implementations of FEC can tolerate even lower signal-to-noise ratio by concatenating two diferent FEC code methods. Now adapt your code to use a convolutional code as an inner code, modulating as QPSK and passing the result through an AWGN channel, demodulate and decode using the soft-decision Viterbi method. Now use this as an efective transmission channel and apply a BCH code as the outer code. What is the lowest ber you can obtain with the codes listed here for the case where the signal power is equal to the noise, i.e. snr = 0dB? 1.6 Documentation Python 3 https://docs.python.org/3/ komm https://komm.readthedocs.io/en/latest/ numpy and scipy https://docs.scipy.org/doc/ matplotlib https://matplotlib.org/contents.html pillow https://pillow.readthedocs.io spyder https://docs.spyder-ide.org/ Getting the python libraries If you are using your own computer, make sure the Python libraries scipy, numpy, matplotlib and pillow are installed. These libraries are installed by default with the Anaconda python distribution. It is recommended that you use a suitable IDE for your project, such as Spyder. The komm Python library is available from PyPI repository and, if required, can be installed using pip. From a python-activated command line (such as Anaconda prompt), use the following command to install in your user App config pip install komm --user
EF308 - Econometrics and Forecasting Module Assignment This assessment comprises 100% of your assessment for the Econometrics and Forecasting module. It consists of two parts: - Group work equal to 40% of the module grade - Individual report equal to 60% of the module grade For this assignment you are asked to imagine a new financial advisory product aimed at students and produce the data analytics suitable for supporting the launch of the product. Deadlines: Group Work: due April 11th, 7pm. Individual Report: due April 11th, 7pm. The product: Your proposed product can be anything at all that is new, but ‘new’ doesn’t mean that it is completely new, it might just be an iteration or improvement of an existing service that is already offered. You won’t really be judged explicitly on the quality of the idea, but it does speak to the overall interest of your project. Illustrate your proposed product with relevant screenshots and visuals, as you see fit, in order to build a story here. Build a launch story about the product - essentially, breathe a bit of life into your proposed product so that it feels real. The data: You could either mock up data using Generative AI or use kaggle.com to identify a suitable pre-existing dataset. The dataset doesn’t need to be perfectly aligned, as usually that isn’t possible. But more that it is reasonably aligned to your topic. For example, if you propose an app to allow students to save for holidays, you might use a holiday booking dataset. If you propose to sell credit cards to students, you might use a credit card default-rate dataset. Don’t worry if the dataset doesn’t perfectly match - if it is not too close, your presentation might simply say something along the lines of ‘while we are still trying to identify useful data, here is an analysis of some related data …’. Thats all thats needed. The data task: The data task is the core learning and assessment point of the work. Broadly speaking you are asked to use a combination of skills learned across the classes. This includes: data cleaning (what we do in the first two classes, and bits of all the other classes); regression analysis (building a model that explains how the data works); and, perhaps, forecasting (incorporating some aspect of forecasting, or looking into the future in your analysis). What to submit: 1. For the group project (40%): Submit a ten-minute video pitching your product idea. An approximate structure for this might look like: about 5 slides outlining the problem you are solving, how your product idea solves it, and what data investigations you carried out to develop the product idea. You might also want to include a working Streamlit file of your product, in order to ‘demo’ it. 2. For the individual assignment (60%): A well-formatted report on the proposed investment of 1,500 words length, along with a link to a Google Colab coding file. It is acceptable that there is shared content between the group members - especially in terms of coding and the overall idea - but there should be an identifiable element of the content that is your own work. The report should look professional: give good attention to visuals etc and look at professional reports e.g. from consulting houses like McKinsey to get an idea on how to structure. The coding file simply needs to outline the steps you took to analyse the data from start to finish. It doesn’t need a story or text, I can follow the format. The same coding file can be submitted by all group members, if you wish. Use of ChatGPT and similar models: Feel free to use any amount of Generative AI assistance as you wish.
FIT5147 Data Exploration and Visualisation Semester 1, 2025 Data Exploration Project Part 1: Data Exploration Project Proposal Part 2: Data Exploration Project Report You are asked to explore and analyse data about a topic of your choice. It is an individual assignment and worth 35% of your total mark for FIT5147. Part 1 Project Proposal contributes 2% and Part 2 Project Report contributes 33%. Relevant Learning Outcome ● Perform. exploratory data analysis using a range of visualisation tools. Overview of the Assessment Tasks 1. Identify the project topic, some related questions that you want to address, and the data source(s) that you will be using to answer those questions. 2. Submit your Project Proposal (Part 1) in the Assessments section of Moodle in Week 3. 3. Discuss with your tutor in your Week 3 Applied Session (after the submission in Moodle) and wait for approval from your tutor before proceeding further. Do not seek approval from the lecturer. 4. Collect data and wrangle it into a suitable form for analysis using whatever tools you like (e.g., Excel, R, Python). 5. Explore the data visually to answer your original questions and/or to find other interesting insights using Tableau or R. The exploration must rely on visualisations and visual analysis, but can analytical methods or statistical analysis where appropriate. 6. Write a report detailing your findings and the methods that you used. This must include properly captioned figures demonstrating your visual analysis (i.e. your visualisations must be referred to correctly in your report). 7. The Project Report (Part 2) is due in Week 7. Read the rest of this document before deciding on your project topic, as the proposal is for the entire Data Exploration Project and Data Visualisation Project, which is the second major assignment of this unit. See the end of this document for an example proposal and potential data sources to get started. Be careful not to copy this proposal; it is an example proposal, not template text. Choosing a Topic and Data The choice of topic, data, and the questions you seek to answer should allow for interesting and detailed analysis in the Data Exploration Project (DEP) and the subsequent Data Visualisation Project (DVP, due at the end of semester), which involves presenting the findings from your DEP in a specifically designed narrative interactive visualisation format. Good questions are general and not linked to specific parts of the data, allowing for more open-ended and exploratory analysis. For instance, asking “Where is the safest part of the network?” is a good question that lets you explore various interpretations of how to link terms like “where” and “safest” to the data about a network, whereas “Which region has the lowest value of number-of-deaths?” is not a very good question as it is very specific to the data, is easy to answer with one visualisation and therefore limits the exploration and visualisation possibilities. It is strongly recommended that you avoid questions that are: ● too easy to answer (e.g., what is the correlation between x and y, what is the average value of z variable, what are the top/bottom N values), or ● too difficult to answer (the work would take longer than the time available in the unit), or ● not relevant to the unit (e.g., training a machine learning model), or ● are not possible to answer from the available data. Proposals with such questions will be rejected. If you are in doubt, talk to teaching staff during face-to-face teaching times or ask for confirmation on Ed. How do you know if you have appropriate data? This depends on your topic and questions. You should ensure your data is big enough, i.e., has enough breadth and depth to invite interesting exploration. Combining data from different data sources is an ideal way to help add to the originality of the topic. To encourage different visualisation techniques your data will likely have a mixture of different data types. Time series (whether this be aggregated or detailed, such as months and years, or milliseconds) may be useful for your topic, and spatial, relational or text based data add useful complexity. If in doubt, talk to teaching staff during face-to-face teaching times or in a consultation before the due date. The chosen topic should be topical and some of the data should be recently collected, ideally from the last two or three years. The data must be accessible to the teaching staff, so the use of open data is encouraged (see the list of suggested data sources at the end of this document). Use of closed or proprietary data is allowed as long as explicit permission for use in this assignment is granted by the original authors or copyright holders. If you have closed data, you must still make it available to your teaching staff to access, i.e., via a shared Google Drive. Avoid common topics. Common topics including COVID-19, Netflix, AirBnB, car accidents, crime, house sales, car sales, world cup soccer, or electric vehicle sales should be avoided. Topics similar to the proposal example at the end of this document, i.e., traffic accidents and poor weather, must also be avoided. If you do have personal motivation for any of these mentioned common topics, you will need to propose a completely new angle to exploring the theme through novel questions with a mixture of new data sources. It is highly recommended to discuss your intentions with the tutor of your Applied Session prior to the proposal submission to avoid immediate rejection of the proposal. Part 1: Project Proposal (2%) Write a one-page PDF document consisting of the following sections: 1. Project Title A descriptive title for your project. 2. Topic Introduction One paragraph introducing the topic. This should include why it is a topical subject (for example, has it been in the news recently), and who might benefit from the insights you seek from your questions. 3. Motivation One paragraph describing why you personally are motivated to study this topic. 4. Questions Three questions you wish to answer using the data. 5. Data source(s) Briefly describe the data source(s) you will use. This should include: URLs of data source(s) and a description for each source: what is the data about, what is the size of the data (e.g., number of rows, number of columns), the type of data (e.g., tabular, spatial, relational, or textual), the type of attributes (e.g., categorical, ordinal, etc.) and the temporal intervals and period (e.g., monthly between 2019 and 2023). 6. References The bibliographical details of any references you have cited in the previous sections. Include your full name, student ID, tutor names, and Applied Session class number. This can be in the document header or footer. There should be no cover page. Part 2: Data Exploration (33%) The report should have the following structure: 1. Introduction Topic detail, problem description, questions, and brief motivation. 2. Data Wrangling and Checking Description of the data and data sources with URLs of the data, the steps in data wrangling (including data cleaning and data transformations) and tools that you used. The data checking that you performed, errors that you found, your method and justification for how you corrected errors, and the tools that you used. A comprehensive checking process is expected to justify data correctness, even if the data set is believed to be clean. 3. Data Exploration Description of the data exploration process with details of the visualisations (including figures and descriptions of findings) and statistical tests (if applicable) you used, what you discovered, and what tools you used. 4. Conclusion Summary of what you learned from the data and how your data exploration process answered (or didn’t answer) your original questions. 5. Reflection Brief description of what lessons you learnt in this project and what you might have done differently in hindsight. 6. Bibliography Appropriate references and bibliography (this includes acknowledgements to online references or sources that have influenced your exploration) using either the APA or IEEE referencing system. Include your full name, student ID, tutor names, and Applied Session class number. This may be on a cover page, or in the header or footer of the first page. The written report should be not longer than 10 pages for all sections mentioned above, excluding cover page, table of contents and appendix. Your written report will be the sole basis for judging the quality of the data checking, data wrangling, data exploration, as well as the degree of difficulty. Thus, include sufficient information in the report. It should, for instance, contain images of visualisations used for exploration and the results of any statistical analysis. You should include any analysis that you carry out even if it is incomplete or inconclusive as it demonstrates that you have thoroughly explored the data set. If you wish to provide additional material, an Appendix of up to 5 pages may be added at the end of the document. However, the Appendix will not be marked. Therefore, you should only use it to provide supplementary material that is not essential to the report or the reader's understanding. Be sure to clearly title this section as Appendix.
Big Data (H/M) Assessed Exercise Task Sheet2024/25 – Individual – v1 07/02/25SummaryThe goal of this exercise is to familiarize yourselves with the design, implementation and performance testing of Big Data analysis tasks using Apache Spark. You will be required to design and implement a single reasonably complex Spark application. You will then test the running of this application on a large dataset. You will be evaluated based on code functionality (does it produce the expected outcome), code quality (is it well designed and follows good software engineering practices) and efficiency (how fast is it and does it use resources efficiently). We provide you with an initial project template similar to the tutorials that you have been using in the labs. This will contain some classes that you can use in your solution (so you don’t need to implement them yourself). Task DescriptionYou are to develop a financial recommendation platform that can find profitable financial assets and display them as a top-5 ranking for an investor, given pricing information and asset fundamental data. This is a batch analytics task to be implemented in Apache Spark as a pipeline of data transformations and actions. You will be provided a dataset that contains both pricing data and asset metadata up-to a set date, where this is the date that you are going to produce recommendationsfor, using information on and before that date. The pipeline you need to implement will involve a series of stages:1. First, the pricing data and asset metadata needs to be loaded in as Resilient Distributed Datasets (RDDs), this is provided for you in the project template.2. Second, you will need to transform the daily pricing data into a series of financial ‘Technical Indicators’ that numerically describe how well an asset performed in the past. Classes for calculating these are provided, but you will need to work out how to integrate these into your pipeline of Spark transformations.3. Third, after you have calculated these technical indicators, you will need to use them to filter the assets. You should filter out any assets that have a Volatility score greater than or equal to4.4. Fourth, you will need to further use the provided asset metadata to further filter the asset set to remove assets with a Price-to-Earnings Ratio greater than or equal to 25.5. Finally, you need to rank the remaining assets for the investor based on asset Returns (Return on Investment) over the most recent 5 days, returning the top 5 assets.What you need to collect at the driver program is an AssetRanking class, which contains an array of 5 Asset objects (i.e. the final ranking), both these classes are provided in the template. All computation should be performed in a distributed manner using Spark transformations and actions. You may need to collect intermediate data at the driver program between stages of your pipeline, but this should only be a small number of records (under 5k), and you should not need to further process the data at the driver.For this exercise, you should implement your transformation functions as Java classes following object-orientated design principles, as illustrated in the tutorials. You can use both the Java core API (those based on JavaRDD) and the Java SQL API (those based on Dataset), but you should avoidsignificant use of lambda expressions (as they make your code less interpretable). You should comment the logic for your code in English; have a look at the tutorial code bases for what this might look like.Template ClassesYou will be provided with a Java template project like the tutorials. The template project provides implementations of the following code to help you:• AssessedExercise: This is the main class, you should call all of your transformations and actions within the rankInvestmentsfunction of this class.• Asset: This class represents a single asset, it is used by AssetRanking, which is the object your program is to return.• AssetFeatures: This class holds the returns, volatility and p/e ratio for an asset. This class is used by Asset.• AssetMetadata: This object contains descriptive metadata about an asset. You will need the name, industry, sector and price-to-earnings ratio from this in your solution.• AssetRanking: An array of Asset, your solution should return one of these with 5 assets.• StockPrice: This class represents the price data for an asset on a particular day. You need the closing price from these to calculate technical indicators.• Returns: This is a class for calculating Return on Investment. The calculate function takes in a number of days to calculate over and a list of close prices sorted by time. numDays should be 5 in your solution.• Volatility: This is a class for calculating asset volatility over a period of time. It takes in a list of close prices sorted by time. For your solution you need to provide it the close prices for the prior year, which is 251 days (we only count trading days since markets are not open on weekends).• NullPriceFilter: This is a simple filtering class that is run on price loading to remove days where close prices are missing.• PriceReaderMap: A simple map that is used to convert from a Spark SQL Row to a StockPrice.• AssetMetadataPairing: This is a Spark SQL Row map that converts the raw asset metadata to a Tuple2 object. The string in this case is the stock ticker/symbol for the asset.• MathUtils: This is a utility class that includes some useful math operations. You don’t need to directly use this, it is used by the Returns and Volatility classes.• TimeUtil: This is a custom utility class I wrote to make parsing dates easier. In the above requirements, you will note that for calculating returns and volatility you will need to filter the input pricing data to a window of time, but the StockPrice object reports the date in the form of fields. This class allows you to convert from to a Java Instant object, which allows for easier time-based operations.IDE SetupYour integrated development environment (e.g. Eclipse or IntelliJ) should be the same as for the tutorials. However, as this is using the latest version of Apache Spark (4.0.0-preview2) you will need Java JDK 21.0.2, which you can download from https://jdk.java.net/archive/DatasetThe dataset that you will be using for this exercise is a collection of financial assets from the US stock market spanning the period of 1999 to mid-2020. This is split over two data files:• all_prices-noHead.csv: This file contains daily pricing data for around 15,700 financial assets over multiple years. The file contains 24,197,442 price points, and is around 2.4GB in size.• stock_data.json: This is a json file that contains metadata collected about various financial assets, such as their name, industry and price-to-earnings ratio. Not all fields are available for all assets. If you need a field for your solution and an asset is missing that field you should filter that asset out.When and What to hand inThe deadline for submission is March 3rd by 4:30pm. You should submit via Moodle:• A copy of your code-base as a single zip file. You should only include the ‘src’ directory in your submission.How this exercise will be markedFollowing timely submission on Moodle, the exercise will be given a numerical mark between 0 (no submission) and 25 (perfect in every way). The numerical marks will then be converted to a band (A5, A4, etc.). The marking scheme is as follows:• 5 marks are awarded for producing the correct output through computation• 5 marks are awarded for computational efficiency (benchmarked against my solution)• The remaining 15 marks are awarded for the implementation qualityo 10 marks are awarded for correct implementation of the classeso 2 marks are awarded for code documentation (comments).o 3 marks are awarded for design that will make yoursolution scale well with more dataFrequently Asked Questions…• Is my solution fast enough? This is a difficult question to answer, as I have a solution that I have implemented, but how that compares to your implementation is impossible to say without running a test on like-for-like hardware. What I can say is that my solution completed in 31 seconds running on an I7-12700, where data was reading from an SSD and the number of threads that the executor was provided with was four (local[4])• What are you looking for in terms of efficiency?: We are looking at the statistics from theSpark executor dashboard, here is mine for reference:• How do I know if I got the right answer? The short answer is you don’t, and I can’t give you the full output, as that is marked, however I can say that the rank one asset my solutionproduces is TOP Ships Inc (TOPS).• Can I use : No, you have to write in Java to enable fair marking of the exercise.• Can I use an AI assistant to help?: Also no, see https://www.gla.ac.uk/myglasgow/sld/ai/students/• Can I ask for help in the labs?: Yes! That is what we are there for, we can’t tell you the solution, but we can provide hints and guidance.Big Data (H/M) Assessed Exercise Task Sheet2024/25 – Individual – v1 07/02/25SummaryThe goal of this exercise is to familiarize yourselves with the design, implementation and performance testing of Big Data analysis tasks using Apache Spark. You will be required to design and implement a single reasonably complex Spark application. You will then test the running of this application on a large dataset. You will be evaluated based on code functionality (does it produce the expected outcome), code quality (is it well designed and follows good software engineering practices) and efficiency (how fast is it and does it use resources efficiently). We provide you with an initial project template similar to the tutorials that you have been using in the labs. This will contain some classes that you can use in your solution (so you don’t need to implement them yourself). Task DescriptionYou are to develop a financial recommendation platform that can find profitable financial assets and display them as a top-5 ranking for an investor, given pricing information and asset fundamental data. This is a batch analytics task to be implemented in Apache Spark as a pipeline of data transformations and actions. You will be provided a dataset that contains both pricing data and asset metadata up-to a set date, where this is the date that you are going to produce recommendationsfor, using information on and before that date. The pipeline you need to implement will involve a series of stages:1. First, the pricing data and asset metadata needs to be loaded in as Resilient Distributed Datasets (RDDs), this is provided for you in the project template.2. Second, you will need to transform the daily pricing data into a series of financial ‘Technical Indicators’ that numerically describe how well an asset performed in the past. Classes for calculating these are provided, but you will need to work out how to integrate these into your pipeline of Spark transformations.3. Third, after you have calculated these technical indicators, you will need to use them to filter the assets. You should filter out any assets that have a Volatility score greater than or equal to4.4. Fourth, you will need to further use the provided asset metadata to further filter the asset set to remove assets with a Price-to-Earnings Ratio greater than or equal to 25.5. Finally, you need to rank the remaining assets for the investor based on asset Returns (Return on Investment) over the most recent 5 days, returning the top 5 assets.What you need to collect at the driver program is an AssetRanking class, which contains an array of 5 Asset objects (i.e. the final ranking), both these classes are provided in the template. All computation should be performed in a distributed manner using Spark transformations and actions. You may need to collect intermediate data at the driver program between stages of your pipeline, but this should only be a small number of records (under 5k), and you should not need to further process the data at the driver.For this exercise, you should implement your transformation functions as Java classes following object-orientated design principles, as illustrated in the tutorials. You can use both the Java core API (those based on JavaRDD) and the Java SQL API (those based on Dataset), but you should avoidsignificant use of lambda expressions (as they make your code less interpretable). You should comment the logic for your code in English; have a look at the tutorial code bases for what this might look like.Template ClassesYou will be provided with a Java template project like the tutorials. The template project provides implementations of the following code to help you:• AssessedExercise: This is the main class, you should call all of your transformations and actions within the rankInvestmentsfunction of this class.• Asset: This class represents a single asset, it is used by AssetRanking, which is the object your program is to return.• AssetFeatures: This class holds the returns, volatility and p/e ratio for an asset. This class is used by Asset.• AssetMetadata: This object contains descriptive metadata about an asset. You will need the name, industry, sector and price-to-earnings ratio from this in your solution.• AssetRanking: An array of Asset, your solution should return one of these with 5 assets.• StockPrice: This class represents the price data for an asset on a particular day. You need the closing price from these to calculate technical indicators.• Returns: This is a class for calculating Return on Investment. The calculate function takes in a number of days to calculate over and a list of close prices sorted by time. numDays should be 5 in your solution.• Volatility: This is a class for calculating asset volatility over a period of time. It takes in a list of close prices sorted by time. For your solution you need to provide it the close prices for the prior year, which is 251 days (we only count trading days since markets are not open on weekends).• NullPriceFilter: This is a simple filtering class that is run on price loading to remove days where close prices are missing.• PriceReaderMap: A simple map that is used to convert from a Spark SQL Row to a StockPrice.• AssetMetadataPairing: This is a Spark SQL Row map that converts the raw asset metadata to a Tuple2 object. The string in this case is the stock ticker/symbol for the asset.• MathUtils: This is a utility class that includes some useful math operations. You don’t need to directly use this, it is used by the Returns and Volatility classes.• TimeUtil: This is a custom utility class I wrote to make parsing dates easier. In the above requirements, you will note that for calculating returns and volatility you will need to filter the input pricing data to a window of time, but the StockPrice object reports the date in the form of fields. This class allows you to convert from to a Java Instant object, which allows for easier time-based operations.IDE SetupYour integrated development environment (e.g. Eclipse or IntelliJ) should be the same as for the tutorials. However, as this is using the latest version of Apache Spark (4.0.0-preview2) you will need Java JDK 21.0.2, which you can download from https://jdk.java.net/archive/DatasetThe dataset that you will be using for this exercise is a collection of financial assets from the US stock market spanning the period of 1999 to mid-2020. This is split over two data files:• all_prices-noHead.csv: This file contains daily pricing data for around 15,700 financial assets over multiple years. The file contains 24,197,442 price points, and is around 2.4GB in size.• stock_data.json: This is a json file that contains metadata collected about various financial assets, such as their name, industry and price-to-earnings ratio. Not all fields are available for all assets. If you need a field for your solution and an asset is missing that field you should filter that asset out.When and What to hand inThe deadline for submission is March 3rd by 4:30pm. You should submit via Moodle:• A copy of your code-base as a single zip file. You should only include the ‘src’ directory in your submission.How this exercise will be markedFollowing timely submission on Moodle, the exercise will be given a numerical mark between 0 (no submission) and 25 (perfect in every way). The numerical marks will then be converted to a band (A5, A4, etc.). The marking scheme is as follows:• 5 marks are awarded for producing the correct output through computation• 5 marks are awarded for computational efficiency (benchmarked against my solution)• The remaining 15 marks are awarded for the implementation qualityo 10 marks are awarded for correct implementation of the classeso 2 marks are awarded for code documentation (comments).o 3 marks are awarded for design that will make yoursolution scale well with more dataFrequently Asked Questions…• Is my solution fast enough? This is a difficult question to answer, as I have a solution that I have implemented, but how that compares to your implementation is impossible to say without running a test on like-for-like hardware. What I can say is that my solution completed in 31 seconds running on an I7-12700, where data was reading from an SSD and the number of threads that the executor was provided with was four (local[4])• What are you looking for in terms of efficiency?: We are looking at the statistics from theSpark executor dashboard, here is mine for reference:• How do I know if I got the right answer? The short answer is you don’t, and I can’t give you the full output, as that is marked, however I can say that the rank one asset my solutionproduces is TOP Ships Inc (TOPS).• Can I use : No, you have to write in Java to enable fair marking of the exercise.• Can I use an AI assistant to help?: Also no, see https://www.gla.ac.uk/myglasgow/sld/ai/students/• Can I ask for help in the labs?: Yes! That is what we are there for, we can’t tell you the solution, but we can provide hints and guidance.Big Data (H/M) Assessed Exercise Task Sheet2024/25 – Individual – v1 07/02/25SummaryThe goal of this exercise is to familiarize yourselves with the design, implementation and performance testing of Big Data analysis tasks using Apache Spark. You will be required to design and implement a single reasonably complex Spark application. You will then test the running of this application on a large dataset. You will be evaluated based on code functionality (does it produce the expected outcome), code quality (is it well designed and follows good software engineering practices) and efficiency (how fast is it and does it use resources efficiently). We provide you with an initial project template similar to the tutorials that you have been using in the labs. This will contain some classes that you can use in your solution (so you don’t need to implement them yourself). Task DescriptionYou are to develop a financial recommendation platform that can find profitable financial assets and display them as a top-5 ranking for an investor, given pricing information and asset fundamental data. This is a batch analytics task to be implemented in Apache Spark as a pipeline of data transformations and actions. You will be provided a dataset that contains both pricing data and asset metadata up-to a set date, where this is the date that you are going to produce recommendationsfor, using information on and before that date. The pipeline you need to implement will involve a series of stages:1. First, the pricing data and asset metadata needs to be loaded in as Resilient Distributed Datasets (RDDs), this is provided for you in the project template.2. Second, you will need to transform the daily pricing data into a series of financial ‘Technical Indicators’ that numerically describe how well an asset performed in the past. Classes for calculating these are provided, but you will need to work out how to integrate these into your pipeline of Spark transformations.3. Third, after you have calculated these technical indicators, you will need to use them to filter the assets. You should filter out any assets that have a Volatility score greater than or equal to4.4. Fourth, you will need to further use the provided asset metadata to further filter the asset set to remove assets with a Price-to-Earnings Ratio greater than or equal to 25.5. Finally, you need to rank the remaining assets for the investor based on asset Returns (Return on Investment) over the most recent 5 days, returning the top 5 assets.What you need to collect at the driver program is an AssetRanking class, which contains an array of 5 Asset objects (i.e. the final ranking), both these classes are provided in the template. All computation should be performed in a distributed manner using Spark transformations and actions. You may need to collect intermediate data at the driver program between stages of your pipeline, but this should only be a small number of records (under 5k), and you should not need to further process the data at the driver.For this exercise, you should implement your transformation functions as Java classes following object-orientated design principles, as illustrated in the tutorials. You can use both the Java core API (those based on JavaRDD) and the Java SQL API (those based on Dataset), but you should avoidsignificant use of lambda expressions (as they make your code less interpretable). You should comment the logic for your code in English; have a look at the tutorial code bases for what this might look like.Template ClassesYou will be provided with a Java template project like the tutorials. The template project provides implementations of the following code to help you:• AssessedExercise: This is the main class, you should call all of your transformations and actions within the rankInvestmentsfunction of this class.• Asset: This class represents a single asset, it is used by AssetRanking, which is the object your program is to return.• AssetFeatures: This class holds the returns, volatility and p/e ratio for an asset. This class is used by Asset.• AssetMetadata: This object contains descriptive metadata about an asset. You will need the name, industry, sector and price-to-earnings ratio from this in your solution.• AssetRanking: An array of Asset, your solution should return one of these with 5 assets.• StockPrice: This class represents the price data for an asset on a particular day. You need the closing price from these to calculate technical indicators.• Returns: This is a class for calculating Return on Investment. The calculate function takes in a number of days to calculate over and a list of close prices sorted by time. numDays should be 5 in your solution.• Volatility: This is a class for calculating asset volatility over a period of time. It takes in a list of close prices sorted by time. For your solution you need to provide it the close prices for the prior year, which is 251 days (we only count trading days since markets are not open on weekends).• NullPriceFilter: This is a simple filtering class that is run on price loading to remove days where close prices are missing.• PriceReaderMap: A simple map that is used to convert from a Spark SQL Row to a StockPrice.• AssetMetadataPairing: This is a Spark SQL Row map that converts the raw asset metadata to a Tuple2 object. The string in this case is the stock ticker/symbol for the asset.• MathUtils: This is a utility class that includes some useful math operations. You don’t need to directly use this, it is used by the Returns and Volatility classes.• TimeUtil: This is a custom utility class I wrote to make parsing dates easier. In the above requirements, you will note that for calculating returns and volatility you will need to filter the input pricing data to a window of time, but the StockPrice object reports the date in the form of fields. This class allows you to convert from to a Java Instant object, which allows for easier time-based operations.IDE SetupYour integrated development environment (e.g. Eclipse or IntelliJ) should be the same as for the tutorials. However, as this is using the latest version of Apache Spark (4.0.0-preview2) you will need Java JDK 21.0.2, which you can download from https://jdk.java.net/archive/DatasetThe dataset that you will be using for this exercise is a collection of financial assets from the US stock market spanning the period of 1999 to mid-2020. This is split over two data files:• all_prices-noHead.csv: This file contains daily pricing data for around 15,700 financial assets over multiple years. The file contains 24,197,442 price points, and is around 2.4GB in size.• stock_data.json: This is a json file that contains metadata collected about various financial assets, such as their name, industry and price-to-earnings ratio. Not all fields are available for all assets. If you need a field for your solution and an asset is missing that field you should filter that asset out.When and What to hand inThe deadline for submission is March 3rd by 4:30pm. You should submit via Moodle:• A copy of your code-base as a single zip file. You should only include the ‘src’ directory in your submission.How this exercise will be markedFollowing timely submission on Moodle, the exercise will be given a numerical mark between 0 (no submission) and 25 (perfect in every way). The numerical marks will then be converted to a band (A5, A4, etc.). The marking scheme is as follows:• 5 marks are awarded for producing the correct output through computation• 5 marks are awarded for computational efficiency (benchmarked against my solution)• The remaining 15 marks are awarded for the implementation qualityo 10 marks are awarded for correct implementation of the classeso 2 marks are awarded for code documentation (comments).o 3 marks are awarded for design that will make yoursolution scale well with more dataFrequently Asked Questions…• Is my solution fast enough? This is a difficult question to answer, as I have a solution that I have implemented, but how that compares to your implementation is impossible to say without running a test on like-for-like hardware. What I can say is that my solution completed in 31 seconds running on an I7-12700, where data was reading from an SSD and the number of threads that the executor was provided with was four (local[4])• What are you looking for in terms of efficiency?: We are looking at the statistics from theSpark executor dashboard, here is mine for reference:• How do I know if I got the right answer? The short answer is you don’t, and I can’t give you the full output, as that is marked, however I can say that the rank one asset my solutionproduces is TOP Ships Inc (TOPS).• Can I use : No, you have to write in Java to enable fair marking of the exercise.• Can I use an AI assistant to help?: Also no, see https://www.gla.ac.uk/myglasgow/sld/ai/students/• Can I ask for help in the labs?: Yes! That is what we are there for, we can’t tell you the solution, but we can provide hints and guidance.
Assessment 2: Individual Learning ePortfolio, one-page mind map This assessment forms 10% of the overall module grade. Submission date: Wed, 9th Oct, by 4pm, via SurreyLearn Objective: § This assignment aims you to develop a learning portfolio that reflects on your learning during the module, with an emphasis on the learning process and the learning outcome. Task: § You will produce a one-page mind map of your own learning and expand this to illustrate how it will be applied in the workplace in your future career. The mind map must concentrate on: o content of learning (i.e., the meaning for you of what you have learnt), o any transformation in viewpoints and/or attitude towards companies, the industry, policy, etc. experienced throughout the week, and why (not), o processes of learning (i.e., what worked best to facilitate your own learning and why, how can you improve your own learning the future, e.g., time management, engagement with module), and o a critical reflection on the module (i.e., how the module can be improved and why, new ideas to contribute to the subject of digital service design, etc.). Specific requirements: § The mind map must be one-page § You are free to use any software to create the mind map, not necessarily Miro. § You will add images to the mind map which they have rights to use (don’t use any copyrighted resources without permission) § Be reflective, not descriptive. § It should be mostly visual, with bullet points – it is not a report – so be concise, showing interlinks between concepts/reflections/ideas. § Be critical with yourself and the module but constructive. § Please refer to the marking rubric before your submission. Marking Strategy A detailed marking scheme is provided to you during your first lecture together with the assessment details. This allows you to clearly identify what is expected of your work. The marking scheme outlines the percentage figures for each assessment component. This is also essential for markers of the report as it allows for consistency in the marking process. Criteria Weighting Exceptional 90 - 100 Excellent 70 - 79 to Outstanding 80 - 89 Adequate 50 - 59 to Good 60 - 69 Well below expectations 30 - 39 to Below Expectations 40 - 49 Far to very far below expectations 0 - 29 Presentation (30%) Catchy, clever, and original presentation, visually communicating the topic. The different concepts are well interlinked Mostly catchy, clever and original presentation, visually communicating the topic, with few flaws. Most concepts are well interlinked The presentation is catchy, original enough to get the reader through it without too much confusion Some links are unclear or vague The presentation is somewhat catchy and/or little original, providing a vague to very vague purpose. Most links are unclear or vague; some lack of linkages The presentation lacks a sense of direction, failing to visually communicate the topic. Links are generally vague to too vague; show inconsistent relationships or lack of linkages Content (50%) Clear and focused content (both images and words), holding the reader’s attention Correct grammar is used Mostly clear and focused content (both images and words), holding the reader’s attention Correct grammar is used The content (either images or words) is developed to a general level, leaving the reader with questions Minor grammar mistakes The content (both images and words) lacks relevant concepts, leaving the reader with many questions Occasionally incorrect grammar The content (both images and words) miss most concepts, leaving the reader unable to understand the full picture Poor grammar is used Concision (20%) The words chosen are efficient and concise. All statements are relevant. Expressed ideas can be easily understood. The words chosen are to some extent concise. Some irrelevant statements are included. Slight lack of clarity in the ideas. Slightly wordy. Several irrelevant statements are included. Few ideas are difficult to understand. Wordy; the words chosen are excessive or redundant. Many irrelevant statements are included. Some ideas are difficult to understand. Overly wordy; the words chosen are excessive and redundant. Irrelevant statements. Redundant statements. It is very hard to follow the ideas expressed.