There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. C. A. R. Hoare (1980 Turing Award Lecture) |
Code Complete, Second Edition![]() Microsoft Press; 2nd edition (June 19, 2004) |
![]() |
Category | % | Notes |
---|---|---|
Homework | 15 | Due by class time on day assigned. Not accepted Late |
Quizzes | 10 | In class, at beginning. Weekly. No makeup without medical note. |
Individual Project | 30 | Due by midnight on day due. 5% penalty for for up to 12 hours late. One assignment may be up to 24 hours late with no penalty with instructor notification. Projects have intermediate milestones and final complete project. Each milestones are typically worth 10-20 points, while the final grade is 100 points. |
Team Project | 30 | Similar grading as above. All members are typically given the same grade unless there is evidence of certain team mambers. |
Exams | 15 | There is a traditional individual midterm, while the final is a public group presentation on the final project. |
Date | Topic | Reading / Info | Quiz | Slides | Assignment Due![]() |
---|---|---|---|---|---|
09-19 | Project preparation Questions on projects |
Chapter 3.4-3.6 - More Prerequisites | Link![]() |
Chapter 3![]() |
|
11-09 | A visit to Gund Gallary. | Code Review Project 3 | |||
12-20 | 8:30-11:30am | Final Presentation Project 5 | Evaluation Form![]() |
Final Presentation![]() ![]() ![]() |
|
10-17 | The use of Metaphor in visualization | Paper: On the role of metaphor in information visualization, What makes a good visualization![]() |
Link![]() |
Metaphor and Visualization![]() |
GIT HW |
09-12 | Makefiles
|
The Demo code for Name program The English stemmer example. C++ Web Programming ![]() |
CGI and AJAX![]() ![]() |
HTTP & CSS | |
09-21 | Project 1, Part 3: Client/Server Web Shakespeare | Project 1-3 discussion Names with Client/Server ![]() |
JavaScript and JQuery Tutorial Work
|
||
09-03 | Software Metaphors | Chapter 2 - Software Metaphors Linux Introduction PuTTY ![]() Project 0 Notepad++, BBEdit ![]() ![]() ![]() ![]() ![]() ![]() |
Link![]() |
||
09-05 | Name Data Demo, Inverted Index Project 1, Part 1: Shakespeare Index |
Map STL c++![]() Web Names Lookup ![]() NamesDemo code (github) ![]() ![]() Filezilla ![]() Project 1 Review |
|||
09-10 | Make Files, Bootstrap | Make Files, Make Tutorial![]() ![]() ![]() ![]() |
Link![]() |
Make Files![]() ![]() |
|
09-14 | Web Programming with Ajax & Javascript |
Ajax Tutorial for Beginners![]() CGI and AJAX Name Data Web Program Link ![]() github Link ![]() |
JavaScript![]() ![]() |
||
09-24 | Key Construction Decisions Project 3-3 process communication |
Chapter 4 - Key Construction Decisions Names with Client/Server ![]() |
Link![]() |
Chapter 4![]() XML Overview ![]() |
|
09-28 | Project 2: XML Lookup User Interface design |
Project 1-3, Protocol Oveview , ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Bible Example![]() ![]() |
||
10-01 | Design in Construction Processing XML using jQuery |
Chapter 5.1-5.3 Sample of C++ processing XML ![]() ![]() XML processing with jQuery ![]() ![]() XML with Bible ![]() |
Design in Programming![]() |
||
10-05 | Introduction to Git and Github | GIT Video![]() ![]() GIT HW |
Link![]() |
GitHub.pdf Introduction to git and github ![]() |
|
10-12 | Midterm break | ||||
10-15 | Project 3 - Project discussion and brainstorming. | Github example, Visualization Examples | |||
10-22 | Midterm Exam - Study Guide | Chapters 1-5, User Interface Design, GIT | Link![]() |
||
10-26 | MySQL and the World Database | SQL World Database, phpmyadmin![]() ![]() ![]() |
Link![]() |
SQL![]() |
|
10-29 | Introduction to SQL, phpmyadmin, node.js | Learn SQL![]() ![]() ![]() |
|||
11-12 | Project 5: Interactive two-user system with with Database | Project 5 | |||
11-16 | Project Team work | Team meeting to work on project ideas | |||
Nov 17-24 | Thanksgiving Break | ||||
11-28 | Defensive Programming | Chapter 8 | Link![]() |
Chapter 8![]() |
|
11-30 | Collaborative Programming | Chapter 21 | Link![]() |
Chapter 21![]() |
|
12-07 | Project 5 Team Work Day | ||||
12-10 | Personal Character | Chapter 33 | Link![]() |
Chapter 33 | |
09-07 | Project Preparation HTML, CSS |
Chapter 3.1-3.3 - Software Prerequisites Requirements Checklist CGI and AJAX ![]() |
Link![]() |
Chapter 3![]() |
Project 0 |
09-17 | Javascript and JQuery. | Javascript Tutorial![]() ![]() ![]() ![]() |
Link![]() |
Video to watch on Ajax![]() JavaScript & jQuery Tutorials ![]() |
|
09-26 | Introduction to XML | XML Introduction![]() ![]() |
Link![]() |
Introduction XML Part 1![]() Introduction XML Part 2 ![]() Introduction XML Part 3 ![]() |
Project 1, Part 2 |
10-03 | Project 2 User Interfaces |
Project 2: XML Project User Interface Design Basics ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
User Interface Design![]() |
Project 1, Part 3 |
|
10-19 | More on Visualization, Group formation | Project 2, Complete | |||
10-10 | Project 3: Data Visualization, metaphor, and visual communication. | visap2015_Cruz_WrongfullyRight.pdf - Please read before class, Visualizing empires decline 1![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Project 2, Interface Design | ||
10-08 | Visit to Gund Art Gallery |
Please meet at the Gund Gallery - be there before 12:10 if possible. Mapping Properties of Data in Visual Form ![]() |
Project 2, Proposal | ||
11-07 | Demostrations | Chapter 7 | Routine Design![]() |
Project 3 Complete | |
10-24 | Team Presentations on Visualization Plan | Show mockups, explain goals. | Project 3 Proposal | ||
10-31 | Project 4 : Phone App, MySql![]() |
C++/MySQL tutorials![]() ![]() ![]() ![]() |
Project 3 Prototype SQL HW 1 |
||
11-14 | Automatic updating webpages Project 5 Group formation |
Chat App![]() ![]() ![]() ![]() ![]() |
Project 4 - Complete![]() |
||
11-05 | Working Classes | Chapter 6 | Link![]() |
Class Design![]() |
Project 4 - Part 1![]() |
12-14 | Team work | Project 5 - Part 5 - complete system![]() |
|||
11-26 | Project 5 Concept presentations | Be prepared to demonstrate and talk about your idea Chapter 7 |
Routine Design![]() |
Project 5 Part 1: Project concept,and team formation![]() |
|
12-03 | Group Work Day | Simple Gravity Example![]() |
Project 5 Part 2: Complete Project Design using Metaphoric concepts | ||
12-05 | Project 5 presentations | Present Architecture in class | Project 5 part 3: Architectural Design![]() |
||
12-12 | Developer Testing Project 5 Working prototype demos |
Chapter 22 | Chapter 22![]() Assessment Form ![]() |
Project 5 Prototype Demo![]() |
|
11-02 | Design Practices Project examples |
node.js![]() ![]() ![]() ![]() ![]() ![]() |
link![]() |
Design in Programming![]() |
SQL HW 2- phpmyadmin |
08-31 | Software Construction Project 0: Programming in the Linux environment |
Chapter 1 Census Name Information Demo ![]() |
Software Construction![]() |
Student Information![]() |
Criteria | Excellent | Acceptable | Unacceptable |
---|---|---|---|
Documented & Maintainable (The program is well-documented with appropriate names and comments making it easy to understand.) |
|
|
|
Adaptable & Reusable (The program is modular, using abstraction well and any limitations are clearly specified.) |
|
|
|
Robust & Correct (The program provides the correct output for all possible input.) |
|
|
|
Efficient & Elegant (The program uses both time and space on the computer effectively, without losing source code clarity.) |
|
|
|
25-20% | 19-11% | 10-0% |