Computer Science 268: Introduction to Computer Programming (Java)
Unit 0
Introduction
Welcome to Computer Science 268: Introduction to Computer Programming (Java). You are about to embark on a course that is challenging and rewarding. COMP 268 is designed to introduce you to the Java computer programming language. The course progresses from first principles to advanced topics in object-oriented programming using Java.
Learning Outcomes
Upon completion of this course, you will be able to
- articulate the principles of object-oriented problem solving and programming.
- outline the essential features and elements of the Java programming language.
- explain programming fundamentals, including statement and control flow and recursion.
- apply the concepts of class, method, constructor, instance, data abstraction, function abstraction, inheritance, overriding, overloading, and polymorphism.
- program with basic data structures using array, list, and linked structures.
- explain the object-oriented design process and the concept of software engineering.
- program using objects and data abstraction, class, and methods in function abstraction.
- analyze, write, debug, and test basic Java codes using the approaches introduced in the course.
- analyze problems and implement simple Java applications using an object-oriented software engineering approach.
Course Materials
Digital Textbook
The textbook for this course is an open educational resource (OER):
Eck, D. J. (2019, July). Introduction to Programming Using Java (Version 8.1).[1]
Programming Exercises
Resist the temptation to download the programming exercises from the textbook and simply run them. The greatest benefit in learning to program in a new language occurs when you type all the example code yourself.
Typing the code, even for simple examples, engages your brain in the process of writing code, compiling code, running code, and diagnosing and resolving problems that may arise. It is the latter skill—problem solving—that can become the most powerful tool in learning to program.
Software Requirements
You will need to complete your exercises and assignments using the Java compiler and version specified in the Instructor’s Notebook.
Note: You may not, under any circumstances, use integrated development environment (IDE) tools—that is, code generators—when writing your programs. All code must be “handwritten” using the techniques explored in this course. For example, many IDEs contain a code generator that will automatically write all the get and set methods for any class you create. This is not allowed.
Course Platforms
This course takes place in two virtual locations:
- the main course site, which is housed in a learning management system called moodle. You are presently in the main course site.
- the COMP268V12 group on the Athabasca Landing, also known as the “Landing.” The Landing is a social media system for students, staff and alumni of Athabasca University. All discussions for this course will be carried out in the COMP268V12 Landing group and can be viewed by anyone in the AU community. You can access the Landing with the same user name and password you use to access your COMP 268 main course site.
Main Course Site
On the main course site you will find the following:
- the units of the Study Guide linked to the assigned textbook readings;
- the digital textbook;
- the assignment instructions and drop boxes;
- tools and resources to help you navigate this course successfully; and
- course news and announcements.
The Landing
In the Landing COMP268V12 group you will be able to:
- access the Instructor’s Notebook;
- ask questions and post in online discussions; and
- create and expand upon your Personal Notebook.
The Landing houses time-sensitive information, including web links, documents, commentary and analysis that supplement the material of the Study Guide. The Landing is also where you create your Personal Notebook, which can be set to your desired level of privacy. On the Landing you can also create bookmarks and take part in course-related discussions with other students on topics relevant to this course. Many of those topics and specific questions are found in the Study Guide. Your Academic Expert (AE) may post additional topics and questions.
As a student in this course you are expected to participate in the discussions and to follow your Academic Expert and classmates on the Landing to ensure that you are notified of discussion posts.
See the Guide to Using the Landing for instructions on setting up your profile and your Personal Notebook and completing the other tasks on the Landing that are required in this course.
Join the COMP268V12 Landing Group
You will be granted membership within three (3) business days. Once you have been granted membership in the group, you will be able to view discussions in the course and post your own ideas and questions.
Create your Personal Notebook and post discussions in the sub-group for the current calendar year.
Using the Landing
The Landing is available to all students at Athabasca University who have taken COMP 268, including current and past students of the course. If there appears to be no noticeable content, then you are probably not logged in.
The Landing has, amid other things, the following facilities:
- a place to post your Personal Notebook entries. You will have to decide on an initial structure such as a WIKI (recommended) or a BLOG (less flexible than a WIKI).
- a means to share bookmarks of useful sites with others (and to find such sites).
- a group WIKI-like tool, which can be used to create pages of useful hints and ideas together. Here you can discover the pages being created by other members of this course, as well as frequently asked questions and current information that may help your success in the course.
The Landing is where we encourage you to create your reflective learning Personal Notebook. It is also a place for sharing and interaction. Sharing and interacting is a requirement in this course, and you will be graded on it. There are few better ways to learn than to teach; it is very useful to help others. And, of course, being helped by others can help you work through problems more quickly than doing them yourself or waiting until your Academic Expert is able to answer your questions. In short, everyone wins.
Because every student will be working in their own unique way, there is no harm in sharing your work with others. As a notable benefit, you can learn from each other and get a better sense of how you are doing by comparing what you have done with what others are doing. See the Guide to Using the Landing for instructions on setting up your profile and navigating the Landing.
Personal Notebook
As part of your journey, you will create and keep a Personal Notebook on the Landing of your explorations. In this Notebook, you will discuss questions arising from the Study Guide, the assignments and your Academic Expert. Your Personal Notebook becomes a portfolio of competence for this course. The Instructor’s Notebook is a basic framework of what your Personal Notebook might look like. See the following two sections in the Guide to Using the Landing for more information about setting up your Personal Notebook:
- Task: Set Up Your Landing Profile
- Task: Set Up Your Personal Notebook
Your Notebook will be kept in a personal space you create on the Landing. A WIKI is more extensible and flexible than a BLOG and is, therefore, the better choice for the Personal Notebook. You are free to modify and personalize it to reflect your explorations in this course. You will submit excerpts compiled from your Personal Notebook as a graded component of each assignment.
In your Notebook, you will to write down, on an ongoing basis, the activities you are undertaking for this course. This will help you embrace the material more quickly than if you were not keeping track of your thoughts and reflections throughout the course.
See the “Personal Notebook” section of the Assignment Requirements for more detailed information about the elements of your Personal Notebook that will be assessed in your assignments.
Instructors
Course Coordinator
The course coordinator for COMP 268 is Xiaokun Zhang.
The coordinator works on academic and administrative matters pertaining to this course and maintains the Instructor’s Notebook on the Landing. The coordinator may also post to discussions on the Landing. If you have difficulties that cannot be resolved with your Academic Expert’s help, you may wish to contact the coordinator directly. The coordinator is also the person to contact regarding credit records. In addition, the coordinator can provide general information about program planning and curriculum development.
Academic Expert
Your Academic Expert is a professional who enjoys the learning experience. Your AE wants you to succeed and is willing to be a partner in that success.
Post your questions regarding the learning materials on the Landing, where other students and your AE may reply. However, direct any personal questions to your AE through the Student Success Centre.
Academic Experts are governed by policies and standards that specify how you may contact them and how soon they must reply. They take these standards seriously.
What We Expect of You
- You will be curious and willing to seek information outside of the learning materials provided in the course.
- You will discuss what you discover on the Landing with your Academic Expert and other students; you will ask questions and post responses. Your grades depend on it.
- You will create and maintain an Personal Notebook of your work in this course, preferrably on the Landing.
- You will ask questions of your Academic Expert through the Student Success Centre at any time.
Course Contract
COMP 268 is an individualized study course. This means that you are registered for a six-month contract, and you have the option of purchasing extensions. During that time, you are in control of your academic progress.
Ultimately, you control how fast you proceed through the Study Guide units and when you choose to submit each assignment. Be sure to submit all the assignments before the end of your course contract. Request your final exam well in advance of your course contract end date.
Study Guide
The Study Guide presents a list of readings and activities that you must perform to complete this course successfully. The course also presents assignments that must be completed and submitted for grading.
The readings for this course are found in David Eck’s Introduction to Programming Using Java (Version 8.1), and have been made available on this course site. You are free to download the entire contents of the textbook. The Study Guide provides some commentary on most of the textbook readings.
You will find additional information and guidance in the Instructor’s Notebook on the Landing. Of course, you will find many other helpful resources on the web. Embrace your freedom to explore the Internet for ideas.
Assessments
COMP 268 builds on the concepts introduced in COMP 200 and/or COMP 210, and shows how to use Java language constructs to develop code and solve problems. For each topic introduced in COMP 268, you will design, write and analyze Java code corresponding to that topic.
Refer to Assignment Requirements and the sample program GoodDocs.java for the required documentation format for all assignments in this course.
Assignments
The four (4) assignments for credit are available on the main course site. Assignments 1 to 3 are each worth 15 per cent of your final grade, and Assignment 4 is worth 25 per cent. You must score 50 per cent on each assignment to pass the course. Note that in each assignment, 30 per cent of your grade depends on your reflections on the work involved.
The assignments pose a series of programming problems for which you will write complete Java programs. In addition to submitting the working and tested source code to these problems, you will submit appropriate excerpts from your Personal Notebook on the Landing to demonstrate your approach to the problems and any challenges you may have encountered.
Assignment 4 represents a more significant programming challenge. In Assignment 4, you will design and create a text-based adventure game centering about the novel Alice’s Adventures in Wonderland. As with the other assignments, you must submit complete, working Java source code and reflections from your Personal Notebook.
How to Work through the Assignments
The most common mistake in learning to program is trying to write a program before you know how to solve the problem being presented. You first have to design a solution to the problem, and only then can you write the program. Design before you write. Document your design on paper first, and then check the logic. Finally, convert it to code.
If you find you are spending more than an hour struggling to get something working, stop and walk away for a while. You may have a blank screen and not know how to start, or you may be looking at your program and only seeing what you want to do, not what is really there.
At this stage you must seek help. Professional programmers rarely work in a vacuum. They routinely discuss challenges and potential solutions. If these types of difficulties continue, seek help from your colleagues or your Academic Expert. Create a discussion on the Landing to post your questions, challenges, hints, helpful tips and other commentary as you proceed through the course. Often, someone else will have already solved the problem you are working on and will be able to provide help.
If you still are stuck, talk to your Academic Expert. Explain what you have done, what you are trying to do, and what is going wrong. Your Academic Expert will help guide you to solve your problem, but they will not provide a working solution. The Academic Expert is already a professional programmer. You are the one learning to program.
You are encouraged to discuss assignments with other students and seek help when needed. However, it is essential that you fully understand any programs you submit for grading. Your final exam will include questions modeled on the course exercises and assignments.
The best way to learn a language is to use it. Read the code in the course pages. Discuss solutions. Try things out. The programming language seems to be the biggest hurdle at first. Problem solving and solution design are the real core of programming.
Most of all, when you complete this course successfully, remember that you have achieved something very difficult. Congratulate yourself on your achievement. You have started down the road to becoming a software engineer. When you build a functioning program, you have created your own beautiful thing. Enjoy!
Plagiarism and Collusion Versus Reuse and Cooperation
You are strongly encourage reuse of other people’s ideas. It is acceptable for you to work with other course members on solving problems, but it is essential that you always make it absolutely clear that this is what you have done and properly acknowledge the work of others, or give credit where you have been helped by, or have modified the work of, others. At worst, you will not be penalized for reusing work, as long as it is properly acknowledged and cited. At best, you will gain marks for intelligently and reflectively reusing ideas or seeking help when it makes sense to do so.
In the programming industry no one is an island. It is really important to learn to work with, help, and get help from other people. We all build on the work done by others, and you are very much encouraged to do that, and you must acknowledge that work.
Drop Boxes
Use the assignment drop boxes on the course home page to submit your assignments.
Landing Discussions and Participation
You are required to participate in online discussions in the Landing with other students. You can learn a lot by helping others—teaching is the best way to make sure you understand something, yourself. Your participation in the Landing is worth 15 per cent of your final grade in the course.
The Landing is a completely non-competitive environment: we use absolute, not relative, criteria when assigning grades to your posts. The fact that everyone is brilliant does not mean you have to be even more brilliant to succeed! However, we do hope that you will inspire each other and get ideas from each other that will make everyone’s work even better than it would otherwise have been. And, if you find things that could be improved, don’t be afraid to make suggestions or offer help: you can use those suggestions and help as part of the evidence of having achieved competency in this course. You will find that the discussion forums can greatly enhance your enjoyment of this course.
You are expected to post to the Landing discussions for each unit of the Study Guide as the course progresses. You can also post questions, observations, ideas, or information that you have found—anything relevant to the topics in the Study Guide units at any time. You are also encouraged to collaborate on assignments.
To obtain full marks for your discussion posts, you must create at a minimum of 30 posts over the course of your contract. These posts must be relevant to course material and unit topics. Hasty “make up” posts created near the end of your contract will not be counted. Posts should be thoughtful and should be a true discussion of the topic. “Me too” or “I agree” posts with no original content do not count.
The Rules
- Post to the discussions on the Landing. You are required to do so.
- Post questions about the course, a unit, an example, or an exercise. The Landing COMP268V12 group is for questions and discussions. The Student Success Centre (messages to your Academic Expert) is reserved for personal matters.
- Post a response in the discussion forum if you see a question and you know the answer, think you know the answer, or are facing the same situation. You can start a discussion with those facing the same difficulty, and very often, together you can solve it.
- Create a new topic only if it doesn’t already exist. If it already exists, post to the existing one.
- Be aware that the Course Coordinator and Academic Experts monitor the discussions and will answer any questions sitting unanswered on the Landing.
Discussion Forum Etiquette
Please be very cautious about posting your contact information or other highly personal information in discussion forums.
Always remember that any information you post in the discussion forums or in the chat room can be read by all other people in the course and in the Athabasca University community.
The only way to be completely safe online is to never share your personal information. Your personal information (e.g., last name, social insurance number, or phone number) can be used to locate you. You should share only a minimum amount of personal information. Be careful when you participate online.
Etiquette: Write only what you would say to someone face to face. If you wouldn’t say it to another student standing next to you, don’t say it online.
Final Exam
You will complete an invigilated, closed-book, online final exam, worth 15 per cent of your final grade. The final exam will ask you to provide a detailed description of how you arrived at your final assignment. You must score 50 per cent to pass the final exam.
Be sure to apply for your Final Exam well in advance of your course contract end date and well in advance of when you intend to write it.
Activity | Weighting |
---|---|
Assignment 1 | 15% |
Assignment 2 | 15% |
Assignment 3 | 15% |
Assignment 4 | 25% |
Participation | 15% |
Final Exam | 15% |
Total | 100% |
Note: After you have completed the assignments or the final exam, do not discuss their contents on any forum or post them anywhere on the Internet. Doing so will be considered cheating and will be dealt with in accordance with the Student Academic Misconduct Policy.
Assignment 0
At this time you should create your Personal Notebook and begin recording your journey through this course.
In your Personal Notebook, complete Assignment 0. (It is not graded.)
Assignment 0
- On the main course site, read the News and Announcements topics. These are important announcements from your Academic Expert and the Course Coordinator.
- Log in to the Landing and have a look around. Check out some of the other groups on the Landing.
- Request membership in the COMP268V12 group.
- In the Landing COMP268V12 group, create your Personal Notebook. As mentioned earlier, the WIKI format is highly recommended. See the following two sections in the Guide to Using the Landing for more information about setting up your Personal Notebook:
- Task: Set Up Your Landing Profile
- Task: Set Up Your Personal Notebook
- Begin recording your thoughts on the course and your progress through the learning material.
Footnote
[1] Available from http://math.hws.edu/javanotes/