网络编程: Advanced Internet Programming Assessment 2

Advanced Internet Programming
Assessment 2

Motivation

A professional developer does more than just write code. With enough persistence, anyone can use Google to copy-and-paste their way to an application that works. What sets a professional apart is a constant desire to learn, engage and improve on all levels:

⊿ Creating high quality code
⊿ Improving the processes of writing code
⊿ Helping others to learn and improve
⊿ Providing thoughtful insight and leadership ⊿ Contributing to the profession

This assessment is motivated by learning objectives 1, 2, 3, 4 and 7 from the subject outline.

Assessment Item

For this assessment, you will prepare a portfolio demonstrating ongoing commitment to learning and engagement.

In Appendix A of this document there is a list of task choices. You are expected complete one different task each week during the eleven weeks of semester from Week 2 to Week 12. You may take up to two weeks absence or illness without the need for special consideration (in other words, only nine tasks are required in the final submission).

There are 5 categories in Appendix A. Your task choices must include at least one item from each category (i.e., this means that it is mandatory to ‘give a presentation in class’). You cannot use the same task more than once.

You are permitted to do several tasks in a week if you wish to complete this assessment item early.

As you complete the tasks, you will create a ‘portfolio’ of evidence. This is a document containing photos, code, URLs, text or other evidence that is required by the tasks.

Submission

Submit your final portfolio as a PDF, HTML, Zipped HTML, OpenOffice or Word document to UTS Online with 7 days (i.e., 168 hours) of your last laboratory session.

Assessment Criteria
This assessment is worth 30% of your final grade and will be marked out of 30.

You will receive regular verbal feedback throughout the semester when your tutor checks progress.

The final submission of your portfolio will be assessed according to the following criteria:

Demonstration of ongoing commitment to learning (6 marks)

0

You have not demonstrated an interest in ongoing learning or you have not completed the required number of tasks (nine tasks).

2

You have demonstrated an ability to improve your own learning as it relates to the learning objectives of the subject.

4

You have demonstrated a commitment to advancing your own mastery as required to maintain relevance in advanced internet programming.

6

You have demonstrated a ‘relentless restlessness’: a deep, independent, ongoing commitment to advancing your own mastery of the skills required to lead professional developers and your own mastery of the learning objectives of the subject.

Depth of understanding and insight into principles and technologies used in advanced internet programming (12 marks)

0

Your in-class presentation or the evidence in your portfolio demonstrates mere familiarity with principles and technologies in advanced internet programming.

4

Your in-class presentation or the evidence in your portfolio explains the principles and technologies used in advanced internet programming but only demonstrates superficial insights.

8

Your in class presentation and the evidence in your portfolio demonstrates insight. You have drawn novel connections between concepts and have identified compelling comparisons/contrasts in the principles and technologies.

12

Your in class presentation and the evidence in your portfolio demonstrates a deep understanding of the principles and technologies used in advanced internet programming. You have generated original insights into challenges for the field. You have expertly critiqued the application of the principles and technologies of advanced internet programming.

Ability to engage with and communicate professionally with technical peers (maximum 12 marks)

0

Your in-class presentation and the evidence in your portfolio is confusing or uninformative.

4

Your in-class presentation or the evidence in your portfolio is somewhat unclear or has minimal informative value. You have not demonstrated an ability to communicate at the minimum standards expected in professional technical contexts as it relates to internet programming.

8

Your in class presentation and the evidence in your portfolio is mostly clear and informative. You have demonstrated an ability to communicate at a professional level as it relates to internet programming.

12

Your in class presentation and the evidence in your portfolio is very clear, succinct and informative. You have demonstrated a mastery of professional technical communication as it relates to internet programming.

Assessment Penalties

A 10% (3 mark) penalty will apply each day the final upload of your portfolio is late.

It is an important requirement that you complete at least one task from each category in Appendix A. If you do not complete at least one task from every category, your submission is incomplete. In this case, the maximum grade for this assessment will be capped at 50% (i.e., 15 out of 30).

You are required to complete a task each week, excepting two weeks of permitted absences. In other words, you will need to complete nine tasks. If you submit less than nine tasks, you will be penalized by the Assessment Criteria for ‘Demonstration of ongoing commitment to learning’. In addition, please note that a submission which is missing many tasks is unlikely to contain sufficient evidence for you demonstrate the required skills and knowledge required by the other Assessment Criteria.

As stated in the subject outline, you must add to the portfolio each week. Your tutor will be checking this (without warning) throughout the semester. If you are asked to show

your portfolio and you are missing tasks, then your tutor will record the corresponding weeks as ‘absences’.

For example:

  • ⊿  In Week 2 (starting Monday 31 July), nothing is expected: you have until Sunday to complete your first task.
  • ⊿  In Week 3 (starting 7 August), you would be expected to have completed the Week 2 task. However, if you have not completed anything, this will be noted as one absence for Week 2.
  • ⊿  In Week 4 (starting 14 August), you would be expected to have completed the Week 2 and 3 tasks. However, you have up to two weeks of absence or illness so if you have not completed any task this will be noted as absences in Week 2 and 3.
  • ⊿  In Week 5 (starting 21 August), you would be expected to have completed the Week 2, 3, and 4 tasks. If you have completed one task in Week 4, you are meeting the minimum requirements (Week 2 and 3 are absences). If you have not completed anything, then you have used all your absences and your work will be either incomplete or you will need to catch up with a late submission.
  • ⊿  and so on…

    If you have used all your absences and fail to submit work in a week then you may ‘catch up’ that item in any later week, as a late submission, subject to a 10% (3 mark) penalty per item. If you do not ‘catch up’, you will not have a late penalty but your work will be handled as incomplete and subject to the conditions of incomplete submission described earlier and also in the Assessment Criteria.

    Note: We will not penalize you for submitting late even if it would have been better to submit an incomplete submission. If late submission penalties exceed what might have been achieved with an incomplete submission, then the late work will be removed and your work will be graded as an incomplete submission.

    You are permitted to do several tasks in a week if you wish to complete this assessment item early. Late tasks will be marked subject to the late submission penalties. However, completing extra tasks more than the minimum number required cannot make up for late submissions or an incomplete submission.

    You cannot use an ‘absence’ to avoid your scheduled in-class presentation. If you miss your scheduled in-class presentation, you must supply a medical certificate or other acceptable evidence of special circumstances and arrange an alternative presentation date (otherwise your submission will be regarded as incomplete).

Absences and Special Consideration

You will not have an opportunity to resubmit work. However, there are 11 weeks and you will receive regular feedback throughout the period. You are permitted to miss two weeks due to illness, absence or any personal reasons without needing to provide evidence and still obtain full marks.

In the event of illness of one or two weeks, no special consideration is required (because two weeks of absences are already permitted).

For this assessment, special consideration will only be possible where there is evidence of illness (or similar circumstances) that last three weeks or more.

Note that it is important to backup your work regularly. Special consideration will not be entertained for data loss.

Misconduct

These activities are to be completed by yourself during the semester. Claiming credit for something you have not done (i.e., plagiarism or fraud) or for work that you have completed prior to the start of semester or for another class (i.e., self-plagiarism) will be regarded as misconduct and treated seriously.

If you are in doubt, please ask your tutor. Please refer to the faculty’s handbook for more information about Student Misconduct: http://www.uts.edu.au/sites/default/files/FEIT%20Student%20Guide.pdf

Appendix A

Task Choices

You must choose tasks from the lists below. The tasks must be chosen so that they include at least one item from each of the five categories below. Other tasks are permitted but only with the prior written approval of your tutor or the subject coordinator (you can ask on UTS Online).

You cannot use the same task more than once. Note that word counts are approximate.

Note that all activities should be conducted during the semester. Claiming credit for something you have completed prior to the start of semester or for another class will be regarded as misconduct and treated seriously.

Category 1: Class Presentation

⊿ Give a presentation in class
Give a four minute presentation to your classmates on an emerging technology relevant to internet programming. During the first laboratory session, you will be allocated a week during semester for you to present.
Hint: choose an emerging technology from the Thoughtworks technology Radar (thoughtworks.com/radar) or propose a topic to your tutor. The presentation should inform your classmates why the technology is important, what the technology does and how to get started with the technology.
If you are using slides, please prepare them in Google Slides (or similar) so that it is easy for your tutor to load it from a web browser during class and without starting Windows.
[Evidence: an in-class four minute presentation on the technology]

Category 2: Improving Quality

  • ⊿  Create automated tests
    Write meaningful unit tests for one of the deliverables in this subject. You might use a unit testing framework for your programming language, or you could use an functional test automation tool such as Selenium.
    [Evidence: the source code (or a URL with the source code) of the relevant tests]
  • ⊿  Conduct a user test
    Find a potential user of your application for Assignment 3. Have them use your application while you take notes. Do not speak while they are using the application. Just watch them and take notes.

[Evidence: Take a photo of your user using your application and 150 words

summarizing one key thing you learned from the user test]

⊿ Solve the same problem twice
Try solving the same problem using two or more different technologies or platforms (e.g., deploy the same code to Amazon, Google Cloud and Azure and compare the differences in how you approach it) (e.g., try Angular 1 and Angular 2 on a small experiment and compare the two).
[Evidence: 300 words telling us what/why you tried and comparing/contrasting the technologies]

Category 3: Personal Development and Productivity

  • ⊿  Commit streak
    Make a meaningful commit to a git repository every day for seven days in a row. [Evidence: public URL of the repository and a list of the relevant commits as either a commit log or a screenshot.]
  • ⊿  Reflect on your workflow
    What is one way that you can work more efficiently as an internet programmer? Try it.
    [Evidence: 300 words telling us what you tried and what happened when you tried it]
  • ⊿  Personal study
    Read a book or a research paper relevant to internet programming.
    [Evidence: 300 words describing what you have learned and how you will apply the knowledge]
  • ⊿  Reflect on and improve your time management
    Prepare two calendars: (1) how you spent your time last week studying and becoming a better developer and (2) how you’d like to spend your time this week improving as a developer. At the end of the week, create a third calendar (3) how you actually spent your time during the week.
    [Evidence: the three calendars, 300 words telling us what you learned from the exercise and explaining how you can make better time management a habit]
  • ⊿  Reflect on and improve your focus
    Try the pomodoro method or another focus technique when writing code. [Evidence: 300 words telling us what you tried and explaining why it did or did not help you (it is fine if it didn’t work for you—but tell us why)]
  • ⊿  Reflect on your learning
    What are ways that you can study more effectively in this subject or otherwise learn more about internet programming? Try it.
    [Evidence: 300 words telling us what you tried and why it did or did not help you (it is fine if it didn’t work for you—but tell us why)]
  • ⊿  Customize an advanced editor
    Learn a new editor with a built-in scripting language (e.g., vi, vim, emacs, vs code) and customize in a way that improves your productivity.

[Evidence: the source of your custom configuration or initialization file and 150 words

explaining why you added the customization]

  • ⊿  Read the code
    Sometimes the documentation for a technology or framework isn’t very good. Sometimes it is good but your question is too obscure. Read the source code of the technology, stack or framework to answer questions that you can’t find in the documentation.
    [Evidence: URL to the code of an open source project that you examined and 150 words explaining what you learned by reading the code that you wouldn’t have been able to learn from the documentation]
  • ⊿  Take an online course
    Complete an online course on a technology, skill or process relevant to this subject (e.g., look on Lynda.com, Udacity, Coursera or iTunesU).
    [Evidence: Screenshot of the course progress and a 200 word summary of something you learned from the course]

    Category 4: Online Community

  • ⊿  Answer a question on Stack Overflow
    Answer a question on Stack Overflow.
    [Evidence: the text of the answer and URL of the answered question on Stack Overflow and a screenshot from your logged in profile page showing that you answered the question]
  • ⊿  Ask a good question on Stack Overflow
    Ask a good question on Stack Overflow that is relevant to what you are learning. Hint: look at questions that get up-voted and down-voted to understand what makes a good question.
    [Evidence: the text of the question and URL of the question you asked on Stack Overflow and a screenshot from your logged in profile page showing that you asked the question]
  • ⊿  Write a blog post
    Write a blog post on a topic relevant to internet programming. You can post to any public platform: if you don’t have a personal homepage, consider a blogging platform such as medium.com.
    [Evidence: the URL of the blog]
  • ⊿  Video tutorial or screencast
    Create a video tutorial or screencast on a topic relevant to internet programming. You can post to any public platform.
    [Evidence: the URL of the video or screencast]
  • ⊿  Submit a commit, pull request or bug report to an open source project Contribute to an open source project. It doesn’t need to be a groundbreaking contribution. It can be a change that improves the project in some small way.

[Evidence: the URL of the contribution as well as the text or screenshot of the

contribution (in case the contribution is deleted or resolved)]

  • ⊿  Set up a personal homepage
    Set up a personal homepage with your own domain name. [Evidence: the URL of your homepage]
  • ⊿  Start an open source project
    Turn some code you have created into a reusable open-source project. It doesn’t need to be sophisticated or fancy. It might be a project with just one file. However, it should be self-contained so that somebody else might want to use it.
    [Evidence: the URL of the repository]
  • ⊿  Provide detailed feedback to a classmate
    Find a classmate who would like feedback on their project. Write at least ten bullet points with suggestions to improve your classmate’s code. Note: you should not change their code or suggest specific replacement code, your suggestions should identify problems and provide general guidance on how to improve the code. [Evidence: the name of your classmate, the URL of their repository, and the bullet points that you gave him/her]

    Category 5: Face-to-Face Community

  • ⊿  Attend a meetup or user group
    Find and attend a meetup or user group relevant to internet programming. Hint: use meetup.com or search Google by combining a technology name with ‘user group Sydney’).
    [Evidence: take a ‘Selfie’ at the event and write 200 words summarizing something you learned]
  • ⊿  Attend a Hackathon
    Participate in a Hackathon
    [Evidence: take a ‘Selfie’ at the event and write 200 words summarizing the experience]
  • ⊿  Attend a conference or seminar
    Attend a conference, seminar or workshop related to internet programming or software development
    [Evidence: take a ‘Selfie’ at the event and write 200 words summarizing the experience]
  • ⊿  Meet a professional developer
    Meet a professional developer and ask them about their work or for their advice on your career, your resume, your development stack, your code or any other question relevant to your journey as a professional developer.
    [Evidence: take a ‘Selfie’ with the developer and write 300 words telling us who you met and what you learned from talking with him/her]