Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CS-1CT Free Programming Project

Specification

The Free Programming Project (FPP) provides an opportunity for students to bring their knowledge    and skills together across all the Topics of the course to develop a solution to a problem/task of their own choosing.

Key details of the FPP are as follows:

.    The deadline is midday, 12pm, on Friday of Week 11, 1st  December 2023

.    The FPP is worth 10% of the overall course grade

.    Submission is via the CS-1CT Moodle page, consisting of

o Your code file(s)

o A short (1-2 page) report

.     Lab sessions in Week 10 and 11 are committed to the FPP

Identifying a problem/task

The FPP allows you to work on a problem or task of your choosing in an Application Area that you   are personally interested in, making use of the tools or Building Blocks we’ve learned about on the course.  This might be a simulation, game, organisational software and so on that perhaps touches on your other studies or your hobbies/pastimes.

It can be hard, sometimes, to come up with these kinds of ideas.  You might simply feel overwhelmed by the idea of coming up with a project all on your own.  If this is the case (and it is for many students, so we expect this), then work with your tutor in the lab sessions to identify goals that match to your current skill level.

Scope

This project enables you to integrate your learning from all parts of the course, and as such

it is a powerful technique for deepening your learning.  Hence, use as many of the

concepts/constructs we have covered on the course as you can.  Do not, however, stray

beyond these bounds – it is a skill to develop solutions to problems using a limited toolset – all languages will provide such boundaries, and so it is a skill worth practising here.  Follow   these guidelines:

a)   Use only the Python constructs covered on the course.

b)   In keeping with Topic 2, on using libraries, you may use any library in the Python

Standard Libraries (these can be accessed from Idle – Help Menu / Python Docs

menu entry.  This ensures that we can easily run your code, while giving you the

opportunity to pick up one or more new libraries.  Document your library use clearly in your project report.

In the labs

During the lab sessions in Weeks 10 and 11, and in your personal study time in those weeks, you should work on your FPP.  This could involve:

a)    Coming up with ideas for the project

b)    Discussing these with your tutor to ensure that what you are considering is possible using the tools you have learned.

c)    Identifying a series of “ milestones” for your project.  Is there a simple version you could complete first?  Or one or more clear parts to the project that you could work on.  The aim is to break down the project into simpler tasks.  It is easier to solve simpler parts first, building your understanding, and then put them all together.

d)    Designing and implementing/coding each of these parts identified in (c) in sequence.

Submission

You should submit both your code file(s) and a short report about your project.  A template for the  report is provided on the Moodle page.  The report includes a short statement about the source of  the work submitted.  While we expect this to be predominantly your own, it is ok to reuse pieces of code from elsewhere as long as you:

a)    Clearly identify which parts you have reused from elsewhere

b)   Show us that you thoroughly understand them by explaining how they work The report should not be longer than 2-pages.

Assessment

As noted earlier, the FPP helps you to integrate all that has been learned in the individual Topics of the course.  The assessment scheme for the FPP recognises this, awarding marks for your use of concepts/constructs from each Topic, as well for readability and style of your code, the report, and the creativity you demonstrate in this project.  The following are, therefore, the categories, with weightings, on which we will evaluate your work:

1.   Simple control and data structures (sequence, repetition and selection, and variables, lists and dictionaries) – Topics 1 and 3  (20%)

2.   Complex data structures (lists and dictionaries in combination, along with more complex control structures to manipulate them) - Topic 3 (20%)

3.   Function definitions - Topic 4 (10%)

4.   Context - File processing / Turtle / other libraries from the Python Standard Libraries – Topic 2 (20%)

5.   Code readability / style (10%)

6.   Report (10%)

7.   Creativity (10%)