Projects and Homeworks

Weekly Essays based on Readings
Homework 1 - Reflection on CS15
Homework 2 - Adapt Another University
Project 1 - A Thoughtful Program
Final Project - Useful Tools
Final Paper - Research Paper in Computer Science Education

Weekly Essays based on Readings

Each week Robert will be giving us readings and websites to review and by the following week, we will create a reaction paper and put it up on the web for him to read and grade. All of the readings and reaction papers will be about various topics in Computer Science Education.

Reflection on CS15 (Out: January 26; Draft: February 2; Final: February 9)

The idea is to understand what went well and what went wrong with CS15 this year. They will use the questionnaires as well as their own opinions. Groups will write a document on each issue of CS15 in terms of the TAs as well as the students. Questions that will be answered: What was the goal? How was it implemented? Likes/Dislikes? Works/Doesn't work? What would you change? What should stay the same? The idea is that people need to separate the symptoms from the disease (i.e.: cheating is a symptom; is the collaboration contract the disease? what is the disease?).
You cannot work on fixing things without understanding the problems. Here we will document all of the pluses and minuses that occurred this year.

Adapt Another University (V1: Out: February 9, In: February 16; V2: Out: February 23; In: March 2)

Although Brown has developed a strong system, there is much to be learned from looking into how other schools do things and why.
Each group will pick two schools who have strong computer science systems and research how they go about their program and why. In addition to looking on the web, the group will contact the professors and get direct information. The group will then develop a document declaring the positives and negatives of how a school's computer science program works. In addition, the person will think about how CS15 and the TAs would benefit from such changes. In no way do we want to adopt everything from a different school but do they have a great project?
Maybe this should be done three different times throughout the semester with a different prospective. Thus, only one school at a time. 

A Thoughtful Program (Out: February 9; In: February 23)

Every year, new students complain that they don't understand how to go about programming. The only examples they have are the ever increasing lecture slides and SnowPerson (plus the support code which is very frustrating for new students). In an attempt to give students more working code to use as a reference, the GISP is going to do "A Thinking Program."
The GISP will split up into groups and write the following programs, each equivalent in difficulty to an already existing program:
Not only will the class members write the actual program, they will comment each useful step as they go (i.e.: why they are writing things, not just what it does). New concepts of the program will be explicitly commented. Full class headers will be there in the manner that the CS15 TA's would like to see. In addition, alongside each program will be a piece of "literature." In formal English, the writer of the program will explain what thoughts went through her mind as she programmed the example code. In addition, in the "literature," she will explain how her code flows (i.e.: how to read the code - breadth first? depth first? applet first, etc.), what design decisions were necessary, what problems she had, etc. A valid README would be written with the code and "literature."
There could be many uses for such example code. The code can be given to the students to use while writing programs and trying to understand lectures. Sections could use the example code to explain concepts of programming. Andy could use it during lectures. Homeworks could be developed asking questions about the example code and thought process.
Although there are suggested programs, project groups can propose another project and implement that instead. The group must propose the different program and finish it by the deadline.

Useful Tools (Out: February 23; Design: March 9; In: March 20; Presentation: April 6)

Although each project has its own reasoning, all of the projects have a major goal in mind: Develop a tool that will help both students and TAs.
The following projects are only suggestions. They can be done in groups or individually.
Individual Projects:
3D Graphics Package
This group will design and create a 3D Graphics Package using Java3D to be used for Adventure (and 3D Tetris for the students that want this). In addition, this group will fully document 3D, both the actual code and create a guide. They will also create example code for the students to look at (simple things like we used for Latte).
Reasoning: Although swill code has worked in the past for Adventure, it is frustrating for both students and TAs. In addition, it is very difficult to have the owner of 3D not involved in CS15 and disinterested in helping others learn the package. The group working on 3D must be willing to fully explain the package to whoever is involved in CS15 if they are not involved in the course themselves. In addition, the documentation should be so detailed that if a bomb drops on the 3D group, another individual could pick up the package without difficulty.
Documenting GP Graphics Package
This group will work intimately with Robert in order to understand how GP works. After the group reaches a fairly adequate understanding, they will go through and comment the package, both classes and packages. In addition, they will create a GP Guide similar to the guide mentioned for 3D. They will also create example code (some of which is started in the test/ directory).
Reasoning: When Robert and Brian left, they took with them a great deal of information about GP (the graphics package always used by CS15). No one feels that they understand GP and it is unreasonable to not have knowledge amongst the TA staff. The level of detail and willingness of group members should also mimic the proposal for 3D.
Rethinking Homeworks
This group will review the benefits and negatives of our current homeworks and fully document this. They will investigate what other schools do regarding homeworks and attempt to implement them into the Brown curriculum. Possibilities include: small coding exercises, using project 1, ungraded web-based validifiers for beginners (how well do I understand ___?). This group will finish the entire set of homeworks including the grader sheets, correct answers and assignment guides for TAs.
Reasoning: Homeworks should cease to be viewed as necessary evils but rather as learning tools. If students are able to receive quick feedback regarding their performance (i.e.: the web based diagnostic idea), beginning students would be able to measure how well they are understanding basic ideas and programming concepts.
Rethinking Sections
Again, this group will research what other schools do before starting the project. This group will develop extended examples and group exercises for sections. In addition, they will prepare a complete set of section lecture slides.
Reasoning: Although sections went better this year, they were still rather hokey and disjointed. In addition, TAs do not have time to prepare adequate lecture foils for section during the semester. Students would benefit from a well structured section.
TA Camp
This group will research how other schools teach TAs (those schools who have TAs). They will also learn as much as possible about learning styles and educational issues that students may have in the course (including minority issues). The group will prepare a full-fledged TA Camp.
Reasoning: TA Camp is a hodge-podge of whatever the HeadTAs can come up with to teach based on what they liked or did not like in the last year. TAs are not just interactive books. TAs should be taught how to teach as well as know the material that they are teaching. In addition, they need to completely understand how to communicate and work with others.
Standardizing Grading
This group will research how other schools do grading (both for homeworks and projects), gathers student code for each program and document what is good and bad, develop extremely detailed grader sheets and advisor programs for TAs. In addition, this group would develop a discussion section for TAs for TA Camp.
Reasoning: New TAs often do not know how to grade programs and the result is that students do not get the type of feedback that they should get with a graded assignment.
This group will research not only how other schools teach and have their students implement data structures as well as review how teaching data structures affects other classes in the department. New ideas that can be garnered can be weighed against the current style of teaching data structures with hopes of finding a stronger approach to the subject. Hopefully plans for a new assignment can be garnered from this excercise. If such an assignment can be done, this group will redo PizzaDex and develop a demo, grader sheets and handout.
Reasoning: Every year we get lambasted about PizzaDex. Last summer, Jon attempted to develop an alternative to it and failed. PizzaDex is frustrating for both students and TAs. The students have difficulty debugging and working with PizzaDex.
Book Chapters
This group will redo the book chapters as they currently exist. They will come up with better examples as well as create figures for the book.
Reasoning: Even in chapter forms, the book is tremendously helpful for the students. To make it a more solid piece of work, it would be good to revamp it.
All of these programs will help CS15.

Research Paper in Computer Science Education (Out: March 30; Idea Presentation: April 13; Outline: April 20; Draft: April 27; Presentation: May 11)

There is a huge debate over how to teach computer science and it is an extremely interesting topic.
Either individually or in a group, members will write a research paper on some topic in Computer Science Education. Ideas can be developed by reviewing paper in SIGCSE as well as researching what other organizations are doing (including MIT's "Rethinking CS101"). The result will be a 5-8 page paper (single spaced) paper (with the hope that one could be submitted to SIGCSE).
One of the STC missives is to research education. The paper presentations could be presented over televideo to the other four sites.