Software Development (CSC 321 2016F) : Handouts
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [Teaching & Learning]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Outlines]
Reference: [Slack] [Ruby@CodeCademy]
Related Courses: [Rails Tutorial] [CSC 321 2016S @ EdX] [CSC 321 2015S (Davis)] [CSC 321 2016S (Rebelsky)] [CSC 322 2016F (Rebelsky)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker]
This is an approximate schedule. Expect topics and dates of topics to change. (I will try to keep due dates of assignments the same.)
| Week 01: Getting Started | |||||
|---|---|---|---|---|---|
| Date | Topic | Reading | Lab | Work Due | |
| 01 | 26 August 2016 | An Introduction to the Course Quiz. What is this course? Course goals. Why this course? Course structure. (Possibly) setup time. | |||
| 02 | 29 August 2016 | Getting Started with Ruby Ruby Some Ruby Problems | Reading: SaaSbook 3.1-3.4 | ||
| 03 | 31 August 2016 | Deploying Rails Applications Setting up your first Rails app. | Reading: Hartl 1 | ||
| 04 | 2 September 2016 | Your First Rails Application Activity: Building a toy app. Debrief. | Reading: Hartl 2 | ||
| Week 02: Software Engineering Basics | |||||
| Date | Topic | Reading | Lab | Work Due | |
| 05 | 5 September 2016 | A Static Site Reflections on chapters 1-3. Testing. Starting our primary application. | Reading: Hartl 3 | ||
| 06 | 7 September 2016 | An Introduction to Software Engineering Planning for Client Meetings. Software Engineering: An Overview. Some Important Terms. Thoughts from the Readings. | Reading: SaaS 1, 10.1-10.2, 7.1, 7.3-7.4 | ||
| 07 | 9 September 2016 | Ruby, Revisited What is software engineering? Why study software engineering? (Revisited) A few more notes on Agile programming. Web technologies. Ruby-isms and Rails-isms. | Reading: SaaS 3.5-3.8; Hartl 4 | ||
| Week 03: Modeling | |||||
| Date | Topic | Reading | Lab | Work Due | |
| 08 | 12 September 2016 | User Stories User stories. Sample user stories. Some Ruby-isms. (If there's time.) | Reading: SaaS 8.1-8.2 | ||
| 09 | 14 September 2016 | Extending Your Rails Application (1) Work time. | Reading: Hartl 5 | ||
| 10 | 16 September 2016 | Modeling Basics Models. Databases. Migrations. And more. | Reading: Hartl 6 | ||
| Week 04: Rethinking Development | |||||
| Date | Topic | Reading | Lab | Work Due | |
| 11 | 19 September 2016 | Modeling, Continued Data Modeling. Exercise: A Sample Database Design. Analysis. Revisions. | |||
| 12 | 21 September 2016 | Software as a Service DRY. Thinking about SaaS. Rails, revisited. | Reading: SaaS 2, 4 | ||
| 13 | 23 September 2016 | Behavior-Driven Development TDD Basics. BDD Basics. Cucumber Basics. A Cucumber Example. Cucumber in Practice. | Reading: SaaS 7 | ||
| Week 05: Professional Responsibilities | |||||
| Date | Topic | Reading | Lab | Work Due | |
| 14 | 26 September 2016 | Codes of Ethics Professional Codes of Ethics. Additional Discussion Topics (suggested by students). Agile and Ethical. | Reading: Don Gotterbarn, Keith Miller, and Simon Rogerson (October 1999). Computer Society and ACM approve Software Engineering Code of Ethics. IEEE Computer 32(10): 84-88. https://www.computer.org/cms/Computer.org/Publications/code-of-ethics.pdf. Peter G. Neumann (February 2015). Inside Risks: Far-sighted thinking about deleterious computer-related events. CACM 59 (2): 30-33. http://www.csl.sri.com/users/neumann/cacm235.pdf. ACM Council (October 1992). ACM Code of Ethics and Professional Behavior. http://www.acm.org/about/code-of-ethics/. | ||
| 15 | 28 September 2016 | Test-Driven Development Review: Buggy code. Loop invariants. Surveillance. | Reading: SaaS 8 | ||
| 16 | 30 September 2016 | Legacy Code Global surveillance. Legacy code. Smells and refactoring. Some examples. | Reading: SaaS 9, 10.4-10.9 | ||
| Week 06: Miscellaneous | |||||
| Date | Topic | Reading | Lab | Work Due | |
| 17 | 3 October 2016 | Refactoring | |||
| 18 | 5 October 2016 | Codes of Ethics, Revisited Writing prompt. Codes of ethics, revisited. | Reading: Arvind Narayaan and Shannon Vallor (March 2014). Why software engineering courses should include ethics coverage. Communications of the ACM 57(3): 23-25. http://dl.acm.org/citation.cfm?id=2566966. Neil McBride (August 2012). The ethics of software engineering should be an ethics for the client. Communications of the ACM 55(8): 39-41. http://dl.acm.org/citation.cfm?id=2240250. Deborah G. Johnson (October 2008). Computer experts: Guns-for-hire or professionals? Communications of the ACM 51(10): 24-26. http://dl.acm.org/citation.cfm?id=1400190. | ||
| 19 | 7 October 2016 | UML | |||
| Week 07: Wrapup | |||||
| Date | Topic | Reading | Lab | Work Due | |
| 20 | 10 October 2016 | Design Patterns for SaaS Refactoring, revisited. Design patterns. The GoF list of patterns. | Reading: SaaS 20 | ||
| 21 | 12 October 2016 | Good Design, Revisited Design Patterns. The GoF List. Some Questions. SOLID. | Reading: TBD | ||
| 22 | 14 October 2016 | Course Wrapup The subject matter(s) of the course. Debriefing. EOCE. | |||