umass-cs-220.github.io
COMPSCI 220 Programming Methodology / Fall 2015
College of Information and Computer Sciences
Course Description
Development of individual skills necessary for designing,
implementing, testing and modifying larger programs,
including: use of integrated design environments, design
strategies and patterns, testing, working with large code
bases and libraries, code refactoring, and use of debuggers
and tools for version control. There will be significant
programming and a mid-term and final
examination. Prerequisite: CMPSCI 187 or ECE 242. 4
credits.
Dates and Times
Lecture 1 (Goessmann Lab Add Rm 64) TuTh 2:30PM-3:45PM
Discussion AA (Engineering Lab Rm 323) Fr 11:15AM-12:05AM
Discussion AB (Engineering Lab Rm 323) Fr 12:20PM-1:10PM
Discussion AC (Engineering Lab Rm 303) Fr 9:05PM-9:55PM
Discussion AD (Engineering Lab Rm 323) Fr 2:30PM-3:20PM
Staff
(IN) Tim Richards, richards at cs dot umass dot edu, CS 258 (Tu 12:00 - 1:30 PM)
(TA) Teddy Sudol, tsudol at cs dot umass dot edu, LGRT 220 (Th 12:00 - 2:00 PM)
(TA) Daniel Masi, dmasi at cs dot umass dor edu, LGRT 220 (Mo 10:00 AM - 1:00; Wd 11:00 AM - 2:00)
Information
Weeks
- Week 01: Introduction to Scala
01-admin-and-scala,
02-arrays-maps-tuples
- Week 02: Version Control, Documentation, and Testing
03-classes-objects-git,
04-git-packages-docs-test
- Week 03: Inheritance, Composition/Strategy, Observer
05-inheritance-composition,
composition,
06-observer-decorator,
observer
- Week 04: Factory, Singleton, Command
07-decorator,
decorator,
factory,
singleton,
08-command,
command
- Week 05: Adaptor, Template Method, State
09-adapter,
adapter
- Week 06: Introduction to Functional Programming
10-intro-fp,
cafe
- Week 07: Functional Data Structures
11-referential-transparency,
higher-order,
12-functional-data-structures,
data-structures
- Week 08: Higher-Order Functions and Functional Methods
13-fp-list,
functions,
hof
- Week 09: Exceptions in a Functional World
15-fp-error-handling,
16-fp-error-handling-2
- Week 10: Strictness and Laziness
17-strictness,
streams,
18-lazy-lists
- Week 11: Introduction to Regular Expressions
19-regex-intro,
19-words
- Week 12: Regular Expression Implementation
20-regex-scala,
20-examples,
21-regex-derives
- Week 13: Course Conclusion
Course Status, Final Grades, and Evaluations,
Course Conclusion & Final Exam
Project Assignments
- Project Assignment 01: Scala Basics
due Wednesday 9/23 at 6PM
document,
starter
- Project Assignment 02: Markov Chain
due Friday 10/09 at 6PM
document,
starter
- Project Assignment 03: Virtual Machine
due Friday 10/30 at 6PM
document,
starter
- Project Assignment 04: Boolean Expression Evaluation
due Friday 11/06 at 6PM
document,
starter
- Project Assignment 05: Lazy Functions
due Monday 11/30 at 6PM
document,
starter
- Project Assignment 06: Expression Evaluater
due Wednesday 12/09 at 6PM
document,
starter
- Project Assignment 07: Regular Expression Derivative Evaluator
EXTRA CREDIT
due Sunday 12/13 at 6PM
document,
starter
Discussion Exercises
- Exercise Assignment 01: Linked List (9/18)
due Wednesday 9/23 at 6PM
starter
- Exercise Assignment 02: Global Clock (9/25)
due Wednesday 9/30 at 6PM
starter
- Exercise Assignment 03: Functional Functions (10/23)
due Friday 10/30 at 6PM
document,
starter
- Exercise Assignment 04: Quick Sort (10/30)
due Friday 10/30 at the end of discussion
document
- Exercise Assignment 05: Sequences of Either (11/06)
due Friday 11/06 at the end of discussion
document
- Exercise Assignment 06: Regex (12/04)
due Wednesday 12/09
document
starter
Exams
- Unit Exam 01
opens Monday 10/5 at 6AM
closes Friday 10/09 at 6PM
You have 2 hours to complete the exam
Exam is on Moodle
- Unit Exam 02
opens Monday 11/2 at 6AM
closes Sunday 11/08 at 11:59PM
You have 2 hours to complete the exam
Exam is on Moodle