I.       Common Course Outline                                               Course Prefix and Number: CSCI 1103



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 Union can incorporated, thus saving storage space. Prelude to the class concept.

                  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.          Minnesota Transfer Curriculum Emphasis Area(s) Satisfied:

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.   Reading:                 3

            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