讲解:CMPSC431W、software、Python、Pyt

2020-01-13  本文已影响0人  kuzhazhe

SP2019 CMPSC431W Database Management Systems 1CanvasPathCanvasPath is a startup project which aims to help Lion State University maintain their softwaresystem for course information management. John Smith, a stakeholder of the project, along withmembers of the Lion State Advisory Board have been examining the current course managementsystem and realized that there is a serious need to migrate the legacy system into one with a newdesign and up-to-date technology. The Advisory Board of Lion State (which luckily has somemembers graduated from Penn State University) unanimously identified Canvas as the primaryreference for improving their system. Furthermore, to gain insights from Canvas users, the boardsuggest Mr. Smith to invite EECS students of Penn State University, who are known for theircreativity and robust technical skills, to be involved in the project.Mr. Smith, who is not a technical person, reached out to Dr. Lee and his team for assistance tocarry out a feasibility study. After extensive discussions, they agreed that this study with guidancefrom Dr. Lee and his teaching team, can be performed by having students in CMPSC431W tosystematically design and implement prototypes for validation of feasibility. The goal is not toproduce a complete implementation of the system, as it would require too much time and resourcesfor the students. Instead, students will focus on i) the process of the database design that may posea significant risk due to uncertainty and the lack of understanding in requirements, and ii) theprototyping of certain system functionality as a proof of concept. It is anticipated that based oncarefully examination on the tested prototypes, valuable insights and lessons may be obtained.Indeed, this design-prototype approach of feasibility study is often adopted when the requirementsare not well understood. Moreover, a successful prototype can potentially serve as the foundationfor the future production system in operation, and an impressive demonstration of the prototypedsystem, functions, and unique features will attract appreciation of the PSU talents by the membersof the LSU Advisory Board who are mostly executives in S&P 500 companies.Dr. Smith and his associates have tried to communicate this project abstractly and expects studentsto figure out and fill in all the missing details. Basically, you (students in CMPSC431W) willdesign a database-backed web application to manage course-related information, includingcourses, students, faculty members, and more. Students (you) will also implement a prototype todemonstrate system functions and your design. As parts of the prototype, you will need toimplement a number of programs that access data in the designed database in order to support thefunctions of the system. The project consists of two phases:1. Requirement Analysis, Conceptual Database Design, Technology Survey, LogicalDatabase Design and Normalization.2. Protype ImplementationThe first phase is to, based on the provided project description, analyze the requirements ofCanvasPath in order to specify its system functionality and to identify data needed for the systemfunctions as well as business rules (integrity constraints) to be imposed upon the needed data. Inaddition, it also requires you to come up with a conceptual database design by using the entityrelationshipmodel to expressed the data and constraints identified. Furthermore, students shallperform a technology survey by researching on the current web/database application technologies, SP2019 CMPSC431W Database Management Systems Instructor: Wang-Chien Lee2including web frameworks, programming languages, development tools, and databasemanagement system, for comparison with those suggested by the CMPSC431W teaching team,i.e., Flask Web Framework, Pythan, PyCharm IDE, and SQLite. Additionally, logical databasedesign and schema normalization is to be performed in the first phase. Each student will submit awell-documented report for the tasks in Phase 1. After this detailed design process, in Phase 2,students will populate the database and implement the system functions.OVERALL REQUIREMENTSBefore we jump into the description for each phase, let’s talk about what you are expected to fulfillwhile working on the project.Document formattingWe will provide a document template (as .docx file) that you are more than welcome to directlyfollow. However, you are encouraged to create a template of your own, as long as it maintains aprofessional image for your cover page, and includes all the components from our providedtemplate. You can also write your documents in LaTeX or other document typesetting languagesor tools. Your report should be converted into one PDF file for submission electronically.Source ControlIt is required that every student maintains a GitHub account and repository for the project. It is anexcellent practice to maintain version control for projects of any size. Therefore, a GitHubclassroom for CMPSC431W has been created for students to enroll. Note that the status shown onyour repositories, e.g., how frequent the repository is committed may serve as an indicator forassessing your project effort and performance. In addition, you are required to maintain gooddocumentation for your codes.Project ManagementThe success of this project heavily relies on your own personal effort and commitment. As denotedon the Syllabus and Course Schedule, the project is segmented into two phases. Thus, there willbe no intermediate submissions. Students are expected to set goals and maintain individualmilestones, documented as part of the Phase 1 report. For those who do not have prior backgroundon web programming, it is highly recommended to start reading documentation and tutorialsduring Phase I.Since there are numerous web application tools and frameworks, it is impossible for the teachingstaff to provide guidance on every combination of tools. While students have a choice to use therecommended platform and tools (i.e., Flask Web Framework, Pythan, PyCharm IDE, and SQLite)which the teaching staff are more than happy to provide guidance, you may choose to adoptplatforms, tools, programming languages and database management systems of your preference(but you are on your own in this case).SP2019 CMPSC431W Database Management Systems Instructor: Wang-Chien Lee3PHASE I – DATABASE DESIGN AND TECH SURVEYChecklistTasksRequirement AnalysisConceptual Database DesignTechnology SurveyLogical database design andnormalizationTask 1: Requirement AnalysisAs mentioned earlier, CanvasPath aims to replace the current course management system in LionState University. Thus, it may help to explore the current Canvas (and other course-related)websites in PSU as a reference to better understand the expected functions and the requirementsfor CanvasPath. The following is a general description of the expected system functionalities inCanvasPath. In this task, you need to specify in detail the system requirements, including systemfunctions, the types of data that must be stored, the business rules (integrity constraints) to beimposed on the data, and how it will be stored and accessed in support of the expected systemfunctionality.Note: For Task 1, you are expected to elaborate the system functionality in your own words andidentify (also write down) the data needed to support the functionality as well as the integrityconstraints to be imposed on the data.In the following, we first describe the CanvasPath system from the users’ perspective, then wedescribe some additional information in the system.1. CanvasPath Users: All software and computer applications are to be used. Whether it be anembedded system which runs autonomously or a service/product which humans interact with,a good design needs to understand the purposes/goals of the systems and who the end usersare. For this project, there are primarily two types of users, Students and Faculty members,as well as a special staff called Administrator, who takes charge of managing all students,faculty members, and courses information. At the beginning of each semester, theAdministrator will create all courses on CanvasPath. He maintains all students and facultymembers information such as the name, ID, age, gender, email address, home address, whichincludes street, city, state and zipcode, and initial login password. For students, theadministrator also maintains their majors. For faculty members, the administrator alsomaintains their office addresses (different faculty members have different offices), titles andtheir departments as well. Then for each section of a course, he grants the faculty member whoteaches the section the permission to manage the section. At the beginning of semester, thestudents enroll their courses but there is no opportunity to for them to add or drop course afterthe semester begins. Note that the administrator only provides necessary initial information forcourse configuration in CanvasPath and he does not use it after the semester begins. Therefore, SP2019 CMPSC431W Database Management Systems Instructor: Wang-Chien Lee4do not worry about the design of administrator. The primary CanvasPath users whom youshould be concerned about include only students and faculty members. We assume all userscan log in with the email ID and the login password.a. Students: We need to be able to maintain information about students enrolled at PennState. It is important that detailed information of students is collected and stored withinCanvasPath.For students, CanvasPath is a system to enroll into courses and to view their courseinformation, assignments scores and courses grades. A student can log into CanvasPathwith his email address and his own initial password at first. After logging in, he can modifyhis personal information (except for his ID) and reset login password. In addition, he shouldbe able to browse/search the general course information (including instructor’s name) forenrollment to courses代写CMPSC431W作业、代写software留学生作业、代做Python程序语言作业、代写Python实验作业 代做. He can also find details regarding the courses that he takes (grades,instructor name and their details). A student cannot find specific information (e.g.,assignments) of courses that he is not taking. For privacy concerns, students are only ableto see their own grades. Furthermore, for a student taking a Capstone section of a course(Capstone section and project are to be introduced later), the system should also providethe student with contact information of their mentor/sponsor and the team members of hisCapstone project.Intuitively, for a student to be a valid user of the system, he must take at least one class,i.e. be enrolled to a course. In addition, a student can enroll to only one section of a course.Again, he can only view the specific information of courses he is enrolled.b. Faculty Members: As the same with students, faculty members can log in with their emailand initial login password. After a faculty logs in, he can modify his personal informationand reset his login password. Besides, he can see the list of the courses and sections heteaches. For a course section he teaches, he can see the names (along with IDs) of studentsenrolled in the section. If a section is not a Capstone section, the faculty can create entriesfor homework assignments and exams. He will submit the scores of assignments and examsfor students after grading. At the end of semester, he will submit final grades for studentsbased on their academic performance.If a section is a Capstone section, the faculty member can create entries for homeworkassignments and some projects (which replace exams in regular sections). For each project,he collects the information of all teams (e.g., team name and information of teammembers). On CanvasPath,he assesses the performance of teams to assign grades for eachteam (i.e., he gives the same score to students in the same team). The faculty member canalso see name and contact information of sponsors who mentor Capstone projects in thesection. More information about Capstone section are to be explained later.Intuitively, all course sections need to be taught by at least one faculty member. A facultymember may teach the same course in different semesters and he may teach multiplesections of the same course in one semester, which should be recorded by the CanvasPath. SP2019 CMPSC431W Database Management Systems Instructor: Wang-Chien Lee5However, only the courses (sections) being taught in the current semester can be managedby the faculty member.The above is stated from the user view of CanvasPath. The following parts describe theDepartments, Courses and Sections which are to be managed in CanvasPath.2. Departments: Like all universities, departments in Lion State University are home of majoredstudents and affiliated faculty members. Every faculty member belongs to only one departmentand all students must major in at least one department. For instance, a student may major inboth of the Mathematics department and the Computer Science department (CMPSC), whileProf. Lee is a member of the CMPSC faculty.3. Courses: Courses are the main area of focus which the CanvasPath project is targeting on. InLion State, a course can only be offered by one department. In addition, courses have prerequisites(one course can have multiple pre-requisites). In addition to pre-requisites, courseinformation includes the course name, the unique number abbreviation, the departmentoffering the course, and the course sections which the students actually enroll in (you may usecourse information in LionPath of Penn State as a reference).4. Sections: a section is the lower-level unit of a course. One course can have multiple sections.Sections are denoted by section numbers and each section is always taught by at least onefaculty/professor. Note that each section can be taught by a team of professors (i.e., facultymembers). In such cases, professors teaching a course join some teams and each team takes incharge of a course section. Note that while the same course has different sections, each sectionhas its own capacity limit, exams, homework assignments, i.e., Lion State University letprofessors (faculty members) to flexibly decide how many homework assignments and examsto give in their sections.a. Capstone section: Some sections of a course are designated by a special type asCAPSTONE section. The only difference between a CAPSTONE section and a regularsection is that in lieu of exams, students are to form teams to work on Capstone projectswhich are mentored by some sponsors. Mentors/sponsors are professors who are facultymembers of any department in Lion State University. Every Capstone project has exactlyone sponsor who may mentor multiple projects. The same project may be performed bydifferent project teams independently but they are all mentored by the same sponsor. EveryCapstone project team, working only on one project, must have more than one student. Asmentioned before, all students in the same project team receive the same grade, which is tobe assigned by the instructor (i.e., the faculty member who teaches the section).Task 2: Conceptual Database DesignBased on the result of Task 1, you should present an entity-relationship diagram describing yourconceptual database design. Also, your report should include a narrative description on all aspectsof the diagram in detail. In addition to an overall ER-diagram of your conceptual design, parts ofthe ER diagram such as entities, relationships and integrity constraints are expected to beexplained. Note that conceptual database design is application-oriented. Please do not assume theunderlying database system (just yet) and thus do not map your design into relations.SP2019 CMPSC431W Database Management Systems Instructor: Wang-Chien Lee6Task 3: Technology SurveyAn aspect of working in the IT industry is to always keep your knowledge updated with the currentmarket trends and technology innovations. Thus, for the project, it’s important for you to have agood knowledge of the current web programming and database technology. A technology surveyis meant for you to research a breadth of various web programming frameworks, programminglanguages, tools, and database management systems as well as the trends in those technologicalareas. Beside taking into consideration the web programming stack suggested by theCMPSC431W teaching team, i.e. Flask, Pythan, PyCharm IDE, SQLite, you have to come up withtrending alternatives to make a comparison. It is expected for you to write persuasively aboutwhich tools you think as the best fit for the project. Please consider as many aspects as possibleregarding the roles of those technologies in your project, and to justify your own recommendationby discussing the reasons, pros and cons of your choices. Also discuss the impact and relevanceof those technology trends to the computer science fields and a broader segment of society orbusiness/industry.Task 4: Logical database design and NormalizationBased on the Requirement Analysis and Conceptual Database (ER) design you developed in Task1-2, you will finalize the relational schema for the CanvasPath database. You should produce arefined schema that reduces data redundancy to an acceptable level (i.e., the final schemas need tobe at least in the 3rd Normal Form) while not unduly affecting performance. Your schemas shouldalso support the enforcement of most, if not all, of the integrity constraints that you identify in thisphase as well as those newly identified or added after relational schemas are generated from theER diagram. In this task, we assume two functional dependencies have been identified: a) zipcodes in address determines state and cities; b) student email address which determines thelogin password. You should present the specific details of how the process of schema generationand normalization is done, i.e., you are expected to apply both of translating the ER diagram torelations and then perform schema normalization.SP2019 CMPSC431W Database Management Systems Instructor: Wang-Chien Lee7GradingDifferent from exams, the project provides a way for students to show their commitment and effortin learning and practicing the knowledge learned from CMPSC431W. While the course project iswork intensive, students who show their strong motivation and effort through the high quality oftheir reports will be rewarded. The project report, fulfilling the Writing requirement of the PennState curriculum, is graded in terms of correctness, completeness, presentation, and clarity. Again,your effort will be reflected in your report and rewarded. Please be reminded that the project iswork intensive -- start early and prioritize your time.Extra credit of up to 10% will be rewarded for reports who include at least 1 new functionalityexpressed explicitly and clearly within the report. This is graded on novelty of the newfunctionality and clarity the student is able to present in various tasks of Phase 1.SubmissionAs mentioned above, a template will be provided as a .docx which serves as a mandatory styleguideline. The deliverable is a report in PDF containing the requirement analysis, conceptualdatabase design, technology survey, and logical database design and normalization. Thedocument must have page numbers, section numbers and a table of contents. Figures should beused for illustration of your design. In addition, the document should also include a project plan(including schedule, deliverables, and milestones) as an appendix in the project report. It isexpected that the report be at least 10 pages (not including the cover page and table of content).Turnitin will be where you submit a .PDF version of your report. As stated in the syllabus,academic integrity is the most important and there will be no tolerance and exceptions towardsviolation. An incomplete but attempted submission is always far better than committing anacademic integrity violation.Phase II description and guidelines will be announced and posted on Canvas later. 转自:http://www.7daixie.com/2019042422487500.html

上一篇下一篇

猜你喜欢

热点阅读