辅导案例-CS1013

CS1013 Programming Project 2020

1. Goal
The goal of the project is to construct an application to explore stock market data in processing. The data set we will use is
a public dataset obtained from NYSE and NASDAQ. The application will read in data from a file “daily_prices.csv”,
render it, and allow the user to interact with it. The data will take the following format (comma separated values):

ticker, open_price, close_price, adjusted_close, low, high, volume, date
For example:
AAPL,218.100006103516,215.460006713867,215.460006713867,215.110000610352,219.1799
92675781,30287700,2018-08-20

Each entry appears on a new line. Varying size datasets will be available from links on blackboard, and the ability to deal
with these will depend on the efficiency of your program. The ticker (an alphabetic code) will be mapped to the business
name and details in a separate file (stocks.csv). This additional file contains (ticker, exchange, name, sector, and
industry), one line for each ticker symbol. You may add additional fields from other data sources if you wish. A local
version of the full 2GB dataset will be made available on an SCSS server. You may also pull in other data (e.g. real time
stock API’s or stock market news items).

ticker – alphabetic code uniquely identifying the stock, e.g. IBM, AAPL, GOOG, MSFT.
open_price – a floating point number – the opening price for that day
close_price – a floating point number – the closing price for that day
adjusted_close – a floating point number – adjusted closing price which takes into account company actions such as share
splits and dividends.
low – a floating point number – the lowest price for that day.
high – a floating point number – the highest price for that day.
volume – an integer – the number of shares traded that day.
date – the date in YYY-MM-DD format.

Fields are not expected to be empty, but it is best to program defensively.

2. Structure
The program will contain the following components:
- code to read in the data from a file and place it in classes.
o Processing provides both loadBytes and loadStrings commands
o A simple (although not particularly efficient) solution would be to define a DataPoint class which
represents a single day for a given stock. There would be one instance of the class for each entry in the
input file.
o You may wish to store the data in a format which is more efficient to access.
- code to select a subset of this data.
o Not all the data will be shown on the screen at one time, and so a set of queries must be defined in your
code. At a minimum, the following queries should be implemented:
§ Price of a particular stock over time.
§ The stocks with the biggest percentage changes over some time period.
§ Browsing all the stocks on a particular exchange.
- code to draw the data to the screen.
o The results of each query will need to drawn on the screen.
o You are encouraged to use graphical representations where appropriate (eg. the data could be on a
barchart, or more complex visualisations).
- code to handle user commands.
o Selecting what data is to be displayed (the query), the ticker or company name, date range, sector, etc.
- code to put everything together
o You are advised to have an outline of this as early as possible (first week of project).



3. Assessment
The project marks will be allocated according to both your individual effort and the effort you put into the group. This is a
group project, and part of the project is to manage the group effort. Each individual will receive a mark based on their
own contribution to both the individual and group components. If you make no contribution to individual or group
tasks, you will receive no marks.

You will be required to submit and demonstrate the current status of your project every week until the end of the
semester. Half of the project marks will be allocated for the weekly submissions. DO NOT MISS THE LABS.

Hence it is not possible to leave the project until the end of the semester.

Code is to be submitted via the subversion revision control system. All code must be commented, and the authors
indicated. You must use comments to indicate revisions to the code (eg. " M. Jones, Added Graph class for displaying
results, 8pm, 10/3/2020”. “J. Smith, Updated to show the dates on the chart, 7pm 14/3/2020", “L. White, Fixed bug
which stopped user from going back to homepage, 9pm, 15/3/2020”. etc.). It is in your own best interest to get credit for
the code you have written!

Attendance at the labs is mandatory and you will be expected to work in pairs at the labs. The project will take more time
than is available at the labs. Remember that CS1013 is marked only on coursework. You will need to schedule time in
your groups outside of lab time to work on your assignment / divide up workload.

The assessment will focus on the demonstration of working code; a check on code authorship; a check on quality of code
and documentation, progress towards the overall goal of the project, and the features implemented. Your code is to be
accompanied by a short report of maximum 5 pages outlining your design and any ways in which your solution goes
beyond the original project brief.

You will present your project at the lecture in the last week of term. The best team, as judged by the panel, will win a
prize for Best JF Programming Project. If you wish to be considered for best project you must record a version of your
demo as a 5-minute video and upload the video to subversion.

4. Assessment Schedule
The following is the schedule for the project, including milestones to demonstrate:
Week 6 Project Handout Plan project. Start thinking about it.
Outline main program.
Week 8 File reading and code outline Demonstrate reading of data from file and
give outline of main program, including
major classes, sketch of screens.
Week 9 Initial rendering of data Graph and textual output of data.
Week 10 Data selection and rendering Apply user queries to data set and present
results on screen.
Week 11 User Interaction Select different options and change screens
Week 12 (9th April) Demo of project
(10th April) Final Submission
Full demo to panel and submission of
report – 5 pages MAXIMUM.

The project demo will be from 16:00 to 19:00 on 9th of April. Report due on Friday 10th.

5. Other queries.
- You may use multiple tables.
- You may not use an alternative development environment (IDE) without permission. Such permission will only
be granted if all team members indicate they are happy to do so, and I am convinced that all team members are
fully engaged with the project.
- You must use Subversion rather than any other revision control system. It is used to track individual
contributions.
- If you are using SQL, you must implement a version which uses a local database (with a smaller dataset) so that
your program can be checked independently. Your program must work when downloaded from SVN to a lab
machine.
51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: ITCSdaixie