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

  1. Write computer programs that utilize introductory programming concepts, including control structures, modularity, and arrays.
  2. Develop algorithms to solve problems, then code, test, and debug the algorithms in Java using an integrated development environment (IDE).
  3. Learn and use a software development processes to develop an software project.
  4. Develop classes, methods, and objects in Java that use aggregation, inheritance, and polymorphism.
  5. 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.
  6. 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.
  7. Develop, create and run unit test for the functions you develop.
  8. 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

View this book on Amazon.com

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.

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:

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

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

  • Paired Programming
  • Individual Programming Assignments
40%

Team and Instructor Interaction

  • Developers Forum
  • Instructor Interaction
10%

Journal

  • The Learning Summary Journal
10%

Team Presentations

 
  • Return and Report 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.

Team and Instructor Interaction, Developer Forum—10%

Learning Summary Journal—10%

Team Presentations—40%

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