OMIS6350/3670 Winter 2018
MUST READ: General Requirements CHECKLIST for Individual Assignments
- Homework assignments are to be done individually or in pairs. Please re-familiarize yourself with York’s and Schulich’s policies on plagiarism. If you base portions of your code on any source other than your own work, insert a link, or otherwise cite the source within the comments of your code. When copying code, you MUST:
- Change procedure and variable names
- Add your own comments
Without these changes, your work will be considered a straight copy and will share the grade with other instances using exact same code, i.e. 2 copies will get 50% of the grade each. Share your code wisely.
- Upload the Excel FILE(S) to CANVAS by the indicated assignment due date/time. Extra time to finish the assignment must to be arrange beforehand; late submissions without prior communication will be penalized.
Do not submit completed assignments by email – I’m not looking for them there, they may get lost.
- The file naming convention for all submitted files MUST follow the format of
“LastName1 FirstName1[ ,LastName2 FirstName2[ CourseNumberSectionLetter HA Number.xlsm”
Take note of the blanks in the file name and the absence of any special characters. For example, if I were to submit files for Homework Assignment 1 done by myself, it would be named
“Shcherbin Pavel OMIS6350X HA 1.xlsm”.
If I’m working on the file with a colleague Albus Dumbledore, the file would be named
“Dumbledore Albus, Shcherbin Pavel OMIS6350X HA 1.xlsm”
I receive hundreds of files each term, for each course I teach, and all need to be processed there and back to several graders without mistakes. It is in your best interest to name the files right!
- “Option Explicit” must be present in ALL modules with code. You can set this in the VBE in: Tools > Options > Editor tab > “Require Variable Declaration” (0.5 point deduction if not set).
- Always be sure to include a button or some other UI element on your spreadsheet that enables the user to call/execute your programs (2 point deduction). Assume that the app is intended for the user who has no idea about VBA, and design UI accordingly. Test all user inputs thoroughly, the user must not get VBA errors, ever (2 point deduction).
- Before submitting the final app files with macros, check if they work on a lab computer – this will be our common denominator in case the app is finicky and only works on select PCs. Also, double-check that all functionality requested in the assignment is realized, as the grade is broken down by feature.
- Ensure all subroutines that are longer than a few lines, or with complex non-obvious logic, have comments summarizing the purpose and main logic of VBA code (0.5 point deduction).
All VBA code must be indented and spaced to facilitate reading (1 point deduction).
- All Excel-generated code must be optimized following 80/20 rule. I.e. if unoptimized code is 20 lines, fully optimized is 5 lines, you target should be 20 – (20-5)*0.8 = 8 lines (1 point deduction).
Your app should contain NO / MINIMUM redundant code, for example if you are applying the same formatting to 3 cells, you should create a separate cell formatting procedure and call it passing the target cell as parameter, rather than copying the same code 3 times (1 point deduction).
Winter 2018, Homework Assignment #1
20 points max: re-build the “Bank account management application”.
Use “W18 Bank account mgmt app HA1.xlsm” file.
The file contains the UI for the Bank account management application, with formatted sheets, control buttons and a chart. Your task is to rebuild macros to support the requested functionality as described in the app “Welcome” screen, and in the comments provided in the code modules. All required code was covered in the decks for Classes 1-5 in some form. Where code is suggested, i.e. FOR EACH or DO UNTIL structures, you have to use them as a starting point.
Indent the code properly, add spaces where required, and link resulting macros to the available UI buttons. Note that all buttons are “ActiveX”, so you will need to use Click event handlers.
As you are working on the app, think about improvements you would like to make, and describe the best 3 in the provided space on “Welcome” sheet.
In Canvas, the assignment is set up so you can work on it individually, or create a group looking for the second person to join in. Grading approach is the same in both cases.
When finished, name the resulting file as per General Requirements, and upload it to CANVAS.
The grading component breakdown is as follows:
Element | Item | Points max |
1 | Indentation, comments, option explicit, other general requirements | 2 |
2 | Navigation works, Main macro, Workbook_Open macro | 3 |
3 | Sum deposits, sum withdrawals macros | 3 |
4 | New Deposit macro | 3 |
5 | New Withdrawal macro | 4 |
6 | Update chart macro | 3 |
7 | 3 improvements suggested | 2 |