Software Development (CSC 321 2016S) : 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 2015F (Rebelsky)] [CSC 322 2016S (Rebelsky)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker]
This is an approximate schedule. Expect dates and topics to change. (I will try to keep due dates the same.)
| Monday | Wednesday | Friday |
|---|---|---|
| Week 01: Getting Started | ||
| (01) 25 January 2016 An Introduction to the Course Quiz. What is this course? Course goals. Why this course? Course structure. (Possibly) work time. | (02) 27 January 2016 Deploying Rails Applications A quick overview of Ruby. Setting up your first Rails app. Reading: Hartl 1 | (03) 29 January 2016 Your First Rails Application Reflections from classes 1 and 2. Activity: Building a toy app. Debrief. Reading: Hartl 2 |
| Week 02: Software Engineering Basics | ||
| (04) 1 February 2016 A Static Site Reflections on chapters 1-2, continued. Testing. Starting our primary application. Reading: Hartl 3 | (05) 3 February 2016 An Introduction to Software Engineering The Semi-Flipped Classroom. Software Engineering: An Overview. Thoughts from the Readings. Reading: SaaS 1, 10.1-10.2, 7.1, 7.3-7.4 | (06) 5 February 2016 User Stories User stories. Exercise: Developing user stories. Additional work time: Hartl 3. Reading: SaaS 3, 8.1-8.2; Hartl 4 |
| Week 03: Software as a Service | ||
| (07) 8 February 2016 Extending Your Rails Application (1) A few Ruby-isms. HTML 5 structure. Work time. Reading: Hartl 5 | (08) 10 February 2016 Modeling Basics Models. Databases. Migrations. And more. Reading: Hartl 6 | (09) 12 February 2016 Software as a Service Learning from Video. DRY. Data Modeling. Thinking about SaaS. Rails, revisited. Reading: SaaS 2, 4 |
| Week 04: BDD and TDD | ||
| (10) 15 February 2016 Modeling, Continued A Sample Database Design. Analysis. A Revised Design. Lessons. | (11) 17 February 2016 Behavior-Driven Development Modeling Lessons. BDD Basics. Cucumber Basics. A Cucumber Example. Cucumber in Practice. Reading: SaaS 7 | (12) 19 February 2016 Pause for Breath |
| Week 05: Software Design, Revisited | ||
| (13) 22 February 2016 Test-Driven Development Review: Buggy code. Loop invariants. Code smells. Test-driven development. Code coverage. Work time. Reading: SaaS 8 | (14) 24 February 2016 Codes of Ethics Ugly Code, Revisited. Professional Codes of Ethics. Comments From 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 58 (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) 26 February 2016 Codes of Ethics, Revisited Writing prompt. Three articles. Open questions. Possible approaches to prompt. |
| Week 06: A Quiet Week | ||
| (16) 29 February 2016 Legacy Code Legacy code. Smells and refactoring. Some examples. Reading: SaaS 9, 10.4-10.9 | (17) 2 March 2016 UML | (18) 4 March 2016 Professional 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. |
| Week 07: Wrapup | ||
| (19) 7 March 2016 Design Patterns for SaaS Design patterns. The GoF list of patterns. More code smells. Reading: SaaS 11 | (20) 9 March 2016 Good Design, Revisited Reading: TBD | (21) 11 March 2016 Course Wrapup Notes on grading. The subject matter(s) of the course. EOCE. Debriefing. Final comments. |