Course Projects
Project Process and Documentation
All projects should demonstrate care in design, usability, and code organization. JavaScript, HTML, and CSS must be written and understood by you rather than copied wholesale from another source.
For every project, begin by working out the program in plain English. At the top of your JavaScript file, before the code, include a multi-line comment containing:
- A numbered list of the logic steps for the program
- A short project statement explaining the concept and design approach
- For projects that permit AI, the tool used, relevant prompts or chat links, the output received, and what you changed or built on top of it
All media not created by you must be clearly labeled with source and copyright information. Sloppy code, untested output, or copied work that you cannot explain will count against the grade.
AI Use Policy
This course uses a phased approach to AI. The purpose is to develop enough programming fluency to evaluate, extend, and take responsibility for AI-generated code.
Weeks 1–7: No AI
The Clickable Page and Slider/Menu Site must be completed without AI assistance. You may use course materials and Stack Overflow. Write the logic steps yourself, translate them into JavaScript, test the code, and debug it.
Week 8: AI Introduced
Claude is introduced as a coding partner during the Electronic Literature project. AI may support planning, coding, and debugging, but you must read, question, adapt, and document its output.
Weeks 9–15: Documented AI Use
AI may be used for the Hangman work, Front-End Module Projects, and Final Project when permitted by the assignment. All meaningful AI assistance must be documented. Direct, unmodified AI output may not be submitted as your own work.
Clickable Page (5%)
No AI.
Build a single web page that responds to user interaction. Clicking elements should trigger visible changes such as content updates, CSS transitions, color or style changes, animated movement, or the appearance and disappearance of elements.
Plan the logic in plain English before writing code. Your grade will emphasize clear logic, working JavaScript, purposeful interaction, and a coherent visual design.
Minimum Requirements
- At least three clickable elements
- At least three visible changes produced with JavaScript
- DOM selection and manipulation
- At least one CSS transition or animated change
- Numbered logic steps in a comment before the script
- No AI-generated code
Slider/Menu Site (5%)
No AI-generated code. You may use AI or web searches to look up documentation, syntax, or examples, but the code and design decisions for this project must be your own.
In class, we will build a simple slider template together and work through the JavaScript logic step by step. Your assignment is not to simply restyle that template. Use what you learned from the class example to design your own slider-based webpage with your own content, visual approach, and interface.
Your slider might present photography, artwork, products, places, characters, a sequence, a visual story, portfolio work, or another collection of content. Think about how the slider itself can become part of the design. The more you make the interface visually distinctive and appropriate to your content, the better.
JavaScript Goals
Be sure to include your detailed logic steps, commented out at the beginning of your script:
- Initialize the current slide index.
- Select all slide elements.
- Set up event listeners for the previous and next buttons.
- Create a function to update the display based on the current index.
- Create a function to handle navigation (previous/next).
- Explain any CSS animations included.
Your JavaScript should demonstrate that you understand how a slider works rather than simply reproducing code from the class example. You should be able to explain how your variables, indexes, functions, conditions, and event listeners work together.
Design & Content
Create your own visual design rather than reproducing the appearance of the class demo. Consider the relationship between the content, layout, typography, navigation, controls, and movement.
You might experiment with:
- Different sizes, positions, and shapes for the slider
- Full-screen or unusually cropped images
- Typography and captions as part of the composition
- Arrow placement and custom controls
- Slider dots or other indicators
- Color, borders, spacing, layering, or overlapping elements
- Different transition speeds or movement
- Images combined with text or other HTML content
- A navigation menu whose animation and visual design fit the rest of the site
Do not feel that your project has to look like a conventional image gallery. The class example gives you the underlying logic. Your job is to explore what else you can make with it.
Minimum Requirements
- Your own content and visual design
- At least three slides or content panels
- Working Previous and Next controls
- Correct slide indexing
- Animated movement or transition between slides
- A functional animated navigation menu
- JavaScript organized with variables, functions, conditions, loops, and event listeners
- Numbered logic steps in a comment before the script
- No frameworks or JavaScript libraries
- No copied or AI-generated project code
Electronic Literature (10%)
Create a work of electronic literature that uses JavaScript to select, combine, transform, or rearrange letters, words, sentences, or passages. CSS should contribute meaningfully to the reading experience.
The piece should have a clear concept. It should feel like an intentional work of writing and design rather than only a technical demonstration. Possible influences include Oulipo, generative poetry, recombinant narrative, concrete poetry, and early net art.
Possible Approaches
- Generative poem or prose system
- Recombinant narrative
- Interactive or branching text
- Text-based game or puzzle
- Visual transformation of language through CSS
Minimum Requirements
- JavaScript-generated or transformed text
- Random selection, recombination, or another rule-based process
- Purposeful typography, spacing, color, and layout
- A project statement and numbered logic steps in JavaScript comments
- Documentation of any AI assistance
Hangman (5%)
Collaborative build with individual CSS tasks.
We will build Hangman together as a class, working through the game logic step by step. The shared build will demonstrate how arrays, functions, conditionals, loops, events, and DOM manipulation work together in a complete program.
Your individual contribution will consist of assigned CSS and interface tasks completed and submitted on your own. You should be able to read and explain the existing JavaScript and extend the presentation without breaking the game.
Individual Submission
- Completed assigned CSS and interface tasks
- A functional version of the class Hangman project
- Clear comments identifying your individual work
- Any required AI-use documentation
Front-End Module Projects (10% + 10%)
Complete two independent projects after exploring the course’s front-end modules. Each project must combine at least two of the following:
- HTML5 Audio or Video
- Canvas drawing or animation
- P5.js
- An API using
fetch() - Canvas game techniques
The projects should demonstrate creative intent rather than merely showing that a feature works. You may use AI assistance, but you must document what it contributed and how you evaluated, changed, and extended the generated material.
Minimum Requirements for Each Project
- At least two front-end modules used in combination
- An original concept, visual approach, or interactive purpose
- Functional, tested JavaScript
- A responsive and readable interface
- A project statement and numbered logic steps
- Complete documentation of AI use
Final Project (25%)
Design and build an original JavaScript-driven website over the final four weeks of the course. You will work in pairs or small groups and use GitHub for version control and collaboration.
The site should reflect a genuine creative, informational, or professional purpose. It must incorporate at least two JavaScript techniques from the course and demonstrate thoughtful visual and interaction design.
Development Schedule
- Week 12: Concept, design, planning, roles, and technical outline
- Week 13: Development sprint I
- Week 14: Development sprint II, integration, and testing
- Week 15: Polish, final testing, documentation, and presentation
Project Requirements
- An original JavaScript-driven website
- At least two substantial JavaScript techniques from the course
- Thoughtful visual design, usability, and interaction design
- GitHub repository with regular, identifiable contributions
- Clear division of team roles and evidence of collaboration
- Tested, organized, and commented code
- Project statement, logic steps, and complete AI-use documentation
- Final presentation in Week 15
AI may be used actively for coding, debugging, and design ideation, but all use must be documented. Individual GitHub commit history will be considered when assessing each student’s contribution.