Syllabus
Welcome to Object Oriented Programming
Course Overview
In this course you will learn Object Oriented Programming and the Java programming language by designing and creating a simple game.
Course Objectives
- Write computer programs that utilize introductory programming concepts, including control structures, modularity, and arrays.
- Develop algorithms to solve problems, then code, test, and debug the algorithms in Java using an integrated development environment (IDE).
- Learn and use a software development processes to develop an software project.
- Develop classes, methods, and objects in Java that use aggregation, inheritance, and polymorphism.
- Define variable and method scope; recognize local, instance, and class variables and instance and class methods; write Java programs that appropriately use each of the variable and method scopes.
- Distinguish among private, default, protected, and public visibilities, and write Java programs that appropriately use each. Read and draw UML class and write Java programs that satisfy those diagrams.
- Develop, create and run unit test for the functions you develop.
- Write Java programs that read and write both character and binary data to a file.
Course Materials
Most of the course readings and materials will be available online and will be part of your weekly assignments. The following textbook is not required but may be used as an additional resource to supplement other materials provided online.
Java, A Beginner’s Guide, 6th Edition [Paperback] Herbert Schildt
Publication Date: 2014 | ISBN-10: 0071809252 | ISBN-13: 978-0071809252 | ~$24.77
Compare prices for your textbooks through the University Store Price Comparison Site. University Store Price Comparison Site
You are required to use the tools listed below as you work with your team. These tools were selected because they provide a simple way for you to collaborate with your team, your instructor and the entire class. You will be required to provide a photo image of you self to be shared with the other members of the class in your communications. See the Accounts Setup page for more information.
- A Google Account
- Google+
- Google Hangouts
- A YouTube Account
- GitHub
System Requirements
In order to succeed in the course, your computer will need to meet the following requirements. If your system does not meet these requirements you may have difficulty completing the assignments in the course:
- 64-bit processor
- Mac Snow Leopard OS or Windows 7 OS or newer
- 4 gigabytes of RAM
- A webcam
- A headset with microphone
Course Structure
This course uses a project-based approach to learn programming and the Java programming language. In this class you will be working with peers in a team to design and develop a simple game. The assignments will require that you work and communicate effectively together to accomplish the specified task. For each assignment you will first work together in a Team Programming Assignment. This will help you teach one another and to develop good communication skills. This Team Programming Assignment will serve as a foundation and example for your weekly Individual Assignment. For instance, you may be asked one week to use specific programming control structures in the Paired Programming Assignment. The Individual Assignment will use the same programming control structures. You should be able to use the code developed in the Paired Programming Assignment as a model or template for the Individual Assignment. You should plan on spending 9 or more hours a week on this course.
Working in Teams
A very important part of the BYU-Idaho learning model is to teach and learn from one another. In addition, in the real world we work as teams in IT. Teamwork is one of the most important skills that you can bring to an employer. It is also an essential element of this class.
Online classes are to be as rigorous as the in class experience and to have the same objectives. Teaching and practicing good teamwork skills is one of the major objectives of the CIT department and it is stressed in most all of the classes. Learning to work and collaborate together using online social media skills is also important in todays world.
You should be in constant communication with your team member on a regular basis, at a minimum every other day via email, phone, text, chat and/or a Google Hangout. The Team Assignments are to be completed together using Google Hangouts and are not to be done individually. The Individual Assignments are to be done separately; however, you can coach, teach, and review each others work. I highly encourage that.
Some of you may feel that because this is an online class, you should not be required to work together in this manner. If you are not prepared to or are not able to work together as described above, I suggest that you drop the course. If you decide to stay in the course and are not willing to function as an active team member then you will be divorced from your team member and your partner will then be assigned to another team. You will then be responsible for completing all of the assignments and the project on your own. This will require a lot of extra work.
A project based approach
I have taught thousands of students how to program through the years, I have found that most students learn programming effectively by following examples of programs that are similar to the ones that they are creating on their own. I have also observed that students often learn best by working together. Learning is facilitated as they teach and learn from one another. In real life, people almost always work together in teams to develop software. Team members are often more motivated and develop better communication and team work skills by working together to solve a common problem.
Learning how to program should be a fun and engaging experience where the learner is allowed to express creativity and explore in the creation of a project on their own. The remaining lesson will walk you through the software development process to create an example program for a text based role playing game.
The example program serves as a model or template for creating a similar game of the readers own choosing. The assignments at the end of chapter walk the reader through the development process to create a game program of their own choosing.
Each assignment is designed to be done by a team of two individuals working together to develop a specific part of the game. Each assignment is broken down into two parts, a “paired programming assignment” and an “individual assignment”.
In the “team programming assignment” the team members will work together to define, design, develop, test and deploy one part of the program. One of team member works at the computer entering information while the other team member coaches, reviews, instructs and offers suggestions for improvement. Both students should be actively engaged in the definition, design, development, testing and deployment of the code. The team members should alternate roles for each assignment.
The “individual part” of the assignment requires that each student work on their own to define, design, develop, test and deploy a similar but different part of the game. The team members may coach and teach one another, but they can not do the work for the other team member.
Submitting Assignments
All assignments will be submitted to ILearn. No assignments will be accepted via email. You will also be required to upload the code for your project to GitHub from time to time.
Where do I Get Help?
This course uses specialized practices and resources that may require additional support not normally offered to other courses. As always, you have your Online Instructor as your first line of support. The instructor encourages you to schedule a Google Hangout to interact with and discuss any problems you may be having.
For individual help with your course work specifically, you may want to consider requesting a tutor at the Online Tutor Center.
For more general support you always have access to the Online Support Center and IT Help Desk, though they may not be able to help with the specific technical support often needed for this CIT course.
Grading
- “A” represents outstanding understanding, application, and integration of subject material and extensive evidence of original thinking, skillful use of concepts, and ability to analyze and solve complex problems. Demonstrates diligent application of Learning Model principles, including initiative in serving other students.
- “B” represents considerable/significant understanding, application, and incorporation of the material which would prepare a student to be successful in next level courses, graduate school or employment. The student participates in the Learning Model as applied in the course.
- “C” represents sufficient understanding of subject matter. The student demonstrates minimal initiative to be prepared for class. Sequenced courses could be attempted, but mastering new materials might prove challenging. The student participates only marginally in the Learning Model.
- “D” represents poor performance and initiative to learn, understand, and apply course materials. Retaking a course or remediation may be necessary to prepare for additional instruction in this subject matter.
- “F” represents failure in the course.
Grade |
Precentage Range |
A | 100-93 |
A- | 92–90 |
B+ | 89–87 |
B | 86–83 |
B- | 82–80 |
C+ | 79–77 |
C | 76–73 |
C- | 72–70 |
D | 69–60 |
F | 59–0 |
Your final grade in this course will be based on your performance in the following categories:
Weekly Programming Assignments |
|
|
40% |
Team and Instructor Interaction |
|
|
10% |
Journal |
|
|
10% |
Team Presentations |
|
|
40% |
To see the relative weight of each assignment in the course, view the gradebook. The grade book is in the upper-left corner of your I-Learn page (parallel to your name in I-Learn).
Assessment
Weekly Programming Assignments—40%
Each week, you will work on your game using two kinds of programming assignments.
- Paired Programming Assignments: For these assignments, you will work with a peer throughout the course to create initial functions, classes, etc., based on what you are learning about. You will collaborate in real-time using screen sharing software. For these sessions, you will look over each other’s shoulders and offer suggestions to one another while completing tasks for your game.
- Individual Programming Assignments: In additional to the Paired Programming Assignments, you will be individually coding to extend and expand what you have been doing in the paired programming sessions.
Team and Instructor Interaction, Developer Forum—10%
- Developer Forum: In the Developer Forum activity, you will be asking questions to and answering questions from your peers for the assignments. Your instructor will monitor this forum each day to ensure that all the student-provided feedback is accurate and helpful. In answering each other’s questions, please take full advantage of resources like Skype, Google Hangouts, etc., to effectively resolve concerns.
- Initial posts to this discussion board are generally due each Wednesday and follow-up posts are generally due each Saturday. Besides making the minimum required posts, please continue to use the discussion board throughout the week. As long as you have made the previous posts within the due date, you will not be docked points for participating in the discussion board beyond the due date.
Learning Summary Journal—10%
- The learning summary journal is a weekly opportunity to reflect on your learning. For each entry you will be writing about what you see as the most engaging, least engaging, and the aspects of programming that you did not know before. You need to describe what you are learning from the required materials and tie it back to specific examples from your assignments and interaction in class.
Team Presentations—40%
- There are several Return and Report Presentations throughout the class. These presentations are handled with you and your team making a presentation via Google Hangouts On Air and broadcasting the video of your project to YouTube and then sharing the link for the video in the class forum. You will then rate a few of your peers based on the rubric provided with the assignments. Please try and make these presentations as professional as you can since they are worth a significant portion of your grade.
Late Work
CIT department policy states that professors should not accept late work unless a student is ill. Therefore, I will not accept any late work, including homework, quizzes, and exams unless you are ill. If possible, please email or call me before an assignment or exam is due to inform me that you are ill. If a student or student pair falls behind it is their responsibility to post questions to the Developer’s Forum or ask their peers’ help to get caught up.
Cheating
If you cheat on any assignment or exam, you will receive a zero (0) for that assignment or exam and will be referred to the Student Honor Office. You can read what constitutes cheating on the website of the Student Honor Office.
Harassment
Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an education program or activity that receives federal funds, including federal loans and grants. Title IX also covers student-to-student sexual harassment. If you encounter unlawful sexual harassment or gender based discrimination, please contact the Personnel Office at (208) 496-1700.
Disability
Brigham Young University-Idaho is committed to providing a working and learning atmosphere which reasonably accommodates qualified persons with disabilities. If you have any disability which may impair your ability to complete this course successfully, please contact the Services for Students with Disabilities Office, (208) 496-9210. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by this office. If you need assistance or if you feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established grievance policy and procedures. You should contact the Personnel Office at (208) 496-1700.
Tutoring
If you need help with a tutor for the course you can get outside help through the Tutoring Center: http://www.byui.edu/academic-support-centers/tutoring-center/online-tutoring