CIS 221:
Software Development Using Components
Description
Component-based software from client programmer's perspective;
intellectual foundations of software engineering; mathematical
modeling; specification of object-oriented components; layering;
testing and debugging layered operations.
Level and Credits
- U 4 (three one-hour lectures, one one-hour lab)
Prerequisites
- Math 151 (221H: Math 161H or Math 190H); CIS
201 or EG 167 or CIS placement level A
Quarters Offered
- Au, Wi, Sp, Su (221H: Wi)
Course Coordinator
- Bruce Weide (tel: 292-1517; e-mail: weide@cis.ohio-state.edu)
General Information, Exclusions, etc.
Objectives
-
Master Using basic C++ control structures and statements, the basic
classes Boolean, Character, Integer, Real, Text, Character_IStream,
Character_OStream, and related RESOLVE/C++ principles for clients,
to write simple main programs and layered implementations of operations;
- Be familiar with
using the computing environment (operating system,
tools, language system, etc.) to complete lab assignments and to communicate
electronically with others;
- Be familiar with
using the GUI_Catalog, Id_Name_Table, Least_Cost_Path_Machine,
and Natural_Number classes to write simple main programs and layered
implementations of operations;
- Be familiar with
using simple recursion to write layered implementations
of operations;
- Be familiar with
using simple predicate calculus assertions involving
mathematical integer, string, and tuple models to understand and reason
about an operation's behavior;
- Be familiar with
using simple techniques to test layered implementations
of operations, including developing and carrying out simple specification-based
test plans;
- Be familiar with
using simple techniques to debug layered implementations
of operations;
- Be exposed to
writing simple predicate calculus assertions involving
mathematical integer, string, and tuple models to describe the intended
behavior of an operation;
- Be exposed to
using induction arguments to establish the correctness
of recursive implementations of operations;
- Be exposed to
using simple loop specifications to reason about loop
behavior.
Texts
- Weide, B.W., Software Component Engineering,
OSU Reprographics, 1998.
Topics (Readings) (Number of Weeks)
- Mechanics: World-Wide Web, editing, UNIX file system,
simple UNIX commands. (Handouts) (0.5 weeks)
- Framework; philosophical and intellectual focus
of computer science and engineering; natural vs. formal
languages; "systems" thinking;
mathematical modeling and object-oriented thinking.
([W98] Chapters 1-4) (1.5 weeks)
- C++ language and RESOLVE/C++ discipline:
objects;
procedure vs. function operations;
statements (object declaration, operation declaration,
operation definition,
operation call, swap, assignment,
if, if-else, if-else-if, while, select, return);
RESOLVE/C++ built-in types
(Boolean, Character,
Integer, Real, Text, Character_IStream, Character_OStream);
simple terminal and file I/O.
(Handouts, [W98] Chapter 5) (3 weeks)
- Reasoning about program behavior from specifications; testing;
how to write and reason about loops; how to write and
reason about recursive operation bodies.
([W98] Chapter 6, Handouts) (2.5 weeks)
- Classes; Id_Name_Table and Least_Cost_Path_Machine components;
checks relation; extends relation;
GUI and Natural_Number components.
([W98] Chapter 7, [W98] GUI, Id_Name_Table,
Least_Cost_Path_Machine, Natural_Number) (0.5 weeks)
- Review and exams. ( ) (0.5 weeks)
Representative Lab Assignments (week)
- Home page (week 1)
- Calculate change (week 2)
- Newton iteration (week 3)
- GUI vending machine (week 4)
- Least_Cost_Path_Machine client (weeks 5-6)
- Additional operations for Text (weeks 7-8)
- Natural number calculator (week 9)
- Natural number extension and algorithm improvements
(week 10)
Assessment mechanisms (percentage)
- Midterm Exam (20%)
- Final Exam (30%)
- Several Homework Assignments (10%)
- Closed Lab Assignments (10% - 10 @ 1% each)
- Lab Assignments (28% - 8 @ 3.5% each)
- Class Participation (2%)
2% |
Important Note: A passing grade on the final exam is required
in order to receive a passing grade for the course.