![]() | ![]() Second Summer 2007 |
Fri-Mon Aug 03-06Date: Mon, 6 Aug 2007 10:51:44 -0400 (EDT) From: Adrian German <dgerman@cs.indiana.edu> To: A202/A598 2nd Summer 2007 Distribution List <dgerman@indiana.edu> Subject: grades at the start of this last week, and a short guide Dear A202/A598 Friends, I am going to send today my current grades for your work thus far. The basic outline, as you already know, is as follows: Homework One 4.5% of the final grade and includes Lab One grade. For this assignment you had to develop the Board class in Python. Homework Two 4.5% of the final grade, also includes Lab Two grade. For this assignment you took a test, basic OOP in Python. Homework Three 4.5% of the final grade includes Lab Three grade. For this assignment you had to implement the game of Nim using a user-defined type of object, called Pile. Any version of Nim is fine, the variant described in the midterm prep materials starts with a pile of n marbles, and each move the user takes at most n/2 but at least 1. The player who takes the last piece loses. In this game you're playing against the computer; computer takes random but legal moves. Homework Four 4.5% of the final grade and includes Lab Four grade. A summary of what is Apache, how you install and maintain it, and how it (Apache) can be programmed using Python (CGI) is what is required. We spent about two labs, maybe three, with this, the installation, setting up of protected and programming CGI keeping state in hidden fields. Homework Five 4.5% of the final grade and includes Lab Five grade. Having posted the code for the entire first half of the book I said chapter 6 is a major chapter, so develop a TicTacToe game, playing against the computer and make the computer be intelligent as in chapter 6 game implementation. Variants of this, reasonably argued, are accepted. This and all the other assignments are all meant to allow you to give a personal touch to what you turn in, by getting involved in the problem specification (a bit, not much, but just having the freedom to do that is already different). This assignment as listed as Intelligent (Tic-Tac-Toe) Board, and complements Homework Assignment One. Homework Six 4.5% of the final grade and include Lab Six grade as well. In general http://www.cs.indiana.edu/classes/a202-dger/spr2007/grading.html indicates a lab is 2% of the final grade and a homework is 2.5% of the final grade so if you put these together you get 4.5%. For Homework Six you need to turn in a summary in which you need to explain how the chat that we developed in labs last week works. We had several stages, that we discussed in class then implemented in lab, over a few days. The material that this was based off is under class notes for July 11, or directly you can go to it by following the URL: http://www.cs.indiana.edu/classes/a202-dger/fall2006/ch13.pdf Homework Seven 4.5% includes Lab Seven grade. Installation, purpose and programming of MySQL. We discussed this all last week. The Python API is useful in accessing data, and give CGI a web interface to a database is easy to set up. Homework Eight 4.5% and includes Lab Eight. Chapters 11, 12 in the book. We had a Metal-led lab on this and several projects are using pygame and livewires. It's an exercise in OOP including inheritance. Write up what ever you thought was important and you learned. Just describing how the basic bouncing pizza program works (in detail) would be enough. Homework Nine 4.5% and includes grade for Lab Nine. You developed a large program in lab with Metal based on Chapter 10 in the book. So for this assignment write down the core facts about Python Tkinter GUIs, we also have posted lots of info about Python GUI in class notes, and make a statement of your understanding of this Python type of programming. Homework Ten 4.5% of the final grade covers Lab Ten grade too. Blender game kit, the Blender Summer of Documentation tutorial. Simple bowling game was developed in lecture (with Adrian) and lab (Metal). Also we have posted materials and demonstrated how the Python interpreter in Blender can be used for various purposes. Describe how using the game engine is different from usual programming (sensors, controllers and actuators are more event-driven programming in GUIs? message passing from actuators to sensors or other actuators is like regular function calling or not? etc.) and in general how Blender is different from what you learned in A201 and A202 and how that knowledge of Python is going to help you program (control) it. Midterm Written 15% of the final grade. Midterm Practical 15% of the final grade. I am very flexible on the specific goals and functionality of your programs but the code must be demonstrably yours. Copying the code for Blackjack from Chaper 9 is not acceptable. We developed a bare bones blackjack in class too and especially because of that I won't give any points if the code you turned in for blackjack is the chapter 9 code. The best you can do if you based it on the chapter 9 code is to attach extensive and explicit explanations of your changes, and of how the rest of the code works. Semester Project 20% of the final grade. I have seen a lot of these and I can already give you a lot of points of the 20% allocated here recall that we have milestones, so please update your websites with everything that's happened about the project, in blog fashion. Minute Papers 5%, based on your attendance to labs and lectures. All of this forthcoming later tonight. See you in lab and lecture a bit later today. Sincerely, Adrian German
Thu Aug 02Starting today lectures meet in the same room as the lab: LH023, MTWR 3:30-5:30pm.
Wed Aug 01Example of Nim being played with the Pile object for Homework Three
Review of what the labs and assignments have been about:
Homework Ten: Blender Gamekit, Blender Summer of Documentation Mal CanDo Tutorial Homework Nine: GUI with Tkinter, or Blender Python (one, two, three, five, six, seven) Homework Eight Pygame, livewires (chapters 11, 12) Homework Seven MySQL (coming up this Thu, last module) Homework Six TCP/IP networking, basic chat (Mon, tue this week) Homework Five Intelligent Tic-Tac-Toe Board Homework Four Apache installation, protected folder, basic CGI Homework Three Nim using Pile (design class Pile) Homework Two Basic OOP Test Homework One Basic Game Board
Tue Jul 31Mon Jul 30Today in class and lab: 1) MySQL, 2) basic Python networking.
Lab today must address project milestone.
Fri Jul 27Remember that Friday office hours are by appt., please call 219-1035 if you need me.
I could be available between 11:45am and 2:45pm, if you need me (and call).
So far (9:30am) nobody has made any appointment for today (eventually Lisa and Peter did).
Thu Jul 26Program developed in class.
Tue-Wed Jul 24-25First round of e-mail feedback sent, re: midterm and practical.
Reminder: the practical exam is due at the end of this week.
Fri-Mon Jul 20-23Here's Mark's perfect idea of a semester project: Tetris in less than 100 lines of code.
A summary of what the other projects picked are will be posted here shortly.
Here's a reference to Mark's starting point.
Fri-Mon Jul 20-23Monday will be dedicated to these Blender notes.
Thu Jul 19Relational Database Management Systems: a tutorial.
And here's a typical problem we might need to solve.
Wed Jul 18Tue Jul 17Tue Jul 17Next few labs:
Adrian will be in lab this Thu and the next, at least.
Mon Jul 16Database access from Python.
Minimal database setup for the script above.
Basic CGI scripting in Python.
Steps for installing MySQL on silo.
Basic framework for web programming.
Thu-Sun Jul 12-15Date: Wed, 11 Jul 2007 12:27:16 -0400 (EDT) From: Adrian German <dgerman@cs.indiana.edu> To: A202/A598 2nd Summer 2007 Distribution List <dgerman@indiana.edu> Subject: A202/A598 update Dear A202/A598 Friends, Just a reminder: today is the last lecture of the week. There is no lecture tomorrow, since I am leaving for a conference in Vermont (I return Sunday night). There is however a lab tomorrow, which will discuss the exams posted and/or GUIs, HTML, basic CGI or even chapter 11. Please let me know if you need any help or have any questions. Sincerely, Adrian German
Wed Jul 11A simple Python/CGI tutorial and the Python/CGI API on the official Python web site.
Basic CGI scripting in Python.
Thanks to Lisa Mallinger for this very interesting example:
for p in [True, False]:
for q in [True, False]:
print p, q, not (p or q), (not p) and (not q), not (p or q) == (not p) and (not q)
Why does it look like De Morgan's law suddenly doesn't hold any longer?
Tue Jul 10Code at the end of the lecture yesterday:
Mon Jul 9List of ports (Apache ports listed for now):
dgerman (15654, 15754) nahayes (13536, 15755) saxsom (15656, 17656) pconnor (15657, 15757) jcracraf (15658, 15758) madiekho (15659, 15759) bsdonald (15660, 15760) sgolembo (15661, 15761) twhelms (15662, 15762) djhwueng (15663, 15763) lmalling (15664, 15764) bottesen (15665, 15765) mcsadler (15666, 15766) hsapir (15667, 15767) awiriant (15668, 15768) wwyork (15669, 15769)
Sat-Sun Jul 7-8Midterm exam, the scaled-down version.
The Practical exam is posted here.
silo accounts are now accessible, tomorrow we install Apache.
Fri Jul 6Date: Fri, 6 Jul 2007 12:28:28 -0400 (EDT) From: Adrian German <dgerman@cs.indiana.edu> To: A202/A598 2nd Summer 2007 Distribution List <dgerman@indiana.edu> Subject: A202/A598 update Dear A202/A598 Friends, I have posted a Word document to serve for both the midterm and the practical exam. If you have questions about it please let me know. The document might be way too long, and so I am working on a second pair of documents, which would include only 12-18 clear questions per exam. Exams would still be take-home. I have been asked by some students about the length of the lecture which also seems to be too long (2 hours). The truth is that it may be a mistake: 8 x 4 x 105 = 3360 minutes and in a regular semester we have about 14 x 2 x 75 = 2100 minutes. In light of this I would like to use the extra 1200 minutes for extra help. Thus, I suggest the following change to the schedule: a) I come to LH102 at 3:30pm MTWR b) First 30 minutes we do an informal help session. Attendance to this MTWR, hence daily, help session is optional. c) Lecture starts at 4:00pm, and ends at 5:15pm. Minute papers and new material will be covered only after 4pm. Labs are OK as they are. Please let me know if you have any questions or concerns regarding this minor change of schedule (it's minor because it virtually isn't) and I will try to help. I will send another note individually tonight as soon as the new, shorter tests, are posted. Many thanks for your hard work so far and all the very best. Also, from now on my office hours are 11am-2pm MTWR, and F by appointment. Sincerely, Adrian German
Midterm Exam as posted yesterday.
Submit questions and programs separately: programs count as Practical Exam.
Chapter Nine code as developed in class yesterday:
We're only minutes away from finishing.
Thu Jul 5The midterm and practical exams are TAKE HOME. They will be posted today.
Code that might be used today in class (lecture) or lab.
Code (metal_) that might be used in lab today.
In setting up the two exams I will be using these files:
All of the above used to form a midterm review (unfinished, will be finished now).
Wed Jul 4INDEPENDENCE DAY. No class today. Enjoy your break.
The code developed in class yesterday.
Tue Jul 3The code as updated during lab yesterday:
Today in class we finish this exercise.
Mon Jul 2We developed the blackjack and games modules today (only started them).
Thu Jun 28The Midterm Exam will be on Thu July 12, and will be a take home exam.
The Practical Exam will be on Thu July 19, in lab.
Projects are due the last week of classes (individual appointments).
Final Exam is written, closed-book and on the semester projects.
Homework Six will be on Python Networking (building a simple chat) and Python GUI development.
Homework Seven will be on MySQL, database design and database access from the web.
Homework Eight will be on the use of Pygame and livewires to develop 2D interactive environments.
Homework Nine will be on the use of the Python interpreter embedded in Blender.
Homework Ten will be on the use of the Blender game engine for 3D interactive environments development.
Wed Jun 27Homework Three: implement a class Pile, and use it to play Nim. Details to follow.
Homework Four: install the Apache web server. Simple CGI programming with Python.
Homework Five: finish the Board class, and use it to play Tic-Tac-Toe just like in ch. 6.
Thanks to:
for their help in lecture yesterday, we're now ready for the test on Thu (in lab).
Tue Jun 26Code developed by Will York in class yesterday.
Problems solved yesterday in lab:
Homework Three, Four and Five to be announced tomorrow.
Mon Jun 25Homework One sketched, additional details will be posted today.
Homework Two will be a test (one random problem from the eight discussed last week) in lab.
Sun Jun 24In lab tomorrow we install Apache.
Here are the pages that describe the process:
If the accounts are not ready today we will try again on Thu, or next Mon.
Sat-Sun Jun 23-24Code developed in class on Thursday.
Fri Jun 22Office hours 11am-2pm today.
Wed Jun 20Code developed yesterday in class (with Jonathan Cracraft).
Wed Jun 20Code discussed yesterday in class, minute paper for today.
Thanks to Shawn Axsom for his contribution to the first lab.
Tue Jun 19Lecture notes for today posted.
Mon Jun 18Class starts today in LH102.