Codingassignmenthelper | Home Codingassignmenthelper | University

Software Engineering 265 Software Development Methods Summer-2019

Assignment 2 :

Programming environment

For this assignment please ensure your work executes correctly on the Linux machines in ELW B238. You are welcome to use your own laptops and desktops for much of your programming; if you do this, give yourself a few days before the due date to iron out any bugs in the Python 3 program you have uploaded to the BSEng machines. (Bugs in this kind of programming tend to be platform specific, and something that works perfectly at home may end up crashing on a different hardware configuration.)

When evaluating your submission, the teaching team will use the environment established by the setSENG265 command that is available on the lab workstations.

Individual work

This assignment is to be completed by each individual student (i.e., no group work). Naturally you will want to discuss aspects of the problem with fellow students, and such discussion is encouraged. However, sharing of code fragments is strictly forbidden without the express written permission of the course instructor (Zastre). If you are still unsure regarding what is permitted or have other questions about what constitutes appropriate collaboration, please contact me as soon as possible. (Code-similarity analysis tools will be used to examine submitted programs.)

Objectives of this assignment Learn to use basic features of the Python language. Use the Python 3 programming language to write a less resource-restricted implementation of calprint (but without using regular expressions or user-defined classes). Use Git to manage changes in your source code and annotate the evolution of your solution with messages provided during commits. Test your code against the 15 provided test cases from assignment #1.

calprint2.py: Returning to the problem

For this assignment please use the description of the problem as provided at the end of this document, and also use the assignment #1 test files. Some of the limits that were placed on certain values are no longer needed (e.g., maximum number of events, maximum line length, etc.).
However, the arguments used for the Python script will be slightly different. You will indicate the range of dates to be used to generate the schedule by providing “-- start” and “--end” arguments. Note also that the script is named “calprint2.py” (and not “calprint.py”).

./calprint2.py --start=18/6/2019 --end=18/6/2019 --file=one.ics

As with the first assignment, all output is to stdout. You must test the output of your program in the same manner as with assignment #1 (i.e., using diff).

However, I will place four different kinds of constraints on your program. For this assignment you are not to use regular expressions. We will instead use these in assignment #3 in order to write a more powerful version of the program that processes more complex .ics files. You must not write your own classes as this will be work for assignment #3. You must not use global variables. You must make good use of functional decomposition. Phrased another way, your submitted work must not contain one or two giant functions where all of your program logic is concentrated.

Exercises for this assignment

Within your Git repo ensure there is an “a2” subdirectory. (For testing please use the files provided for assignment #1. )Your “calprint2.py” script must be located in this “a2” directory. Note that a starter calprint2.py file is available for you in the /home/zastre/seng265/a2 directory. Write your program. Amongst other tasks you will need to: read text input from a file, line by line write output to the terminal extract substrings from lines produced when reading a file create and use lists in a non-trivial array. Keep all of your code in one file for this assignment. In assignment #3 we will use the multiple-module and class features of Python. Please ensure you also respect all of the other constraints described earlier in this document. Use the test files and listed test cases to guide your implementation effort. Refrain from writing the program all at once, and budget time to anticipate when “things go wrong”. For this assignment you can assume all test inputs will be well-formed (i.e., our teaching assistant will not test your submission for handling of input or for arguments containing errors). Assignments 3 and 4 may specify errorhandling as part of the assignment.

Evaluation

Our grading scheme is relatively simple.
“A” grade: A submission completing the requirements of the assignment which is well-structured and very clearly written. All tests pass and therefore no extraneous output is produced. “B” grade: A submission completing the requirements of the assignment. calprint2.py runs without any problems; that is, all tests pass and therefore no extraneous output is produced. “C” grade: A submission completing most of the requirements of the assignment. calprint2.py runs with some problems. “D” grade: A serious attempt at completing requirements for the assignment. calprint2.py runs with quite a few problems; some non-trivial tests pass. “F” grade: Either no submission given, or submission represents very little work, or no tests pass.

To Continue Click Here > Software Engineering-265 Software Development Methods Summer-2019 Assignment-2.pdf
Codingassignmenthelper | Home Codingassignmenthelper | Home