Genesee Course Listing
Official Course Information
Please select a Course Section from the List below or use Search for a class by Title.
Computer Information Systems Courses:
CIS221 - Computer Programming2
Catalog Description: A continuation of CIS219. Demonstrates advanced computing system concepts, problem solving and systematic program development in problems from a variety of application areas. Topics include program development, program testing and documentation, functions, files, advanced data structures, pointers, stacks, queues, linked lists, recursion, trees, sorting, searching, and object-oriented concepts. Students should plan sufficient time to complete the necessary programming projects using the college's computing facilities. Spring only. Prerequisite: CIS219.
Lecture: 4 hrs.
Course Learning Outcomes (CLOs):
The main objective of this course is for students to learn advanced computer concepts and program development using a modern, high-level language. At the completion of this course, students will:
1. Demonstrate knowledge of the concept of arrays.
2. Know the steps involved in using arrays: declaring array reference variables, creating arrays, initializing arrays, and processing arrays.
3. Develop at least three methods with arrays arguments.
4. Know how to copy arrays.
5. Write at least two programs using multidimensional arrays.
6. Sort an array using the selection sort algorithm.
7. Search elements using the linear or binary search algorithm.
8. Demonstrate knowledge of objects and classes and the relationship between them.
9. Know how to define a class and how to create an object of a class.
10. Know the difference between object reference variables and primitive data type variables.
11. Demonstrate knowledge of the roles of constructors.
12. Declare private data fields with appropriate get and set methods to make a class easy to maintain.
13. Develop at least three methods with object arguments.
14. Know the difference between instance and class variables and methods.
15. Store and process objects in arrays.
16. Use UML graphical notations in at least two cases in order to describe classes and objects.
17. Determine the scope of variable in the context of a class.
18. Use the keyword this as the reference to the current object that invokes the instance method.
19. Declare inner classes.
20. Use the String class to process fixed strings.
21. Use the Character class to process a single character.
22. Use the StringBuffer Class to process flexible strings.
23. Use the StringTokenizer class to extract tokens from a string.
24. Know the differences among the String, StringBuffer, and StringTokenizer classes.
25. Know how to use command-line arguments.
26. Develop a subclass from a superclass through inheritance.
27. Demonstrate the ability to override methods in the subclass.
28. Invoke the superclass's constructors and methods using the super keyword.
29. Restrict access to data and methods using the protected visibility modifier.
30. Declare constants, unmodifiable methods, and nonextendable class using the final modifer.
31. Demonstrate knowledge of the useful methods (toString, equals, finalize, getClass, clone and hashCode) in the Object class.
32. Know the meaning of polymorphism, dynamic binding, and generic programming.
33. Describe casting and explain why explicit downcasting is necessary.
34. Develop familiarity with initialization blocks and static initialization blocks.
35. Develop a minimum of 10 programs which solve problems from a variety of areas using object oriented methods, creating applications that use objects, and employing the language elements that are listed in 1-34 above.*
* This course objective has been identified as a student learning outcome that must be formally assessed as part of the College's Comprehensive Assessment Plan. All faculty teacing this course must collect the required data (see Assessing Student Leaning Outcomes form) and submit the required analysis and documentation at the conclusion of the semester to the Office of Assessment and Special Projects.
1. The programming environment
2. The program developing process and good programming style
5. Recursion, sort and search techniques
6. Advanced data structures: pointers, stacks, queues, linked lists, trees
7. Object-oriented programming methodology, such as class inheritance, polymorphism, and exceptions.
Effective Term: Spring 2005