CIS 320-- Introduction
Review of CIS 220
The factors that differentiate a real programmer from someone who can write a computer program are practice and experience, a background of technical and theoretical knowledge, and expertise in the use of the available tools.
Students who have reached this level of the study of programming realize that it involves the design of a program, its coding and documentation, its testing and debugging, and maintenance. They know that it is critical to determine exactly what a program is intended to do before they attempt to write the program. They have learned how to take a problem and analyze it to determine the inputs provided, the outputs produced, the transformations required, and the data structures needed to best implement the solution. They have learned the importance of writing code that is maintainable and modifiable.
CIS 220 introduced program development techniques by focusing on both event-driven and structured programming using a process-oriented approach.
CIS 220 used the Visual Basic programming language as a tool for exploring the process-oriented approach.
CIS 221 builds on the foundation developed in CIS 220 by introducing another program development technique and extending your knowledge of programming languages.
Advantages Offered by the Object-Oriented Approach
Procedural Languages
The procedural language features of VB were used in CIS 220. Those programs
were, in many cases, a list of instructions of how each process must be
performed when an event occurs. As programs become more complex, understandability can be improved if each process is considered separately. This is done by dividing the program into functions or subprograms. Each function should have a clearly defined purpose and a clearly defined interface to the other functions in the program. This subdivision of programs can be carried further by grouping related functions into modules, referred to above as modular design. The "divide and conquer" approach is one of the cornerstones of structured programming.
One of the primary shortcomings of traditional program development techniques is their inability to easily handle the complexity associated with today's larger programs. Object-oriented development techniques are better able to cope with this complexity by introducing several improved features. Features such as data hiding, encapsulation, and polymorphism make large programs easier to maintain and modify.
Object-Oriented Languages
Object-oriented designs are better able to more accurately model the real world. Instead of viewing the world as a set of processes, it instead views the world as a collection of entities that are characterized by certain behaviors. Furthermore, objected-oriented languages make it easier to create new data types to better represent real-world objects.
The fundamental idea behind object-oriented languages is to combine both data and the functions that operate on that data into a single unit called an object.
An object's functions provide the only way to access its data. In order to read a data item in an object, one of the object's member functions must be called. It will read the data item and return its value. The data cannot be accessed directly. It is hidden, and is safe from accidental alteration. Data and functions are said to be encapsulated into a single entity. Both data encapsulation and data hiding are key concepts in the object-oriented paradigm. Restricting changes to an object's data to its member functions insures that no other functions can alter that data, and therefore simplifies writing, debugging, and maintaining the program.
Although the current version of VB is object-based rather than completely object-oriented, this class will begin by introducing the OO concepts and the OO features of VB such as classes and collections. The class will cover additional advanced topics such as data structures.
Data Structures
Studying and using the various data structures that can be implemented in many programming languages strengthen a student's programming skills. Data structures concepts include
In addition to data structures, more advanced programming concepts will be explored.
Additional Topics
Database manipulation and ADO may be introduced, as may programs that spawn subprocesses, or that access the Internet.
Note
The goal of this class is to teach advanced programming concepts that can be applied to many programming languages, not just VB. While some Windows-platform specific techniques may be discussed, efforts will be made to not limit the applicability of course topics.
Please Report Errors in Notes Here