|CPSC 329||Software Development||Fall 2017|
The exam will be handed out on the last day of class and will be due at the end of the Registrar-scheduled timeslot (10pm on Thu 12/14). To enable studying and other preparation over reading period, the exam will be handed out in an envelope. Once you have opened the envelope, you have begun the exam and the rules below about allow resources and talking with others apply. They will continue to apply until you have turned in the exam. (Though you should continue to not talk about the exam in places where those still working on it may overhear you until the exam deadline has passed.)
It will be an open book take-home exam. It is an individual effort - you may not help, get help from, or otherwise discuss the exam with anyone else unless specifically authorized in the instructions.
"Open book" means that you can use your own notes and work, group work that you were a part of, the materials posted directly on the course website (including the course Canvas site), and the official Java documentation and tutorials linked from the main page of the course website. Other books, other people's notes, and other websites (even external websites linked to the course pages, other than the Java documentation and tutorials) are not allowed.
Part I will focus on design principles and patterns (including UI design principles). Questions might involve:
Part II will consist of a 1-2 page essay where you will be asked to reflect on specific aspects of the software development process (e.g. user goals, features, requirements, scenarios, textual analysis, CRC cards, scenarios, sequence diagrams, class diagrams, team work, unit testing, defensive programming) and/or design principles and patterns (including UI design principles). Experience is an important part of being a good developer - as you see what went right and what went wrong in each project, you have a better idea of what you need to anticipate in the understanding and design phases and a better sense of how to organize your code for a successful result. Reflecting back on what you've done is essential for gaining the full benefit of each experience.
You will not be asked about specific technical points, like working with threads, implementing GUIs, or how to do client-server networking.
An open book take home exam doesn't mean you don't have to study! While you can look up specific details of things, you still have to know when and why those things are important and you need to be sufficiently familiar with and have organized your notes and the other allowed materials so that you can find the detail you want.
For Part I, a suggestion is to compile a list of the design principles and patterns discussed in class, along with definitions and examples. Even better is to write the definitions in your own words and come up with an example or two of your own instead of just writing down the definitions and examples from class.
For Part II, a suggestion is to review the various elements of the process (many of which are listed above), making sure you know what each is, how to use it, and what its intended purpose is.