All due date/times are given in Central Time (US). Please make sure you translate appropriately for your locale.
Items listed with due dates are to be turned in on my.wartburg (see link at top of this page). For most assignments you will be uploading one or more files.
On the page for the assignment on my.wartburg, you will see two buttons: "upload," and "turn in." You may upload multiple files and freely add/delete to the list of files you have uploaded. However, once you click "turn in," your uploads will be frozen, and you will not be able to make further modifications.
If you have uploaded files but have not yet clicked on "turn in," your files will automatically be turned in for you when the assignment is due. For maximum flexibility, I suggest uploading file(s) for an assignment as soon as it is done, but NOT selecting "turn in." That way you have something submitted (which will eventually get turned in automatically), but you still have the ability to go in and make updates right up until the time that the assignment is due.
Homework answers can be submitted as electronic documents; PDF is prefered, but MS Office formats (.docx), and plain text (.txt) are fine. You can also write answers on paper and submit a picture file. Any standard image format is fine (PDF, jpg, png, gif, etc). Using an app like "camScanner" and collecting multiple pages into a single PDF document is strongly encouraged.
For Projects, you should always submit the code (module) file. This will be a plain text file containing the program code. For security reasons, my.wartburg does not allow direct submission of files containing program code. You will have to "zip" your files in order to upload them. You should be able to do this on your computer by right-clicking on the file and selecting some sort of "compress" option. If you need help, see these instructions for Windows 10 and MacOS . The file that you actually upload will have a ".zip" extension.
More information on this later.
This is just a reminder that our first class session on 8/27 will be via Zoom. The link for our Zoom session was in an email I sent out early this week. You can also find it under Zoom Sessions on my.wartburg.
In order to split the class into groups, I also need a little bit of information from you. If you have not already completed the initial survey, please so so ASAP. It will take about 30 seconds (really). The survey is available here.
Do a little reading about UML class diagrams. A decent place to start is the wikipedia page. We'll be discussing this notation in class on Tuesday.
This is a non-graded homework. Try your hand at creating a UML class diagram that models a chess set as laid out at the end of the (9/1) class session. This problem will be our starting point for class on 9/3.
I posted a small "case study" under Coursework on my.wartburg. You are to draw a UML diagram. You can using any drawing software of your choice (e.g. Powerpoint) but please convert any such drawings to PDF for hand-in. It is also acceptable (preferred) to just do your drawing by hand (whiteboard or pencil and paper) and then submit a picture file. Click the "Show General Information" button at the top of this page for more info on acceptable ways of submitting homework.
We'll probably be starting on this material Tuesday 9/8.
Do exercises 1.2, 1.3, and 1.4 from Chapter 1. For 1.4, you might want to do a little web research on Extreme Programming (XP).
This assignment is based on Exercises 2.3 and 2.4 from section 2.8 of the textbook. You should read those exercises before attmpting this project. In the handouts/email_exercise folder you will find two java files. One contains a (defective) implementation of an email verification method, and the other contains some testing code for the implementation.
The assignment comprises two tasks. First, translate these two files into equivalent Python code files using the unittest module and standard Python (PEP 8) coding conventions. Second, add at least one additional test method to the testing code that demonstrates a defect of the implementation.
Note: DO NOT modify the implementation to get your additional test to pass. Your goal is to show that this implementation is defective, not to correct it. You will be graded on how directly your Python code matches the original Java code (but using Python conventions).
I've posted the PayStation code that we developed today in our handouts folder under paystation_9_22.
I've posted the PayStation code that we developed today in our handouts folder under paystation_9_24.
Exercise 5.4 on page 78 of the textbook describes a small case-study in TDD development for the game of Breakthrough. You are to do this case study in Python. I have posted starter code for the exercise in handouts/breakthrough_exercise folder.
You do NOT have to keep a log book or write a reflection as suggested in the exercise. But I do want you to attempt to follow TDD principles as closely as you can, as we did in the in-class demonstration with the paystation case study. In particular, please keep an updated test list throughout the process and make sure that you add tests to your TestBreakthrough class in the order that you do your development. That way the test class will more-or-less document the series of steps that you went through. Take small steps; stay focused.
You will hand in the final version of your production and test code files as well as your final test list.
The exam is take-home, open-book, open-note with a time-limit of 90 minutes. You can get the full exam instructions from the practice exam link that I have posted under Coursework on my.wartburg. You can also use that link to practice creating and submitting answer files so that you know you are ready to do that come exam day.
The real exam will be posted at 8:00 am on 9/29. You make take it at any time during the day, but you will need to set aside a 90 minute block of time. During our normal class time (1:00 pm), I will be hanging out on our Zoom class link. So, if you choose do do your exam during that class period, you can "drop in" on the Zoom should you have any questions.
I've decided to give you the entire 100 minutes (our normal class time) for the exam. Hopefully, it won't take nearly that long.
I'm extending the deadline on the Breakthrough project through Friday (10/9) without penalty. Have a fun day!
Finish the progressive rate strategy and tests and turn in under Coursework on my.wartburg.
In class, I asked you to do 2 things before our next session:
Paystation: Think about an appropriate interface for WeekendDecisionStrategy
Backgammon: Study the Java starter code and consider how you would like this to look in Python. Pay particular attention to the testing code and think about how it would translate to Python (what would the API look like).
Note: You can find the Java code in our haanouts folder: Backgammon.
You will have a maximum of 100 minutes for the exam. Here are the instructions so that you can read them before clicking on the exam to start your 100 minutes:
The exam is open-book, open-note,open-class-websites. You may also make use of Python and the code editor of your choice. You are NOT allowed to work with anyone or consult resources external to our class. You are reminded of your obligation to the Wartburg Honor Code. Knights do the right thing, even in difficult times.
There is a 100 minute time limit for the exam. That means all work must be submitted no later than 100 minutes after you first clicked on the assignment to get to the exam link. 11:55pm (10/29) is the deadline for completion of the exam.
You must submit your work as file uploads on my.wartburg under the "Exam 2" assignment. Please do not try to squeeze your answers onto the exam page. Just create a separate file(s) with your labeled answers only. PDF files are preferred, but MS Office document format (.docx) and plain text (.txt) are also OK. Taking pictures of written work/diagrams is also fine; if you are submitting pictures, please use an app such as CamScanner or SimpleScanner to get quality PDF images. For some of the questions, you can turn in a Python program (a ".py" file); as usual, you will either have to zip ("compress") these files for submission or submit them as plain text (.txt) files.
Feel free to upload your answers as you go along. When you are all finished, make sure you go back in and double check that all your files were successfully uploaded and then submit them. Remember you must officially submit your work within 100 minutes of clicking on the assignment.
Due exercise 35.1, but using the seed code for Python available in our handouts folder. Note, you should use TDD as much as possible. You do not need to turn in a "report," but please do keep your test methods in the order in which you write them, as it helps me to reconstruct your general develpoment process.
I have posted a sample solution for Alphamon including both the code for the Game class (a combination and clean up of a couple students' work) and testing code (mostly from one student). You can find this code in our handouts folder.
The homework is to download the posted code and compare it to your own Alphamon effort; If you do not have any working Alphamon production and test code, borrow some from a classmate. You should study the two solutions and short report for hand-in. Specifically you should:
Run your test code against my jmzgame.py implementation (by changing the import in your testing code). Analyze the resulting errors and failures and for each one determine the source of the problem. Is there an error in your test? Is there a misunderstanding of the design? Or perhaps the specification was not precise, so the behavior is open to interpretation. If you have more than 6 discrepancies, you can just analyze the first 6.
Run the test code in test_alphamon_game.py against your game.py (again by changing the import), and perform a similar analysis. What is the source of the discrepancies. You may again quit after 6.
Make sure your report is word-processed, nicely-formatted, and easy to read. You should cut-and-paste the actual output from the test-runs into your report for reference. Turn it in on my.wartburg.
A full description of the options for the final project is available on my.wartburg.
Our final exam is scheduled for 11:30--1:30 Tuesday, Dec 1. To facilitate your final preparation, an outline of the exam including the instructions can be found here: exam3_outline.pdf Plese read this document today so that you are prepared for tomorrow. Notice that Part 1 contains a total of 30 T/F and fill-in-the-blank style questions with a 30 minute time-limit. You will NOT have time to look up answers to each question, but you should have sufficient time to check on a few of them if you need to.
As I indicated in class, you must take the exam during the final exam period. You do NOT have to zoom in during the exam, but I will be "parked" on our usual class Zoom session during that time to answer any questions. I wish you all a good exam!