The specification of language syntax and semantics. A survey of actual programming languages, typical high-level language constructs, and features unique to each. Both algorithmic and functional languages are considered. The seminar acquaints students with many of the ethical issues faced by professionals in the computing field. Students are required to formulate and support positions on these issues, both orally and in writing.
Readings explore differing opinions and issues of controversy among computer professionals.
Topics covered include requirements analysis, functional specifications, prototyping, verification and validation, design methodologies, modularization, data abstraction, information hiding, programming environments, testing and debugging, life cycle models, project management, and configuration management. A major team-oriented software development project provides students an opportunity to apply the concepts learned. The major topics include data flow analysis, the systems development life cycle approach, qualities of good system design, and design strategies. This course also introduces students to structured analysis and design techniques. The major topics include transmission media, error detection, routing, client-server models, remote execution, and encryption.