This repository contains instructions and code for practicals for the subjects CP1404/CP5632 at James Cook
University.
Instructions are found in each prac folder.
Some code files contain # TODO
comments, which are part of the instructions for what students need to do.
- Practical 01 - PyCharm, Control
- Practical 02 - Functions, Git Version Control
- Practical 03 - Files, Exceptions
- Practical 04 - Lists
- Practical 05 - Dictionaries, Code Reviews with PRs
- Practical 06 - Classes
- Practical 07 - Classes 2
- Practical 08 - Kivy
- Practical 09 - Inheritance
- Practical 10 - Testing, APIs, Flask
and if you're really keen, here's another practical that we used to have in the subject, focused on using the os
(operating system) module:
Assessment will be based on completing the tasks up to but not including the practice/extension section. You will be marked as follows:
- 4 = Excellent response to all requirements (Always aim for this!)
- 3 = Good response to most or all requirements, but some omissions or problems
- 2 = Reasonable response to some requirements, but some significant omissions or problems
- 1 = Reasonable response to at least one requirement, or LATE submission
- 0 = Minimal or no attempt
- LATE practicals will receive 1 mark for decent work, or 0 marks for poor work. Do not be late.
For practicals that have a code review component, this part will be marked as follows:
- 2 = Good code review with well-written, thoughtful comments
- 1 = Adequate code review
- 0 = No code review, or no URL submitted
Note
This subject is all about learning best-practices and clean coding using the patterns taught.
It is important that you learn these important foundations according to the teaching of the subject.
So, to help your learning, prac work must be done in the way that we prescribe to achieve full marks.
Caution
Here are some reasons that you might lose marks for your practicals and assignments:
- Your work looks too similar to any provided solutions, code found online or answers made by services like ChatGPT
- You miss or skip part of a question (you must attempt all requirements)
- Your work includes concepts and code not taught in the subject
- Your work does not follow the core concepts and patterns - even if they work!
Each prac includes a "Deliverables" section that tells you what to submit.
- Submit your files and any requested GitHub URLs.
- Most pracs require you to submit one or more GitHub URLs.
Please type the URL/s of your GitHub practicals repository or PR at the top of the text box when you submit your practical on LearnJCU.- Your PR URLs will look something like:
https://github.com/lindsaymarkward/cp1404practicals/pull/1
- Your code review URLs will be very similar but with the other student's repo. The link should take us directly to the PR where you have done your code review.
- @Mention the appropriate student from the list in your PR.
- Your PR URLs will look something like:
- Do not zip up your files.
- Submit your practical with each file attached to one submission.
- If you need to resubmit additional attempts, you must include all files in the new submission.
- Ensure each file has the correct name, including the extension. If you don't use the right extensions, we cannot read your work in LearnJCU.
- Ensure your code is not commented-out. Only comments should be commented.
- Include a
# comment
for any parts of questions that need separate answers. E.g., if a question has partsa.
andb.
then add comments like# a.
and# b.
to make it clear where your answers are, and to show you what you need to complete. - Rewrite any
# TODO
comments as appropriate.
Selected (not all) practical solutions are provided here, in the solutions branch.
These are to help you learn by evaluating your own work and seeing our suggested ways of solving the practical problems.
Important
Please use the solutions in a mature and honest way, as helpful learning tools... only after you complete
your own work, not as something to simply copy into your own prac work. OK?
Seriously, never copy the solutions as this will not help you learn as much as doing your own coding.