Project Application Development 2020
"I don't care that people stole my ideas, I care that they don't have their own"
Goal of this course
The main aim of this course is to give the student a more hands-on practical experience with programming. By implementing a larger project with a basis in material covered during the first year of the Computer Science bachelor, you will have the opportunity to gain more experience developing software, as well as showing off what you have learned during the first year.
Course in a nutshell
In this course you will implement an emulator capable of executing IJVM byte-code, implemented in C. The assignment is split into several smaller parts that build up to the final deliverable. During this course you will get individual guidance by a Teaching Assistant.
Structure of this reader
This course reader is split into five units. Each chapter will build on the previous chapters and introduce some new tasks.
About the grading:
- Your program has to pass all the basic automated tests. (40%)
- Your grade will depend on the number of passed advanced tests. (30%)
- Your program will be graded on style and general impression. (10%)
- You can achieve a higher grade by implementing additional functionality (30%). Note: you are only eligible for these points if you pass all the advanced tests.
- Naturally, your final grade is capped at a 10.
Based on this grading scheme it is, thus, possible to pass the course without passing all the advanced tests. Note that passing the basic tests is a hard requirement. You need at least 55% to pass the course.
During this course you will have 4 meetings with your TA to discuss the 5 tasks. For each meeting your are expected to be finished or at least well on your way with the task that you are to discuss during the corresponding meeting, as specified by the following planning:
|Meeting||Time allotted||What to discuss|
|1||1-3 days (!!)||Binaries, dreaded Binaries!|
|2||7 days||Stack up!|
|3||7 days||Controlling the Flow: the GOTO solution! and Local variables: Artisan and Organic!|
|4||7 days||Call yourself a method! and (optionally) Even more stuff?! Because why not?|
|OE||n/a||Oral Evaluation. On June 29th, unless you make other arrangements with your TA|
The precise time for the 20 minute TA meetings are available on Canvas. Please remember to to show up on time. Furthermore, let your TA know if you won't show up to a meeting. If you are absent without cancelling your meeting beforehand, we will assume you dropped the course.
The deadline is strict. Please submit your solution before Friday June 26th 23:59 CEST and make sure that it passes the automated tests. You can submit as many times as you want, so do not wait until the last minute for your first submission.
Note on plagiarism
We take a hard stance on plagiarism or any other case of fraud! We will check your submission for plagiarism using automated tools. Furthermore we use the Oral Examination as a means to verify whether you can explain what you handed in. If we cannot establish that you are the author of your submitted work, we will refrain from grading your submissions and forward the case to the examination board. Avoid these situations by 1) not sharing your code with fellow students 2) not using code that you found online.
2020 Remote Course
For PAD 2019-2020 everything will be organized remotely. We have tried to replace all the in-person support you normally get with remote sessions. This means that the lectures will be pre-recorded, your individual meetings with your TA will be held through Zoom, and the Q&A session will be held through Zoom. To make optimal use of your designated meeting time with yout TA, make sure that you have a working setup before your first meeting.