|Course:||Computer Concepts & Programming
CIS 221.01 & . 66 Spring 2017
Genesee Community College http://www.genesee.edu/it
|Instructor:||James R. Habermas - online
|** Dates could be changed based on questions in class ** Will be confirmed in lecutre and on Blackbround anouncements|
INTRO.TO JAVA PROGRAMMING:COMPREHENSIVE
EDITION: 10th Edition
Make sure you remember the Companion Web Site for Lang's book
Nature of the Course:
COURSE OBJECTIVES:Upon successful completion of this course, students will be able to:
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.
The following list is a detailed list of the course content: Topic by Topic Week by Week
Week 1 & Week 2 - Why Java? Java is OOP - (Introduction and Comparison of C++ to Java)
Week 3 & 4 Introduction to clases in Java
Week 3 Functions and Advanced Object Concepts
Week 4 Classes (Chapter 2 )
Week 5 Initialization
MIDTERM EXAM Tuesday March 9, 2017
Week 6 & 7 Storage Management - Dynamic Memory
Week 8 - 10 Inheritance - Extends in Java
Week 11 Understanding Swing Components
Week 12 - 16 GUI Programming Explained
FINAL EXAM April 27th 2017
THE FOLLOWING PROCEDURES WILL BE USED IN DETERMINING YOUR GRADE:
Programming assignment requirements:
Describe the goal of the program. -type the problem desciptions found in the book for the Rectangle program. (document your work)
CIS221.01 - 8:00am on Tuesday & Thursday in E124
Title of project - and more documentation.
Date Due: 02/07/2017
I encourage my students to keep current, in all the projects. The last two weeks of the semester I don't go back and grade old homework that was due. Thus, this is NOT the class for the student who thinks they can do all the homework at the end of the semester and expect to get credit for it. Each project builds on some previous knowledge, so make an effort to really learn the previous weeks goals and objectives before you come to next weeks class. This class is just not designed for the student who is always playing "catch up" with assignments.
Potential computer down time is accounted for when assigning due dates. Do not wait until the last minute to complete an assignment. All assignments MUST have internal documentation //REMARKS containing variable explanations, the purpose of program, the purpose of each variable, and the objective of each module. The more documentation in the program, the better. You could never have enough documentation. Add lots of comments in your code.
Receiving or sending cell phone calls in classrooms or library is inappropriate and impolite. Please turn them off. NO TEXTING!
Being a Genesee student requires appropriate adult behavior and respect for others. Do not walk into class late. Do not leave class early. Students who want to learn and listen to the lecture are often distracted when other students get up and walk out of the class, or come in late. Please respect your classmates and your professor.
Accessing an objectionable site (pornographic, hate speech, bomb building etc…) will result in an immediate F for the semester.
Our computer servers are for EDUCATIONAL purposes ONLY! Absolutely no web pages are allowed to be stored on our web servers that would any way generate any interest in collecting revenue, nor should any web page on our server, fake, or simulate any revenue collection. No E-Commerce activities are allowed using SUNY computer resources. Any attempt of inappropriate use of the college servers, will result in a failing grade, and possible legal actions.
Check out the link
for more information on Genesee Community College Academic Computing Policies. Any violations in any of the schools Academic Computing policies will will receive a failing grade for the entire semester.
[A] Dial 1-585-746-9331
**Instructor reserves the right to change this syllabus as required due to weather or class cancellations.
Nature of the Course
This course deals with Object Oriented concepts in computer problem-solving and programming. Computer problem-solving can be summed up in one word -- it is demanding. It is an intricate process requiring considerable thought, careful planning, logical precision, persistence, and attention to detail. In order to be really successful, you need the precision of a mathematician, curiosity of a scientist and the design skills of an engineer. For the same reason, problem solving can be challenging and exciting -- a satisfying experience with considerable room for personal creativity and expression.
It is assumed that students registering for CIS221 have already undergone a course in computer programming using the syntax of Java. This course assumes prior preparation in syntax of Java loops, decision, and arrays. Besides, in order to understand the material covered in the course, students are expected to have suitable mathematical preparation. This course is recommended only for CIS Majors or Engineering Majors or Mathematics majors and those seriously interested in computer programming. CIS 221 is a 4 credit course, with 3 hours of lecture and 1 hours of supervised laboratory work per week. It is also expected students will work in the lab approximately 4-7 hours out of class time working on their programs.
CIS 221 is a required course for CIS majors and all transferring students into a computer information degrees. Thus, the material taught is so basic that every higher level course is built on top of it. You must plan on complete mastery of the subject matter. It is simply not enough to get a passing grade. The minimum acceptable grade for the course is C. That is, if you obtain a D, when you transfer to other colleges you will have to repeat the course, before moving on to higher level courses.
One textbook reference is never enough for a course of this nature. Some textbooks are good, but have incomplete sections, not enough detail in one given area. That is the reason for two textbooks required for this course, to fill the holes or missing areas that one book may or may not have. Also, many Java and OOP resources can be found on the web. Ask your professor for addition authors, books or reference if you are having trouble understanding one given subject area of this course.
Hand-written assignments are due in class on the due day indicated (provided by instructor in class verbally). Programming assignments are completed on the computer and should have been run before the indicated due dates (given out in class). The printouts can be submitted in the first class after the due date. For laboratory assignments, due dates are not shown in the first day handout. Attendance is mandatory. Simple computer tasks to be completed during the laboratory sessions will be assigned. You should be prepared for this time and work commitment to pursue this course successfully.
Finally, you must understand that, at college level, the responsibility for learning lies entirely with the student. My responsibility is to show you the right directions and provide a structured environment conducive to learning. What you will gain out of this course is purely dependent on how eager you are to learn and how willing you are to work hard.
Assignments #5 - Movie Due February 2, 2017 @ 11:59pm