Skip to content

sophiasysun/project-ideas

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Ideas

Submission deadline: Wednesday, Sept. 21 at 11:59pm
Critique deadline: Friday, Sept. 23 at 11:59pm

In this assignment, we'll get a head start on our projects. You'll describe four potential project ideas and evaluate the suitability of each as a project. You'll also provide feedback on someone else's project idea.

The goals are this project are to (a) start getting a sense of what makes for a good project and (b) start generating ideas for your project.

There are many different kinds of successful projects. To get a sense of what counts as a good project--and for some ideas on generating projects of your own--read this article on how to generate project ideas.

Teamwork and collaboration

Do this assignment individually: you must come up with and describe your ideas on your own. You may talk with other people, though, as you're generating ideas and describing them. If you're inspired by someone else's idea, that's totally fine! The two of you can write about the same idea (or that person can give you an idea). But once you decide you both like the idea, don't talk about it with each other until you've finished describing it. (That way, each of you can contribute your unadulterated thoughts.)

Comments / advice

  • Have fun! This is your chance to play with the idea of language and perhaps come up with something that is both surprising and obvious.

  • There's no commitment: You're not promising to do any of these things for the project (although it's certainly nice if you come up with an idea that you really like and that makes for a good project). You have until Fall Break to settle on an idea for a project, so take your time.

  • Read over the project generation page right away. If you have some ideas, jot them down. Then let things percolate in your head for a couple of days before writing them up.

  • Focus most of your attention for now on problems, rather than solutions. In particular--in most cases--it's premature to talk about an internal vs external language, compiled vs interpreted, or choice of host language. Instead, focus on the need that a language would address and why a language helps address that need.

Your four ideas

You'll come up with four (potential) project ideas and write about them. Three of the ideas are free-form, one is subject to constraints:

  1. Free-range idea #1: No constraints on this idea--it's all you! Describe this idea in free-1.md.

  2. Free-range idea #2: No constraints on this idea--it's all you! Describe this idea in free-2.md.

  3. Free-range idea #3: No constraints on this idea--it's all you! Describe this idea in free-3.md.

  4. No-computer idea: In class, I claimed that chess is a DSL. Pick something that you think could be a DSL but that you think it would take some effort to convince someone else in the class, because there's no computer involved. Describe this idea in no-computer.md.

In each of the files mentioned above, you'll find the same set of prompts. Don't erase anything from the starter file, and fill it in with your ideas and your thoughtful and well-written responses to the prompts. Be sure to answer every question in each file.

You're free to take ideas from existing DSLs, past projects, or other people, as long as you give credit and as long as your description and evaluation of the idea are your own. However, taking all your inspiration from the same source (e.g., existing DSLs or from other people) is not advised.

Grading

Good responses (i.e., responses that receive a 3) will:

  • fully respond to every prompt in the starter file, and
  • be well-written and easy to read, i.e., clear yet concise using good spelling, grammar, organization, and proper formatting, to convey a well-formed idea, and
  • where appropriate, support your thoughts with references to material from class, from the domain of your project, or from other solutions in the same domain.

Great responses (i.e., responses that receive a 4) will additionally:

  • be particularly insightful about the needs of the user and about the suitability of the idea as a CS 111 project ("insightful" means that you've clearly articulated all the angles, the benefits and drawbacks, risks, etc.), or
  • describe a particularly novel use of language to solve a problem (e.g., something that no one has thought of before), or
  • provide a fifth idea whose description would receive a 3 (to do so, create a new file with a name of your choosing, copy the questions into that file, answer the questions, and commit and push the file to your repository).

Critiques

After the submission deadline, read over and comment on your critique partners' work. Be sure to comment on each of their ideas.

Here are some suggestions for critiques:

  • What do you like about their idea(s)?
  • Was there a need that was similar to one you thought of? If so, how are your thoughts about the problems similar to and different from your partners?
  • Do you know anything about this domain? Do you know of existing DSLs that they didn't mention or do you have some expertise thinking about or writing programs for this domain? How might your experience augment your partner's thoughts on the domain?
  • Answer the questions about suitability, scope, etc. of the project.

Tasks

  • Read the assignment, including the advice for generating ideas.
  • Think / come up with ideas.
  • Write responses in each of the four files.
  • Submit your work.
  • Comment on your critique partner's work.

About

Assignment 3: generate ideas for the project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published