Print this chapterPrint this chapter

UoPeople Online Syllabus Repository (OSR)

Computer Science

CS 1102 Programming 1

UoPeople logo


CS 1102: PROGRAMMING 1


Prerequisites: None. If you do not have a background in Computer Science, CS 1101: Programming Fundamentals is highly recommended.


Course Description: This course is an introduction to computer programming. Programming is the art of explaining to a computer what you want it to do, in exact detail and in a language that the computer can understand. Programming is only one part of computer science, but it is the most basic and most central part. It is an activity that requires you to think logically, to solve problems, to express yourself clearly, and often to endure a certain amount of frustration as you try to get your programs to work. The result, though, can be very rewarding. Many different languages are used for writing computer programs. Fortunately, it is possible to learn principles and general techniques of programming that can be applied no matter what language you write in. Although you will work with a specific language, you should try not to lose sight of the general ideas. In this course, we will use the Java programming language. Java is a relatively new language, having been introduced in 1995. In the years since its introduction, it has become one of the most important languages for real application development. It is a very versatile language. Java can be used to write regular desktop applications and to make "applets" that can appear on Web pages. Many complex interactive Web sites are written in Java, and it can be used to write applications for many types of mobile phones. Even high-performance scientific programming has been done in Java.


Required Textbook and Materials: UoPeople courses use open educational resources (OER) and other materials specifically donated to the University with free permissions for educational use. Therefore, students are not required to purchase any textbooks or sign up for any websites that have a cost associated with them. The main required textbooks for this course are listed below, and can be readily accessed using the provided links. There may be additional required/recommended readings, supplemental materials, or other resources and websites necessary for lessons; these will be provided for you in the course's General Information and Forums area, and throughout the term via the weekly course Unit areas and the Learning Guides.


Software Requirements/Installation: In this course, we will complete several programming projects. Therefore, there is a need to install the Java Development Kit (JDK) and preferably also an editor. To simplify this process the Netbeans integrated development environment (IDE) which is bundled with the Java 8 standard edition (SE) JDK which can be downloaded using the following URL http://netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase this is a relatively large download at 66 Mbytes. Instructions for installing Netbeans and the JDK can be found at the following URL https://netbeans.org/community/releases/81/install.html. One of the first required tasks in unit 1 will be to install and test your local installation of Netbeans and the Java 8 SE JDK.


Learning Objectives and Outcomes:

By the end of this course students will be able to:

  1. Understand and be able to articulate key concepts within Java such as the java virtual machine and the distinction between java code and bytecode.
  2. Describe and be able to implement essential concepts and features of the Java programming language.
  3. Implement object oriented concepts using the Java language.
  4. Design, build, execute and debug Java applications.

Course Schedule and Topics: This course will cover the following topics in eight learning sessions, with one Unit per week. The Final Exam will take place during Week/Unit 9 (UoPeople time).

Week 1: Unit 1 - Introduction to Programming, Names, and Things

Week 2: Unit 2 - Repetitions

Week 3: Unit 3 - Branching

Week 4: Unit 4 - Subroutines, Packages, and JavaDoc

Week 5: Unit 5 - Object Oriented Programming (Start mandatory project)

Week 6: Unit 6 - Inheritance, Polymorphism, and Interfaces ... Oh My!

Week 7: Unit 7 - Arrays

Week 8: Unit 8 - Introduction to GUI programming

Week 9: Unit 9 - Final Exam


Learning Guide: The following is an outline of how this course will be conducted, with suggested best practices for students.

Unit 1: Introduction to Programming, Names, and Things

  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Forum (Post, Comment, Rate)
  • Download and install the JDK package and the Netbeans integrated development environment
  • Test the software installation.
  • Complete and submit Unit 1 Assignment
  • Make entries to the Learning Journal
  • Take the Self-Quiz

Unit 2: Repetitions

  • Peer-Assess and Provide Feedback on Unit 1 Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Forum (Post, Comment and Rate)
  • Complete and submit Unit 2 Assignment
  • Make entries to the Learning Journal
  • Take the Self-Quiz

Unit 3: Branching

  • Peer-Assess and Provide Feedback on Unit 2 Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Forum (Post, Comment and Rate)
  • Complete and submit Unit 3 Assignment
  • Make entries to the Learning Journal
  • Take the Self-Quiz

Unit 4: Subroutines, Packages, and JavaDoc

  • Peer-Assess and Provide Feedback on Unit 3 Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Forum (Post, Comment and Rate)
  • Complete and submit Unit 4 Assignment
  • Make entries to the Learning Journal
  • Take the Self-Quiz

Unit 5: Object Oriented Programming

  • Peer-Assess and Provide Feedback on Unit 4 Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Forum (Post, Comment and Rate)
  • Complete and submit Unit 5 Assignment
  • Make entries to the Learning Journal
  • Start the Mandatory Programming Project Assignment
  • Take the Self-Quiz
  • Take the Graded Quiz

Unit 6: Inheritance, Polymorphism, and Interfaces ... Oh My!

·         Peer-Assess and Provide Feedback on Unit 5 Assignment

·         Read the Learning Guide and Reading Assignments

·         Participate in the Discussion Forum (Post, Comment and Rate)

·         Complete and submit Unit 6 Assignment

·         Make entries to the Learning Journal

·         Continue the Mandatory Programming Project Assignment

·         Take the Self-Quiz

 Unit 7: Arrays

·         Peer-Assess and Provide Feedback on Unit 6 Assignment

·         Read the Learning Guide and Reading Assignments

·         Participate in the Discussion Forum (Post, Comment and Rate)

·         Make entries to the Learning Journal

·         Complete and submit the Unit 7 Assignment 

·         Take the Self-Quiz

Unit 8: Introduction to GUI Programming

·         Peer-Assess and Provide Feedback on Unit 7 Assignment

·         Read the Learning Guide and Reading Assignments

·         Participate in the Discussion Forum (Post, Comment and Rate)

·         Make entries to the Learning Journal

·         Take the Self-Quiz

·         Read the Unit 9 Learning Guide carefully for instructions on the Final Exam

·         Take the Review Quiz

Unit 9: Course Review and Final Exam

·         Read the Learning Guide and take the Review Quiz, if you haven't already done so

·         Prepare for, take, and submit the Final Exam

·         The Final Exam will take place during the Thursday and Sunday of Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor


Course Requirements:

Discussion Assignments & Response Posts/Ratings
Some units in this course require that you complete a Discussion Question. You are required to develop and post a substantive response to the Discussion Question in the Discussion Forum. A substantive response is one that fully answers the question that has been posed by the instructor. In addition, you must extend the discussion by responding to at least three (3) of your peers' postings in the Discussion Forum and by rating their posts. Instructions for proper posting and rating are provided inside the Discussion Forum for each week. Discussion Forums are only active for each current and relevant learning week, so it is not possible to contribute to the forum once the learning week has come to an end. Failure to participate in the Discussion Question by posting in the Discussion Forum and responding to peers as required may result in failure of the course.

Programming Assignments & Assessment Forms
This course has a required lab component. The lab assignments give you a chance to get hands-on experience with the computer and with programming. Remember that you always have someone to help you get through the trouble that inevitably arises by consulting your peers and instructor in the forums. The labs are however generally intended to be individual work and unless otherwise instructed you should be completing them on your own.

Each assignment will involve some programming. There might also be a few questions for you to answer in writing. You should develop a solution for each assignment and (if possible) post your assignment solution a lab report consisting of your answers to the programming and other exercises. Lab reports should be completed by the end of the learning week. You may be asked to submit the lab report as an assignment to be assessed by your peers.

You are required to submit your assignments by the indicated deadlines and, in addition, to peer asses s three (3) of your classmates' assignments according to the instructions found in the Assessment Form, which is provided to you during the following week. During this peer assessment period, you are expected to provide details in the feedback section of the Assessment Form, indicating why you awarded the grade that you did to your peer. Failure to submit Written Assignments and/or Assessment Forms may result in failure of the course.

Learning Journals
Your instructor may choose to assign specific topics and/or relevant questions as a weekly Learning Journal entry for you to complete, but you are still encouraged to also use it to document your activities, record questions/problems you may have encountered, reflect on the learning process, and draft answers for other course assignments. The Learning Journal must be updated on a weekly basis, because its entries will be assessed by your instructor directly as a part of your final grade. The Learning Journal will only be seen by your instructor.

Project
In order to bring theory and practice together and connect the dots during the learning process, this course requires students to develop a real-world project, namely, a simple payroll system. The project focuses on what is, without a doubt, the most important development paradigm nowadays: Object Oriented Design and Implementation (OOP). Once and for all, students will have a great chance to learn by a simple, albeit real-world exercise, topics like Classes, Objects, Inheritance, Information hiding and polymorphism. The complete project work is divided into units and before you know it, you will have developed and, most importantly, understood Object-Oriented programming. Last but not least, each student will have a chance to assess their peer in this important topic. By doing that, students will have an opportunity to review the topic from their peers’ perspective and implementation. This project spans from Unit 5 to unit 7, making use of pretty much everything learned in previous units.

Quizzes
This course will contain three types of quizzes - t he Self-Quiz, the Graded Quiz, and the Review Quiz. These quizzes may contain multiple choice, true/false, or short answe r questions. The results of the Self-Quiz will not count towards your final grade. However, it is highly recommended that you complete the Self-Quiz to ensure that you have adequately understood the course materials. Along with the Reading Assignments, the results of the Self-Quiz should be used as part of an iterative learning process, to thoroughly cover and test your understanding of course material. You should use the results of your Self-Quiz as a guide to go back and review relevant sections of the Reading Assignments. Likewise, the Review Quiz will not count towards your final grade, but should also be used to assist you in a comprehensive review and full understanding of all course material, in preparation for your Final Exam. Lastly, the results of the Graded Quiz will count towards your final grade. Specific instructions on the format and content of the Graded Quiz will be provided by your instructor.

Final Exam
The Final Exam will take place during the Thursday and Sunday of Week/Unit 9, following the completion of eight units of work. The format of the Final Exam is similar to that of the quizzes, and may contain a combination of different question types. You will have one attempt to take the exam, and it will be graded electronically. Specific instructions on how to prepare for and take the Final Exam will be provided during Week 8 (located inside the Unit 9 Learning Guide). Final Exams must be taken without the use of course learning materials (both those inside and outside the course). If particular materials are allowed for use during the exam, these will be noted in the exam’s instructions.

Course Forum
The Course Forum is the place to raise issues and questions relating to the course. It is regularly monitored by the instructors, and is a good place to meet fellow students taking the same course. While it is not required to participate in the Course Forum, it is highly recommended.


Course Policies:

Grading Components and Weights
Each graded component of the course will contribute some percentage to the final grading scale, as indicated here:

Discussion Assignments

10%

Programming Assignments

25%

Learning Journals

15%

Graded Quiz

10%

Mandatory Project

10%

Final Exam

30%

TOTAL

100%


Grading Scale
This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:

Letter Grade

Grade Scale

Grade Points

A+

98-100

4.00

A

93-97

4.00

A-

90-92

3.67

B+

88-89

3.33

B

83-87

3.00

B-

80-82

2.67

C+

78-79

2.33

C

73-77

2.00

C-

70-72

1.67

D+

68-69

1.33

D

63-67

1.00

D-

60-62

0.67

F

Under 60

0.00


Grade Appeal

If you believe that the final grade you received for a course is erroneous, unjust, or unfair, please contact your course instructor. This must be done within seven days of the posted final grade. For more information on this topic, please review the Grade Appeal Procedure in the University Catalog.

Participation
Non-participation is characterized by lack of any assignment submissions, inadequate contributions to the Discussion Forums, and/or lack of peer feedback to Discussion/Written Assignments. Also, please note the following important points about course participation:

·         Assignments must be submitted on or before the specified deadline. A course timeline is provided in the course schedule, and the instructor will specify deadlines for each assignment.

·         Any student showing non-participation for two weeks (consecutive or non-consecutive) is likely to automatically fail the course.

·         Occasionally there may be a legitimate reason for submitting an assignment late. Most of the time, late assignments will not be accepted and there will be no make-up assignments.

·         All students are obligated to inform their instructor in advance of any known absences which may result in their non-participation.

Academic Honesty and Integrity
When you submit any work that requires research and writing, it is essential to cite and reference all source material. Failure to properly acknowledge your sources is known as "plagiarism” - which is effectively passing off an individual's words or ideas as your own. University of the People adheres to a strict policy of academic honesty and integrity. Failure to comply with these guidelines may result in sanctions by the University, including dismissal from the University or course failure. For more information on this topic, please review the Academic Integrity Policy in the University Catalog.

Unless otherwise stated, any materials cited in this course should be referenced using the style guidelines established by the American Psychological Association (APA). The APA format is widely used in colleges and universities across the world and is one of several style and citation formats required for publication in professional and academic journals. Purdue University's Online Writing LAB (OWL) is a free website that provides excellent information and resources for understanding and using the APA format and style. The OWL website can be accessed here: https://owl.purdue.edu/owl/purdue_owl.html

Code of Conduct
University of the People expects that students conduct themselves in a respectful, collaborative, and honest manner at all times. Harassment, threatening behavior, or deliberate embarrassment of others will not be permitted. Any conduct that interferes with the quality of the educational experience is not allowed and may result in disciplinary action, such as course failure, probation, suspension, or dismissal. For more information on this topic, please review the Code of Conduct Policy in the University Catalog.


Course Introduction: The following material introduces the course and sets expectations for the course.

Course Overview

1.     This course presents part one of the two part Java programming sequence of courses. This course CS1102 introduces the basic concepts of the Java programming language and CS1103 will complete the sequence by introducing more advanced concepts.

2.     This course provides an opportunity for you to take concepts learned in CS1101 in a different programming language (Python) and apply them with another language Java. This course also provides you with the opportunity to further refine the conceptual modeling skills that were introduced in CS1101. If you recall CS1101 presented two approaches including Pseudocode and Flowcharts as tools to develop the conceptual model that solves a problem that can then be implemented using a programming language. Although not required in this course, it is highly recommended that you use one of these techniques when you begin working on any of the lab projects required in this course.

Expectations

This course is designed to be collaborative. Your interaction with your peers (other students in the class) should not be focused on providing an assessment of their work, but rather to collaborate to improve our collective understanding of the course material. As such feedback is MORE important than assessment. You should be providing feedback in the form of explanation, assistance, best practice sharing, and other forms of collaboration.

1.     This course is designed to foster learning and develop usable skills in developing and using a high level programming language such as Java. These objectives require an understanding of both theory and practice. In this case the theory is an understanding of the components, syntax, and grammars of the Java language, the conceptual modeling process, and other components of the programming process. The practice in this case is the application of these elements to construct a working program.

2.     As such, it is vital that you learn the basic concepts of Java through the reading assignments, supplemental materials, and collaboration and discussion with your peers, and then put this knowledge into practice by completing the programming assignments specified in the labs. Learning java in this course tends to be cumulative in that each subsequent unit builds upon the learning of the previous unit. It is vital that you complete each assignment as the next assignment builds upon the learning developed in the preceding assignment. It is important to start working on the assignments EARLY and if you are having any issues understanding a concept or getting your code to work, REACH OUT to your peers and instructor for help by posting your issue as early in the unit as possible in the unit forum. Every student has a responsibility to collaborate with the rest of the class. You should check the unit forum frequently and offer assistance if you can to any student who may be struggling.

Optional Video Lectures

This course features a series of optional video lectures. These lectures are optional resources that have been made available to students who can take advantage of them. These lectures are strictly optional resources. All of the information in these lectures is available in other learning resources within the course. These lectures are provided for those students who have sufficient network bandwidth and technology capabilities to take advantage of video content. These lectures cannot be used instead of the required assigned resources and there is no information that is not contained in the assigned resources. These lectures simply present some of the information in a different format.

The lectures are designed to provide a high level context of the subject matter in the unit. They do NOT replace the reading requirement of the unit and are provided simply to provide context to the reading assignment and other assignments within the unit.