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 the 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.  You will get more instructions in the units on what software is necessary to complete the projects. 


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

Week 2: Unit 2 - Control Structures

Week 3: Unit 3 - Static Methods and Member Variables

Week 4: Unit 4 - Objects and Classes

Week 5: Unit 5 - Inheritance, Polymorphism, and Interfaces

Week 6: Unit 6 - Event Handling with Graphical User Interfaces

Week 7: Unit 7 - Arrays and ArrayLists

Week 8: Unit 8 - Practice

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

  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Programming Assignment
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz

Unit 2: Control Structures

  • Peer-assess the Unit 1 Programming Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Programming Assignment
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz

Unit 3: Static Methods and Member Variables

  • Peer-assess the Unit 2 Programming Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Programming Assignment
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz
  • Take the Graded Quiz

Unit 4: Objects and Classes

  • Peer-assess the Unit 3 Programming Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Programming Assignment
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz

Unit 5: Inheritance, Polymorphism, and Interfaces

  • Peer-assess the Unit 4 Programming Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Programming Assignment
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz

Unit 6: Event Handling with Graphical User Interfaces

  • Peer-assess the Unit 5 Programming Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz
  • Take the Graded Quiz

Unit 7: Arrays and ArrayLists

  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Programming Assignment
  • Complete an entry in the Learning Journal
  • Take the Self-Quiz

Unit 8: Practice

  • Peer-assess the Unit 7 Programming Assignment
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete an entry in 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.

Quizzes

This course will contain three types of quizzes - the Self-Quiz, the Graded Quiz, and the Review Quiz. These quizzes may contain multiple-choice, true/false, or short answer 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

15%

Programming Assignments

20%

Learning Journals

15%

Graded Quizzes (2 @ 10%)

20%

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: http://owl.english.purdue.edu/owl/resource/560/01/

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 grammar 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.