A. Course
Title Introduction
to Programming II
B. Semester
Credit Value 3
credits
C. Prerequisites CSCI
1102
D. Catalog
Description
This is a continuation of
1102. Students will learn programming
skills necessary for continued study in Computer Science.
Topics included: recursion, arrays, sorting and searching, pointers, abstract
data types, structures, classes, Object-Oriented programming and concepts, and
an introduction to graphical user interfaces (GUI’s).
E. General
Course Purpose
1. To
provide the student an introduction to the fundamentals of computer science and
programming.
2. To
provide ˝ of a first course in a two-semester sequence for transfer to a four
year institution.
F. Course
Information
1. Hours per Week
a. Classroom 2
b. Laboratory 1
c. Clinical
d. Other
(describe)
2. Degree for which Course is Intended AS in Computer Science,
Transfer
in Computer/Information Sciences
Certificate
of Computer Programming
3. Program of Study for which Course is Required
Depends upon specific engineering area and transfer program (i.e. May be required for some students and not for others – dependent upon the area of further study they will pursue.)
G. Learner Outcomes
1. At
the conclusion of the course, the student should be able to understand and write computer programs
employing:
a. Arrays
i. Programs that would be implemented would be direct table lookup, utilizing the subscript notation, an introduction to static data structures, and being able to store all data that is related. Investigate how strings are stored and rewrite some of the library functions to explore this concept further.
b. Elementary Sorting Concepts
i. Insertion,
Selection, and the Bubble sorts are used and analyzed to produce lists that are
sorted.
c. Introduction to algorithm analysis
i. To provide
students an intuitive feeling for run-time performance. Used when deciding
which algorithm is the best. i.e. intuitive big-Oh
analysis.
d. Pointers
i. Usage of
pointers to directly access memory locations.
How pointers and arrays are related. In addition, allow dynamic memory
management, instead of static memory management. In addition, allows the return
of arrays by using the starting address of the array. In 1107, pointers are
used extensively to create linked lists, binary search trees, heaps, etc.
e. Data Abstraction
i. Teach the
students of what the ADT (abstract data-type) can do instead of the how. Allows the programmer to use functions to accomplish the task
without having to know the implementation details. Prelude
to writing classes.
f. Structures
i. Used to create
specialized programmer-defined data types constructed from other data types.
These data types can be used read records from a file where each field of the
record is a different data type. In addition, the concept of
ii. Arrays of structures are introduced and the
sorting methods are rewritten to incorporate the usage of structures.
g. Objects
i. Creating classes
that contain the data and the methods (functions) to manipulate the data. Writing a class to perform complex arithmetic, modeling an elevator
by keeping track of its current state, or to model the game of Battleship.
Modeling the real world without having to write the same code
over and over again.
2. Understand
basic Object-Oriented Programming concepts
a. Encapsulation
i. Prevent the user
of the class from manipulating the data directly. Also called information
hiding, which is another layer of protection from malicious users.
b. Polymorphism
i. Changing the
nature of the function or operator by writing our own code. This is also called
overloading. An example would be to write a function that interchanges the data
contained between two variables. Since there are many different data types,
many functions can be written using the same name and the compiler will pick
the correct one based upon the context it is being used.
c. Inheritance
i. Extending a
class to create a new class while at the same time retaining the basic
characteristics of the original. e.g. Polygons all
have perimeter and area, but there are specialized polygons, like triangles,
squares, and rectangles. Therefore the derived classes of triangles, squares,
and rectangles would utilize the polygon class for area and perimeter
calculation.
H. ARCC Guiding Principle(s) Satisfied
Identify the learner outcomes (from G) which relate to each of the guiding principles listed below or describe how the guiding principle(s) is/are used in this course.
1. Clear Thinking 1,2
2. Effective Communication 1,2
3. Accepting Diversity
4. Ethical Decision-Making 1,2
I.
Identify the learner outcomes (from G) which relate
to each of the competencies listed below.
1. Emphasis Area
(Name): None
2. Competency
(Letter):
3. Learner Outcome
(Number - from G):
(Repeat
the above sequence as needed.)
J. Entry Level Skills/Knowledge
Choose: 1 (basic), 2 (pre-college), or 3 (college)
1. Mathematics: 3
2.
3. Writing: 3
K. Major Areas of Course Content:
1.
Object-Oriented
Programming Principles
a.
Designing
programs using objects instead of functional decomposition. Performing
Object-Oriented Design techniques and introducing students to the Unified Modeling
Language (UML) to assist in the design of the program. Students will be writing
constructors, destructors, and methods that are required for the object.
2.
Data abstraction
and Data hiding
a.
Used to formulate
classes and to prevent the data from becoming corrupted by the client software.
3.
Utilizing objects
a.
Creation of
objects and how to use them in programming.
4.
Array Processing
a.
Writing programs
involving sorting, searching, and arrays of structures. An application would be
to generate a menu interface where the user would be allowed to sort on
whatever field they would like. i.e. A grading
program, which allows the teacher to sort by test one scores or by overall
scores.
5.
Usage of pointers
a.
Using pointers to
access the contents of memory directly and to request more memory during the
execution of the program. Thus allowing arrays to be dynamically allocated.
6.
Elementary
Sorting and Searching Algorithms will be explored in the context of algorithm
analysis
a. Counting how many times a statement executes and placing
an upper bound on the result by a polynomial of the same degree or of a higher
degree. Discuss exponential time vs. polynomial time vs. logarithmic time.
L. Outcomes Assessment:
1. Learner outcomes that will be assessed (from G): All of the outcomes in G will
be assessed.
2. How information will be
collected to assess outcomes:
Students will be assessed in a variety of ways
including, but not limited to: written homework assignments ;
programming assignments with the laboratory portion of the course; programming
assignments outside of lab, periodic hour exams, and a comprehensive final
examination will be administered.
Transfer institutions will be contacted and input
regarding the preparation of ARCC students at their institution will be sought.
3. When information will be collected (i.e., each semester, yearly):
Course: Each semester.
Transfer: Yearly contact will be maintained with the
(primary) institutions to which ARCC students transfer. Verbal input and GPAs
will contribute to the assessment.
4. Measure(s) used to determine if an outcome has been achieved:
a. Written exams
b.
Programming assignments
c.
Final examination
d.
Homework assignments
e.
Class discussion
f.
Laboratory reports
Transfer:
GPAs and verbal input from transfer institution “contacts”
5. Person/Group responsible for information collection:
Course: Course instructor
Transfer: Computer Science coordinator and all faculty
teaching CS courses
6. Person/Group responsible for reviewing the resulting data:
Computer Science coordinator and all faculty teaching
computer science courses
M. Procedure for Credit by Examination:
This will be a two-step
process:
a) A
comprehensive examination will be administered
b) A
programming project will be assigned that is commensurate with the level of
expertise of an average student that has completed this course.
N. Proposed Implementation Date: Fall 2002