assignments
due Tue Jan 28
FizzBuzz
- Without looking online or asking others for help, write a program to implement "FizzBuzz" :
Write a program that prints the numbers from 1 to 100.
But for multiples of three print 'Fizz' instead of the number
and for the multiples of five print 'Buzz'. For numbers
which are multiples of both three and five print 'FizzBuzz'.
- Submit your code and it's output.
- What technologies did you use to do that? Be specific about your choice of editor, language, compiler, and OS.
- If you can, do it again with a different coding paradigm (e.g. imperative, object oriented, functional, data driven, ...).
- And also if you can, do it again with a different programming language.
- Finally, discuss your programming background and interests.
due Tue Feb 4
github and words
- Read about and explore git and github.
- Add your FizzBuzz code to the MarlboroCollegeComputerScience FizzBuzz repo, either via a fork/pull or clone/merge process.
- Write a program that finds palindromes or anagrams, as discussed in class and in the notes from this week. The specifics are entirely up to you. (The point is to have one more warmup before we do the Tron competition.)
- Again, put your work into the MarlboroCollegeComputerScience, this time in the (private) "words" repo.
- I encourage you to work groups of several people on this one ... and if so, organize your github collaboration accordingly.
due Tue Feb 11
1st tron robot
- Practice your git skills as needed.
- Practice your bash shell skills as needed.
- Write your first tron robot. Tell me on the homework submission page where it is (somewhere in your home folder on csmarlboro.org, or on github, or uploaded with your homework).
- See this week's Tue and Thu notes for all the details.
- Questions? Ask!
due Tue Feb 18
tron algorithms
- If you don't have a working bot yet, get one. And tell me where it is.
- Review the performance of your bot in the 1st tourney. Write up some comments on what you do and don't like, and what you might like to try next.
- Do some thinking and/or research on algorithms to analyze a room situation, and how 'expensive' it is to calculate what you'd like to know, including
- Are you and your opponent in the same connected space?
- How big is the area that you can still move in?
- What direction should you move to head towards your opponent, ignore the walls?
- What direction should you move to get to your opponent, taking into account the current walls?
- Other board properties you'd like to know?
- Come to class Tuesday with some algorithms in mind, some code examples, and ready to discuss.
- Do you like the current API you have to interact with the board? What would be better?
due Tue Feb 25
2nd tron bot
- ... but your final bot can wait until Wed night to be finalized.
- Tourney 2 will run with bots as I find them at midnight Wed. THIS IS A FIRM DEADLINE
- This is the last round of individual bots. Please do submit one, via github or here or where it is on csmarlboro.org (including somewhere in your own folder there).
- This one will be for a grade. Please include
- a description of the algorithm
- whatever evidence you have that it does what you think it does.
- After that we're going to start working in groups, which I will assign. If you have a preference, tell me.
- Please also describe your take on the last two weeks of "build a tron bot." Frustrating? Fun? Learned anything?
- Finally, after spring break we'll be starting new projects, which can be of your choice. Be thinking about where you'd like to go. (I will have suggestions too.)
due Tue Mar 4
2nd tourney thoughts
- If you didn't do this last time, submit a writeup for what you did on the 2nd tourney. (See last assignment.)
- Discuss your own take on your team's plans :
- What software development methodology are you using?
- What algorithms or strategies are you considering?
- What tests are you planning?
- Any other thoughts ?
due Fri Mar 14
Team tourney writeup
- I've put the due date here at the end of the last week before the break, but there are earlier deadlines:
- Team robot submission deadline is WED MARCH 12 by MIDNIGHT.
- I would like each person to submit their own writeup of how the team effort went:
- What did you yourself do?
- What would you have done differently?
- Describe what you see as the best and worst parts of your team's effort.
- What are you thinking about for the 2nd half of the semester?
due Tue Apr 8
final project proposal
- Decide what your final project will be, and create a "formal proposal" that describes what you're going to do, on what schedule, and with what resources. (See the project discussion notes for an example of what I have in mind.)
- Start working on your project. Come to class on Tuesday ready to share what first steps you've taken.
due Tue Apr 15
work on your project
- Report on what you've accomplished this week.
- Come to class ready to share your work.
due Tue Apr 22
more work on your project
- continue work on your projects
- report on what you've accomplished this week
- come to class once again ready to discuss your work
due Tue Apr 29
project draft
- project first draft due
- Please do turn in as much as you can of the materials described below.
due Tue May 6
project presentations
- in class : final project presentations
due Fri May 9
final project
- Submit your final project, which should include
- a short writeup of what you did and how it went : easy, hard, difficulties, ...
- a bibliography of which online and/or offline you used
- the code and documentation
- The grade will be based on
- Is it a finished project? (works, passes tests, has supporting material)
- Is it clearly and thoughtfully explained, documented, and tested?
- Is it a reasonable sized effort for a month of work?
term grade
- a place for Jim's final comments