December 6, 2016
- Computer Science Education Week, this week, includes the Hour of Code event
- Interested in being an Undergraduate Teaching Assistant (UTA)?
- The Final Demo will take place on Wednesday, December 14 from 7-10pm, in our classroom, Gross Hall room 103:
- Each team will have 20 minutes to present
- Focus your presentation on demonstrating the functionality/flexibility of your project rather than its design
- If you will NOT be attending this demo, you MUST:
- Email me a video BEFORE then that shows:
- a demo of your part of the project
- an explaination of the design of your part of the project (how it is open to extension, how it contributes to the whole project, and at least one issue you tackled to make it a "good" design)
- Email me a video BEFORE then that shows:
- Current Readings
- JUnit Test Infected by K. Beck
November 28, 2016
- Current Readings
- Small Pieces, Loosely Coupled from The Art of Unix Programming by E. Raymond
- Cathedral and Bazaar by E. Raymond
- The Free Software Definition by R. Stallman
November 11, 2016
- Current Readings
- Scrum Guide by Ken Schwaber and Jeff Sutherland
- Why Users Like Mindless Choices from Don't Make Me Think by S. Krug
- Who Are You Calling A Dummy? from Why Software Sucks by D. Platt
November 3, 2016
- Current Readings
- Understanding Games
- The Structure of Games by T. Fullerton from Game Design Workshop
- I Have No Words and I Must Design by G. Costikyan
- Comparing Computer and Traditional Games Using Game Design Patterns by S. Loh and S. Soon
- Understanding Games — a series of four games about game concepts!
- Designing Game Engines
- JavaFX Game Loop by Steven Van Impe
- The Magic of Data Driven Design by S. Rabin from Game Programming Gems
- Teaching Design Patterns Through Computer Game Development by P. Gestwicki and F. Sun
- General Framework Design
- What is a Framework? by M. Clifton
- Introducing OO Frameworks by Taligent
- Framework Design Guidelines by K. Cwalina
- Understanding Games
- Upcoming Deadlines
- VOOGASalad, Team Choice, due by end of class Tuesday, November 8
- VOOGASalad, Design Plan, due Sunday, November 13
- VOOGASalad, Basic Implementation, due Tuesday, November 22
- VOOGASalad, Team Sprint Report, due Tuesday, November 29
- VOOGASalad, Midpoint Demo, due in-class Thursday, December 1
- VOOGASalad, Complete Implementation, due Sunday, December 11
- VOOGASalad, Example Games, due in-class Wednesday, December 14
- VOOGASalad, Analysis, due Sunday, December 18
October 29, 2016
- Current Readings
- Designing a Document Editor from Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
- Introducing OO Frameworks by Taligent
- The Structure of Games by T. Fullerton from Game Design Workshop
October 22, 2016
- Current Readings
- From STUPID to SOLID by William Durand
- Foundation Patterns by Dwight Deugo
- Big Ball of Mud by B. Foote and J. Yoder
October 17, 2016
- Current Readings
- Functional Programming in Java by Venkat Subramaniam
- Lambda Expression Tutorial from the Java Tutorial
- Why Lamba Expressions by Cay Horstmann
- Mapreduce by J. Dean and S. Ghemawat (Google's classic paper that restarted interest in FP)
- Introduction to Functional Programming in LOGO and Python
October 11, 2016
- Technical Readings
- How to Use Model-View-Controller (MVC) by S. Burbeck (the original paper) and
more modern discussions: An Aggregate Design Pattern and What is it Really? - Guide to Regular Expressions in Java by L. Baxter
- Reflection from the Java Tutorial
- Enumerated Types from the Java Tutorial
- Generics from the Java Tutorial
- How to Use Model-View-Controller (MVC) by S. Burbeck (the original paper) and
October 6, 2016
- Upcoming Deadlines
- SLogo, Team Contract, due Thursday, October 6
- SLogo, Plan, due Thursday, October 13
- SLogo, Basic Implementation, due Sunday, October 23
- SLogo, Team Sprint Report Form, due Monday, October 24
- SLogo, Complete Implementation, due Tuesday, November 1
- SLogo, Analysis, due Sunday, November 6
October 3, 2016
- Current Readings
- Josh Bloch on API Design
- Designing with Interfaces by B. Venners
- JavaFX Properties and Bindings from the Java Tutorial
September 26, 2016
- Current Readings
- Introduction to Design Patterns (Chapter 5 from Design Patterns Explained) by A. Shalloway and J. Trott
- Why Java Interfaces Are So Very Cool (Chapter 17 from Java Garage) by E. Hewitt
- Commonality Analysis (Chapter 2 from Multi-Paradigm Design for C++) by J. Coplien
September 19, 2016
- Current Readings
September 12, 2016
- Current Readings
- Open Closed Principle by Robert Martin
- Object-Oriented Software Development: Inheritance and Polymorphism by Rick Mercer
- Big Refactorings from Refactoring by Martin Fowler
- Upcoming Deadlines
- Cell Society, Team Contract, due Thursday, September 15
- Cell Society, Plan, due Saturday, September 17
- Cell Society, Basic Implementation, due Sunday, September 25
- Cell Society, Team Sprint Report Form, due by Tuesday, September 27
- Cell Society, Complete Implementation, due Sunday, October 2
- Cell Society, Analysis, due Wednesday, October 5
September 5, 2016
- Current Readings
- OO in One Sentence by Andy Hunt and Dave Thomas
- Decomposition by Nick Parlante
- Extract Class from Refactoring by Martin Fowler
August 30, 2016
- Welcome to CompSci 308!
- This website complements what you experience in class.
- Course announcements will be posted on this web page and may also be announced in class.
- This course is essentially paperless, with preference to electronic distribution of all materials through this site.
Thus you are responsible for all material that appears here and should check for updates frequently.
- Current Readings
- 7 Ways to be a Better Programmer by A. Jollymore
- Code Smells by K. Beck and M. Fowler
- JavaFX Architecture Overview and a Starting Example
- A Visual Guide to Version Control and to GIT specifically (or as videos)
- Upcoming Deadlines
- Install the latest version of Java 8 SE JDK and Eclipse IDE for Java Developers as soon as possible
- Complete this online survey about your weekly availability as soon as possible
Teams for most projects will be chosen for you based on you schedule compatibility. - Bins Lab, due by the end of class, Thursday, September 1