
CMU 15-539: Computer Science Pedagogy, Fall 2017
Week6 Team Reports
Critical Path Student Teams
Backend
Items Completed
- Add token expiration
- Add a development and production settings.py file
- Remove namespaces from file storage api
- Secure key storage solution (environment variable)
- Add error code for bad request types (messed up path, invalid content type, etc)
- Permissions design meeting + finish technical spec for permissions
- Create an integrated demo with frontend
- Setup CORS
- Add list files route
- Login returns previous token if one already existed
Upcoming Items
- Remove directories after file storage tests run
- Custom enum type field
- Implement permissions
- Release and create live version of file api
- Student portal speccing
UX Design
Items Remaining
- Start diving more into the non-IDE team’s work, start Student Portal
Items Completed
- Finished second iteration of the IDE
- Have first prototypes of many teacher portal screens
- Have first diagramming of flow of exercises and types of exercises
- Have first prototype of lesson plan
Upcoming Items
- Onboard new team member into UX Design, update team on new members’s style guidelines
- Set visual tone for IDE
- Make interactive prototypes for teacher portal, student portal, and weave exercises and lesson plans into the IDE
Frontend/UX Implementation
Items Remaining
- Identify the future ACE editor team
Items Completed
- Prototype Editor implementation
- Animation framework (including Canvas) integration
- Uses event dispatches between a Brython context and the main application context for communication
- Known bug: mouse and key events are not working yet. Should be a relatively straightforward fix concerning focus and/or event propagation.
- Shell input completed
- Dispatches events to the Brython context.
- LoginPage hits the backend
/users/login
endpoint. - Remaining items:
- Integrate FileStorage backend api
- Improve test coverage (currently ~0%)
- Testing framework overview (in progress) [Kenny]
- Evaluation of two main ways to organize test code.
- Training phase completed
- Prototype Register page completed
- Next step is to integrate it into the existing frontend code
- Prototype Navigation completed (involves problem statement, unit progress indicator, etc.)
- New frontend team member (switched from UX Design)
- Released Homework 6
- Sub-teams:
- Team 1: continued improvements to Navigation elements
- Team 2: continued improvements to Register page, focus on integrating backend api and productionizing code
- Team 3: create a robust layout for the Editor using and/or modifying Bootstrap.
- Notes:
- Modules should be organized according to existing directory structure
- Sub-teams should use their own integration branches, and submit PR’s to that integration branch during the development process.
- Final PR to master as a deliverable.
Upcoming Items
- Identify the future Ace editor team.
- Finish Editor alpha (i.e. fully integrate backend, figure out a few bugs)
- Complete testing evaluation
CS1: Scope+Sequence; Content
See class homeworks.
Critical Path Internal/Staff Teams
Autograder
Items Remaining
- Have ‘blue sky’ design meeting with Prof. Kosbie
Items Completed
- Homework 6 release delayed until Friday afternoon
- Meeting between team members Friday morning
- Base implementation of pixel and object-based autograding
- Example autograding of ‘Avalanche’ exercise
Upcoming Items
- Have ‘blue sky’ design meeting with Prof. Kosbie
Graphics/Animation Framework
Items Completed
- Reviewed retained objects model in multiple rounds
- Decided on use of globals + a linter instead of storing all variables as an attribute of app
- Fixed multiple bugs
- Added new features to the animation framework (groups, etc)
Upcoming Items
- Release initial version of framework
DevOps
Items Remaining
- Look into logging service for front end
Items Completed
- Key storage guidelines are added, and supported in backend, but are not in active use
- Backend-specific improvements
- Django configurations for production vs. development are now separated
- Cleaned up error handling using exceptions and custom error codes
- We forked SonarPython - unfortunate that we have to keep a fork, but necessary moving forward
- SonarPython complains about python methods that do not reference self - but, this is the idiomatic thing to do in Django, as seen all over Django and DRF examples
- SonarLint CLI does not support ignoring specific rules (!!!)
- Forking SonarPython, removing the rule, and recompiling the plugin works
- Let’s spin this positive: Now that we have a fork of SonarPython, we can add our own rules and conformance tests if needed!
Upcoming Items
- Look into custom SonarPython rules (e.g. should we enforce class-based views rather than function-based?)
Grading
Items Completed
- Graded homework 4
Upcoming Items
- Grade homework 5
Outreach Management
Items Remaining
- Go visit Ellis School and PPS Sci Tech
Items Completed
- Attended Taylor Allderdice high school to help out in APCSA and APCSP
- Attended PPS Sci Tech to help out their Python class
Upcoming Items
- Need to set up organized set of notes for these visits
- Go visit Ellis School on October 13th
Additional High-Priority Student Teams
Graphic Design Team
Merged with UX Design.
Textbook
Items Remaining
- Finalize decision on Demo Software
- Flesh out lessons and converge design ideas
Items Completed
- Met for chapter peer reviews
- Provided feedback on lessons and chapter ideation
- [More or less] Established a lesson design for consistency
Upcoming items
- Demo should be ready by next week.
Accessibility
Items Remaining
- Make a few minor edits to accessibility guideline before making it publicly available to other teams
Items Completed
- Brainstormed ways we can enforce our accessibility guidelines
- Searched for tools that we can use in the development process to check for accessibility
- Found several tools that can analyze static html to determine common accessibility issues and conformance with most accessibility guidelines
Upcoming Items
- Review UX design team’s IDE prototype for compliance with common accessibility standards
- Go over accessibility requirements for the video team
Video Team
Items Remaining
- Schedule SCS Online Teaching Kit to Kosbie demo
- Edit the full sample video
Items Completed
- Finalized the second iteration of the code animation program
- Created a script and matching code for the sample video
- Recorded the sample video
Upcoming Items
- Have a quick crash-course in OpenShot
- Edit the full sample video
- Figure out password issues in embedded Vimeo videos
Extended Framework
Items Completed
- Set a time for ExF work session to help students work through challenging problems with their APIs (Friday, 10/6, 13:30-15:30, might shift by an hour or two based on availability)
- Continued API selection
- Great Slack discussion about what makes an API “exciting”
- Members expressed frustration that they couldn’t find an API that was exciting to high schoolers by itself - even if CMU students nerd out about it
- Concluded it is much more about what we do with the API than how techincally interesting the API is
Upcoming Items
- Attend the work hours to jump start homework 6
Media Team
Items Completed
-
Researched best file formats to use to store our media content for different purposes
- Icons: PNG
- Backgrounds: JPG
-
Sprites: PNG/GIF
- GIF makes some animations easier since it can cycle between a few different images without programmer having to do it in a loop
-
Sounds: MP3
-
Added more links to our Google Drive of media content detailing where extra (similar) content can be found
Upcoming Items
- Determine what method of content distribution is best for our goals (maybe Amazon CloudFront?)
- Conduct competitive analysis of different options
CS Pedagogy/Competitive Analysis
Items Completed
- Database of places to competitively analyze.
- General Research into pedagogical methods of study.
Upcoming Items
- Compile final rubric and start the competitive analysis database.
- Find more pedagogy to present
- Compile analysis from classroom visits
- Look into IDEs