| Extended Course Description: | Catalog Course Description:
Introduces concepts of software construction beyond writing simple code to prepare students to deal successfully with larger programs. Addresses general issues of design at the routine and module level. Discusses issues related to data organization and definition, control flow, layout and style, and documentation.
Pre-requisites and Co-requisites:
INFO 152 Web Systems and Services II
Curriculum Role:
This is a core, required course for the BS in Information Technology and the BS in Information Systems and an approved elective for the BS in Software Engineering. It is taken by students in or following their sophomore year.
Course Rationale:
As more and more information systems are moved to the Internet, the use of Java as the implementation technology has become ubiquitious. This course provides a hands-on introduction to object-oriented design and Java as preparation for development of enterprise, web-enabled applications in subsequent courses.
Course Outcomes:
Upon successful completion of this course, a student will be able to:
Explain basic issues of information hiding, coupling and cohesion and apply these concepts in organizing code into routines
Apply basic principles of data typing, scope, and naming in designing the data definition and organization in a medium size program
Compare and contrast control structures and discuss common issues and problems in control structure selection and use
Construct medium size programs applying reasonable standards of layout, style and documentation in a consistent fashion
Create a Web Application using Java JSP/Servlet technology.
Become familiar with Web Server software: Apache and Tomcat
Contribution to Program Educational Outcomes:
This course contributes to the program educational outcomes as follows:
Outcome Contribution
(a) Introductory server-side programming
(b) Students design and implement computer programs using
object oriented techniques.
(c) Advanced Object-Oriented program design & implementation
(d), (f) Programming projects are done in pairs or small teams helping
students practice working together and communicating about
problems
(h) Introduction to the scope of the knowledge domain.
(i), (j) Object-oriented design and programming principles
(k) Key focus of the course.
Course Content:
Principal topics and the approximate number of weeks devoted to each are:
Review of programming language constructs and facilities (1)
Introduction to server-side programming.
Server software: Apache, Tomcat, SSH, MySQL, Linux.
Organizing code into units: routines and modules; methods and classes. Principles and applications of information hiding, coupling, and cohesion (2)
Data design. Naming of data elements, scope and persistence, data types, and complex data types. Storage and input/output of data. Selection and application of advanced data structures (2)
Selection and use of control structures; preferred approaches and common errors in control flow; recursion (2)
Concepts and examples of programming style; Commenting and external documentation for programs (2)
Professionalism in software development; Impact of size and complexity on code construction; Team standards and code ownership (1)
Presentation:
Note: Presentation method may vary somewhat from section to section.
Lectures, in-class exercises, discussion, and demonstration, and homework assignments.
Assessment:
Note: Assessment method may vary somewhat from section to section.
Evaluation is based on individual and pair homework assignments, quizzes, exams, and class participation.
|