ISGB 799O –Programming with Python Fall 2018
Group Project Assignment – Student Query Tool (SQT)
Due December 12, 2018
Interim work due as described below
SUMMARY
The overall goal of your SQT program is to read student records from a file, and let the user enter queries in order to see a detail or summary report. The project uses many of the topics covered in class, including primitives, data structures, control statements, console input/output, exceptions, files, parsing, and formatting.
INTERIM DELIVERABLES
There are two interim deliverables for the project. The first deliverable (Design) is a short description of the proposed data structures functions/methods. The second deliverable (Prototype) is Python code that implements some or all of the project's
required functionality.
TIMING
Step | Date |
Assignment Published (this document) | 11/7 |
Group Requests Due | 11/8 |
Groups Published | 11/12 |
Design Due | 11/28 |
Prototype Due | 12/5 |
Final Program Due | 12/12 |
Groups will meet outside of class time. You should allow for adequate time to discuss, design, code, assemble, refine, and test your program.
PROGRAM INPUTS
The student input file has the following fields: Student ID #
Last name First name
Graduating year (e.g, 2019)
Graduating term (Fall, Spring, Summer) Degree program (e.g., MSBA, MBA, etc.)
This input file has a header record (a first line describing the fields in the file). Each field is separated by a tab. Example files to use (e.g, students.txt) will be posted on Blackboard.
PROGRAM PROCESSING
Your program should read each record of the file once into a data structure (e.g., list, dictionary or class). The program should keep the instance of the data in memory for the duration of the program, i.e., it should not re-read the data from the file for each user query.
Your program should allow queries to be entered, regarding the student list. Types of queries include:
Display all student records
Display students whose last name begins with a certain string (case insensitive) Display all records for students whose graduating year is a certain year Display a summary report of number and percent of students in each program,
for students graduating on/after a certain year
The exact way to get user input and display the results will be decided by the group. The user interface should be via the console (screen and keyboard).
The program should anticipate and handle a number of potential errors related to user input or the file data.
Optionally, an additional functionality that you choose can be added to the system. However, groups should aim for a basic working system before enhancing it.
GROUPS
Each student can optionally request (via a Qualtrics survey) a student that they would like to have in their group. Based on this feedback, the instructor will form groups of 3 people. Student requests will be considered when forming groups, however not all requests may be met.
GRADING
All group members of the group will receive the same grade, which will be based on:
Quality of the design
Quality of the code (including logic, error handling, commenting) Ability to meet the requirements
Your final .py file(s) for the program will be submitted to BlackBoard.