COSC2676 Programming Fundamentals for Scientists

School of Science
COSC2676 Programming Fundamentals for Scientists
Assignment 3 (v.2458745)

Assessment Type: Individual assignment; no group or collaboratve work. Submit online via
Canvas→Assignments→Assignment 3. Marks awarded for meetng requirements as closely as possible.
Clarifcatons/updates may be made via announcements/relevant discussion forums.
Due date: 23:59, 20/Oct/2019; Deadlines will not be advanced but they may be extended. Please check
Canvas→Assignments→Assignment 3 for the most up to date informaton.
As this is a major assignment in which you demonstrate your understanding, a university standard late penalty of 10% per
each working day applies for up to 5 working days late (afer which the submission will not be accepted), unless special
consideraton has been granted.
Weightng: 10 marks (excluding bonus marks)

1. Overview
There is no book containing the music to every song that will be writen. There is no book containing the answers to every
mathematcal calculaton that we will need to perform. Similarly, there is no book, set of lecture slides, video, etc. that will give a
programmer (you) the solutons to every programming problem. A programmer is able to take fundamental programming concepts
and, with the experience they have gained from analysis, evaluaton and problem solving, put them together to solve new problems.
For this assignment, you can extend upon your own assignment 2 or create a new one to fulfll the requirements of assignment 3.
1. Create a small tool or utlity program using (exclusively) a limited set of fundamental code concepts (detailed in secton 4.1 below)
2. You are able to analyse and evaluate in your code documentaton (see requirements in secton 4.2 below).
Note: You must not just “throw in the concepts” to your program just because they need to be there; it should be clear from the
code why a certain concept should be there and you must further explain these through your comments. You will also need debug
your code on your own and document any issues, etc. You are given marks on your ability to fulfll all requirements of this document.
There are code requirements (6 marks) and documentaton requirements (4 marks) for a total of 10 marks.
Develop this assignment in an iteratve fashion (as opposed to completng it in one sitng) and get feedback during your practcal
classes as you go. You can and should get started now as there are concepts from the week 1 lessons that you can incorporate from
now itself.
If there are questons, you must ask via the relevant Canvas discussion forums in a general manner (replicate your problem in a
different context in isolaton before postng).
Page 1 of 5
2. Assessment Criteria
This assessment will determine your ability to:
1. Follow coding, conventon and behavioral requirements provided in this document and in the lessons.
2. Independently solve a problem by using programming concepts taught over the frst several weeks of the course.
3. Write and debug Python code independently.
4. Document code.
5. Ability to provide references where due.
6. Meetng deadlines.
7. Seeking clarifcaton from your “supervisor” (instructor) when needed via discussion forums.
8. Create a program by recalling concepts taught in class, understanding and applying concepts relevant to soluton, analysing
components of the problem, evaluatng different approaches.
3. Learning Outcomes
This assessment is relevant to the following Learning Outcomes:
1. Demonstrate knowledge of basic concepts, syntax and control structures in programming
2. Devise solutons to simple computng problems under specifc requirements
3. Encode the devised solutons into computer programs and test the programs on a computer
4. Demonstrate understanding of standard coding conventons and ethical consideratons in programming.
4. Assessment details
Note: Please ensure that you have read sectons 1-3 of this document before going further.
Your code must meet the following code requirements (secton 4.1) and documentaton requirements (secton 4.2).
In places where this specifcaton may not tell you how exactly you should implement a certain feature, the programmer (you) need
to use your judgment to choose and apply the most appropriate concepts from class materials. Follow answers given by your “client”
or “supervisor” (you instructor) under Canvas→Discussions→’Assignment 3’ when in doubt.

4.1) The following code requirements/concepts must be applied to demonstrate your knowledge of lesson materials and
approaches; must refer to corresponding rows in the rubric (secton 9). [1+2+3=6 marks]
C1. Must meet code requirement C1-C6 stated in Assignment 2 (two). For Assignment 3 (three) You can extend upon your own
Assignment 2 (two) or choose to create a complete different program. Please refer to Assignment 2 specifcaton for details.
C2. Integrate local/web fle reading and/or fle writng in the manner shown in the week 7 lecture in to your program. Code
must be able to handle arbitrary-sized fles.
C3. Mult-processing must be used and applicaton must be able to demonstrate the benefts of multprocessing in the style
shown in the lectures. Code must allow to specify how many processes without the need to modify code.
4.2) Documentaton requirements. Must refer to corresponding rows in the rubric (secton 9). [0.5+0.5+3=4 marks]
D1. The code comments in this assignment must focus more on the analysis of your approaches and their evaluaton instead of
simply translatng the Python code to English (see rubric in secton 9 of this document; examples will also be given in lessons).
Write comments before code blocks (e.g. before lines that end with a : like defs, ifs, whiles, etc.) and important variable
declaratons. If you are adaptng your Assignment 2 (two), you can leave the original comments in but any new code would
need new comments.
Explain any code requirements that you have not met and all bugs (situatons that might cause the program to crash or behave
abnormally) in the approximate locatons they originate within your code. Bugs imposed by limitatons in the lesson topics
such as input type mismatches need not be corrected in code but they stll must be documented, if they exist. If you do not
have bugs, you must explicitly say that there are none. Tip: A good programmer knows the limits of their program. If doing B2,
explain any standard code requirements that you may have violated due to the bonus requirements.

Page 2 of 5

2. Line 1 of your .py fle must be an example of the command(s) needed to run your program.
D3. (New to A3) When evaluatng different approaches (in D1), you must have references to algorithm complexity (in the
context of lecture 8) whenever possible. For C3, near where you create the multple process objects, add a table (draw using
text symbols) of tming experiments showing the change of executon tme vs. the number of processes created. To receive
marks for the tming experiments, the table must be supported with a discussion of why you got those specifc results, why not
worse and why not beter. The table alone will not receive any marks.
4.3) Bonus requirements
You can atempt either B1, B2 or both but to obtain any bonus marks, you must meet all requirements of the non
bonus/standard requirements. The total mark for assignments+weekly work (the non-exam component) is capped at 50 marks;
the exam will be 50 marks.
B1. Submit your fnal version of the assignment, 1 week before the deadline for +0.5 bonus marks or 2 weeks before the
deadline for +1 bonus mark or 3 weeks before the deadline for +1.5 bonus marks.
B2. Incorporate machine learning and AI concepts either from lectures or external materials and demonstrate what you have
done during the week 12 practcal class in person. Note that some approaches may not be eligible for any bonus marks so it is
best that you seek supervision from Gayan before and during development of your code (early). To be fair to all students,
supervison can be given during/afer lectures and during practcal lessons only. Email and one-on-one supervision will not be
possible unless there is special consideraton. (+1 bonus mark).

5. Referencing guidelines
What: This is an individual assignment and all submited contents must be your own. If you have used sources of informaton other
than the contents directly under Canvas→Modules or what has been shown in the lectures or practcals, you must give acknowledge
the sources and give references using IEEE referencing style.
Where: Add a code comment near the work to be referenced and include the reference in the IEEE style.
How: To generate a valid IEEE style reference, please use the citethisforme tool if unfamiliar with this style. Add the detailed
reference before any relevant code (within code comments).
6. Submission format
Submit one .py fle and any related data fles via Canvas→Assignments→Assignment 3. It is the responsibility of the student to
correctly submit their fles in one go. Please verify that your submission is correctly submited by downloading what you have
submited to see if the fles include the correct contents.
Page 3 of 5
7. Academic integrity and plagiarism (standard warning)
Academic integrity is about honest presentaton of your academic work. It means acknowledging the work of others while
developing your own insights, knowledge and ideas. You should take extreme care that you have:
 Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have quoted (i.e. directly copied),
summarised, paraphrased, discussed or mentoned in your assessment through the appropriate referencing methods,
 Provided a reference list of the publicaton details so your reader can locate the source if necessary. This includes material
taken from Internet sites.
If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work and
ideas of another person without appropriate referencing, as if they were your own.
RMIT University treats plagiarism as a very serious offence consttutng misconduct. Plagiarism covers a variety of inappropriate
behaviours, including:
 Failure to properly document a source
 Copyright material from the internet or databases
 Collusion between students
For further informaton on our policies and procedures, please refer to the University website.
8. Assessment declaraton
When you submit work electronically, you agree to the assessment declaraton.
Page 4 of 5
9. Rubric/assessment criteria for marking
Code must be valid, runnable Python to be given a mark (code that bad syntax, pseudocode, incomplete Python code cannot be marked). Run-tme errors will incur up to a 50% penalty (run-tme errors due to data type mismatches in inputs are

Inadequate Partal Complete (Uses only the concepts covered in class materials for meetng stated criteria1
C1 Refer to Assignment 2 C1 rubric.
C2 More than one of the criteria in the ‘complete’ level
missing/incorrect or not demonstrated.
Any one of the criteria in the ‘complete’ level missing/incorrect
but demonstrated as a part of meetng overall functonal aims
of program.
File reading demonstrated using mechanisms shown in the week 7 lecture. Follows good coding practces related to fle reading shown during the lectures.
Able to handle arbitrary sized fles. Above demonstrated as a part of meetng overall functonal aims of program.
C3 More than one of the criteria in the ‘complete’ level
missing/incorrect or not demonstrated.
Any one of the criteria in the ‘complete’ level missing/incorrect
but demonstrated as a part of meetng overall functonal aims
of program.
Multple process concepts demonstrated using mechanisms shown in the mutli-processing lecture. Follows good coding practces related to mult
processing shown during the lectures. Able to handle an arbitrary number of processes without need to modify code. Above demonstrated as a part of
meetng overall functonal aims of program.
Refer to Assignment 2 D1 and D2 rubric.
D3 Lacks one or more of the ‘partal’ level criteria
documentaton not within .py fle.
Includes instructons but lacks some of the detail required for
‘complete’ level.
Refers to algorithmic complexity concepts referred to in the week 8 lecture in discussions when evaluatng different, valid approaches where algorithmic
complexity can mater (e.g. aspects that are not affected need not include algorithmic complexity discussions).
Table given in required format along with a discussion of (1) why you got those specifc results, (2) why not worse and (3) why not beter; the detail in the
three parts must be balanced.

Page 5 of 5

Leave a Reply

Your email address will not be published. Required fields are marked *