CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 Data Visualization – Part I(Interactive Query)OVERVIEWIn this assignment, you are asked to design and develop a Data Visualization application to provideschool administrators and students with a web-enabled interface to perform online query on schoolinformation, such information as course description, student GPA, course location, instructor name andso on; based on the responses from the users, the application then generates a SQL statement to fetchthe data needed; based on the data returned from SQL server, the screen will be refreshed with therequested information shown in a tabular format or as graphical plot. The application will be composedof 3 primary components: Graphical User Interface (GUI), SQL Interface and Graphical Tool depicted asfollows: CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 The GUI component will be composed of 2 web pages, one for online course query and the other forstatistical information on student GPA distribution. The format of the query page is shown as follows:Whereas the format of the statistics page is shown as follows: CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamSPECIAL SKILLS Data Visualization: using “Bokeh” to construct the web-based GUI to interface with the endusers for online query Relationship Database: constructing simple SQL statements to extract the relevant informationfrom a database. Using data visualization tool to turn raw data into interactive 2-D graphics such as lines, scatterplots, bar graphs, stacked bars and so on. Using pymssql to interface the SQL server Using widgets to capture user responses: text input, radio buttons, button groups, tables,dropdown list and so on.SCOPE – GENERALNOTE: Keep your entire source code in ONE SINGLE file. Use only standard python modules Use pymssql to connect SQL server Use bokeh to design the GUI In your design stick ONLY to functions, in other words, no class objects of your own. CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamSCOPE – TAB PANEL1. Using bokeh tool to construct a multi-tab panel for the home page:a. First panel as “Course Info”b. Second panel as “Statistics”2. The panel “Course Info” holds the online course query page, refer to corresponding section formore details.3. The panel “Statistics” holds the statistics page, refer to corresponding section for more details. CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamSCOPE – COURSE INFO4. Using bokeh widgets & layout to construct the web-based interactive query screen.a. refer to the given template file (ui.py) for information.5. The A-Z button group, when clicked, will display all courses with title beginning with the letter ofthe clicked button, the result will be displayed in the data table shown on the bottom of thescreen.6. Two sets of “begin with ….”-“…contains…”-“…ends with” button-groups, one for the course titleand the other for department name. They behave as radio buttons. They are used togetherwith the two corresponding text inputs, namely “Title” and “Department” respectively.a. These 3 buttons indicate whether or not the given string will be used as prefix, infix orsuffix match respectively. If “begins with…” is selected, courses will be matched withtitle beginning with the given text; if “…contains…” is selected, title containing the giventext will be matched.b. Ex: “begin with…” with input “bio”, courses such as “biology”, “bioinformatics” areshown.7. The “and”-“or” radio button-group indicates whether or not to search on title and departmentas a group (“and”) or separately (“or”).8. When the button “Refresh” is clicked, the actual search will take place and the result will bedisplayed in the data table. The search is based on a database table called “lgu.course”.a. sp_help “lgu.course” to view its structure (refer to session “Database – Info”)9. It is required that the program execute “efficient” SQL statement to fetch only the data needed.It is NOT supposed to cache the entire course table in memory and avoid further databaserequest. Though the size of the course table for this exercise is small in size, however, in reality,it can be potentially large in size; it’s therefore best practice to use SQL query effectively to fetchonly the information needed. You should also take advantages of SQL group-by function to CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley Lamreduce as much as data possible to minimize the network traffic between the server and yourprogram.Examples: “begins with…” with “bio” as Title “…contains…” with “bio” as Title “…ends with” with “bio” as Title CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 “…contains…” with “bio” as Title and “finance” as Department, with “and” option “…contains…” with “bio” as Title and “finance” as Department, with “or” option CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamDATABASE – INFOUsing Visual Studio Code, create a file of type “sql”, make a database connection to “csc1002” andperform a query execution with the following statement: sp_help “lgu.course” SQL connection: CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamSCOPE – STATISTICS1. Using bokeh widgets & layout to construct the web-based interactive query screen.a. refer to the lab materials for more information2. On the right side of the page is a stacked bar chart, showing the GPA distribution bydepartment, further categorized by class year.3. On the left side of the page is a selection list displaying the list of all departmentsa. It is used to select the department for which the chart is created4. When a new department is selected, the chart will be updated to refresh the correspondinginformation.5. The stacked bar chart shows student GPA distribution based on the selected department.a. Students are from class of 2015, 2016 & 2017 (year)b. As illustrated, GPA counts are stacked in chronological order, each with a unique colorc. Legend (upper right) is shown to display the color of the classes6. The database table to use is “lgu.student” and the structure is shown as follows: CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamSTARTUP OPTIONS“bokeh serve --show ”SKILLS - PYTHONIn this assignment, you will be trained on the use of the followings:Standard Python Object: Standard objects (strings, numbers & lists) Control statements to interact with users Variable Scope String formatting (method style) Functions for program structure and decompositionDELIVERABLES1. Design documentation (A2_School_StudentID_Design.doc/pdf)2. Program source code (A2_School_StudentID_Source.py)where School is SSE, SME, HSS, or FE and StudentID is your 9-digit student ID.Zip all files above in a single file (A1_School_StudentID.zip) and submit the zip file by due date to thecorresponding assignment folder under “Assignment (submission)”For instances, a SME student with student ID “119010001”: A2_SME_119010001.zip:o A2_SME_119010001_Design.doc/pdfo A2_SME_119010001_Source.py5% will be deducted if any files are incorrectly named!!!For the design document kindly refer to section “Design Documentation” for details. CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamDESIGN DOCUMENTATIONFor the design document provide write-up for the following sections:1. Program structure and flowa. Describe the main process in turns of the overall program flow, that is, your solution tothe problem presented by this assignment.2. Python objects (global variables)a. Usage of core python objects (purposes)3. Functionsa. Describe usage of all your newly defined functions, including details of parameter(s)4. Outputa. Show samples of output from your programTIPS & HINTS For executing and debugging “bokeh”, refer to the uploaded file “launch.json” and “tasks.json”. For general information on “Bokeh”, refer to the following link:https://bokeh.pydata.org/en/latest/docs/user_guide.html For adding widgets (text input, list box, button groups, tables ..etc), refer to the following link:https://bokeh.pydata.org/en/latest/docs/user_guide/interaction/widgets.html For reference guide, refer to the following link:https://bokeh.pydata.org/en/latest/docs/reference.html CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 DEBUGGINGVSC TASKSNote: replace IP (20.20.12.68) with your own local IP. 5006 is the http port, do not need to change it. CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamSAMPLE OUTPUT CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley Lam CSC1002 – Computational LaboratoryCSC1002 – 2019 Term 2 By Kinley LamMARKING CRITERIA Coding Styles – layout, comments, white spaces, naming convention, variables, indentation. Documentation – Design + Test Plan�Program Correctness – logic, program structure, functions with appropriate parameters User Interaction – how informative and accurate information is exchanged between gameplayer and host. Readability counts – programs that are well structured and easy-to-follow using functions tobreakdown complex problems into smaller cleaner generalized functions are preferred over afunction embracing a complex logic with nested conditions and sub-functions! In other words, adesign with clean architecture with high readability is the predilection for the course objectivesover efficiency. KISS approach – Keep It Simple and Straightforward. Balance approach – you are not required to come up a very optimized solution. However, take abalance between readability and efficiency with good use of program constructs.CHALLENGESCompleted by due dateDUE DATEApril 7th, 2019 本团队核心人员组成主要包括BAT一线工程师,精通德英语!我们主要业务范围是代做编程大作业、课程设计等等。我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全 汇编语言 硬件编程 软件设计 工程标准规等。其中代写编程、代写程序、代写留学生程序作业语言或工具包括但不限于以下范围:C/C++/C#代写Java代写IT代写Python代写辅导编程作业Matlab代写Haskell代写Processing代写Linux环境搭建Rust代写Data Structure Assginment 数据结构代写MIPS代写Machine Learning 作业 代写Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导Web开发、网站开发、网站作业ASP.NET网站开发Finance Insurace Statistics统计、回归、迭代Prolog代写Computer Computational method代做因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com 微信:codehelp
网友评论