Skip to main content

Computer Science

UoPeople Online Syllabus Repository (OSR)

Computer Science

This Computer Science degree meets the growing demands of the regional and national economy preparing students to approach and solve important scientific, global, and societal challenges of the 21st century. The discipline studies phenomena and concepts arising from the use of logic, mathematics, engineering and other sciences in understanding and manipulating information; the degree provides a firm foundation in both hardware/architecture and software, as well as an understanding of a variety of applications of these fundamental ideas and techniques.


CS 1101 Programming Fundamentals

UoPeople logo

CS 1101: PROGRAMMING FUNDAMENTALS

Syllabus

Prerequisites: None

Course Description:

This course covers the basics of computer programming and provides a foundation for further learning in this area. No previous computer programming knowledge is required to finish this course. The course uses the Python programming language which is very simple and straightforward. The course also covers abstract concepts which can be applied to almost any programming language, and students are encouraged to pay attention to these since the way of thinking like a programmer is the most valuable lesson they will learn.

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.
  • Think Python, How to Think Like a Computer Scientist, version 1.1.24+Kart [Python 3.2] by Allen B. Downey. Available to download here.

Software Requirements/Installation:

For your assignments, you must download and install the appropriate Python interpreter for your computer and operating system. Versions of the software are available for Windows (XP, Vista, Windows7), Linux distributions, and Mac OS. Most popular distributions of Linux will either include Python or will provide an installation option for it in the software management utility.

You can find available downloads for Python v3 at the following URL: http://www.python.org/download/
Installation is relatively straightforward. Follow the prompts when installing. Further information is available in the documentation section located here: https://docs.python.org/3/. Instructions to install and configure Python can be found in the Python setup and usage section of this page.
Additional Resources:

Learning Objectives and Outcomes:

By the end of this course students will be able to:
  1. Describe the history and development of computer programming languages
  2. Implement modeling techniques including pseudo code and flowcharts to build conceptual models of a program’s logic, functionality, and execution
  3. Implement fundamental programming concepts and language constructs using procedural programming approaches
  4. Develop programs using the Python programming language to solve programming problems
  5. Independently research programming languages and apply new programming language features

    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 and Fundamental Concepts

    Week 2: Unit 2 -
    Variables, Expressions, and Statements

    Week 3: Unit 3
     - The Conceptual Model: Flowcharts and Pseudo Code

    Week 4: Unit 4
     - Functions

    Week 5: Unit 5
    - Conditionals and Iterations

    Week 6: Unit 6 -
    Functions and Return Values

    Week 7: Unit 7 -
     Data and Data Structures

    Week 8: Unit 8 - 
    Dictionaries and Files

    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 and Fundamental Concepts
    • Read the Learning Guide and Reading Assignments
    • Download and install a working Python environment including the IDLE integrated development environment (not required for Virtual Computer Lab Users); use the Installation Guide
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum); make an initial post with a 75 word minimum
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Variables, Expressions, and Statements
    • Read the Learning Guide and Reading Assignments
    • Complete and submit the Unit 2 Programming Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Conceptual Model: Flowcharts and Pseudo Code
    • Peer assess 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 Unit 3 Programming assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Functions
    • Peer assess 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 Unit 4 Programming assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Conditionals and Iterations
    • Peer assess 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 Unit 5 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Functions and Return Values
    • Peer assess 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 and submit the Unit 6 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 7: Data and Data Structures
    • Peer assess Unit 6 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 Unit 7 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Dictionaries and Files
    • Peer assess Unit 7 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Read the Unit 9 Learning Guide carefully for instructions on the Final Exam
    • Take the Self-Quiz
    • Take the Review Quiz
    • Complete and submit the anonymous Course Evaluation
    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:

    Programming Assignments
    Some units in this course require that you complete a programming assignment. For each programming assignment, you must develop the required program and submit by the required due date. Your submission must include either the pseudocode or flowchart for your program, the code of your program and description of the results obtained when running the program. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 – Self-Quizzes, Graded Quizzes, 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 Quizzes will count towards your final grade. Specific instructions on the format and content of the Graded Quizzes 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:
    Learning Journals15%
    Programming Assignments15%
    Discussion Questions10%
    Graded Quizzes30%
    Final Exam30%
    TOTAL100%

    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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 Overview
    CS1101 is the first programming course encountered in the Computer Science program at the University of the People. Although this course does not have the technical difficulty that will be encountered in later computer science courses, it does introduce concepts that may be very new to many students so it will require significant commitment and focus. It is imperative that you have mastered the ideas, concepts, and skills that are introduced in this course as later courses will assume that you have proficiency in these areas. As such do not just get by in this course. Make sure that you understand ALL of the concepts and can complete ALL of the assignments. If you are struggling with any idea, concept, or project, reach out for help from your peer and your instructor EARLY by posting in the course forum.
    In each unit of this course, you will see both a required reading assignment and an additional reading assignment. This course, CS1101 is an introductory course to the computer science program. For many students, this course will represent your first formalized exposure to the computer science discipline and field. The recommended readings provide an excellent history of the development of computer technology, computers, programming languages and the field of computer science in general. The recommended readings trace the development of modern computer technology from its earliest beginnings, through the personal computer and internet revolutions through to the recent history of the field. These readings will provide you with a good understanding of the key innovators in the field as well as their innovations providing a foundation for your further studies in the computer science program.
    Finally selected units throughout this course have optional video lectures. These video lectures are not required but can be valuable to those students who have the ability to view streaming video as they present the same material covered in the reading assignment but in the form of a video / audio lecture that demonstrates implementing the concepts from the reading assignment. For those students who have access to sufficient computing resources and network bandwidth, these video lectures are highly recommended.
    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. Your instructor will be looking for these activities and a portion of your grade will be determined based upon the level of collaboration and peer interaction that you engage in.
    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/RatingsSome 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 WeightsEach 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.
    ParticipationNon-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.
    CS 1103: PROGRAMMING 2

    Syllabus

    Prerequisites: CS 1102 Programming 1

    Course Description:

    This course builds on the Introduction to Programming 1 course and teaches a more highly developed Java programming language with features beyond the basic concepts covered in the first programming course. A large part of the course will be devoted to more advanced building blocks such as recursion, linked data structures, and Java's Collection Framework. In addition to this, you will learn more about designing and coding complex, robust, and efficient programs. And you will be introduced to a professional programming tool: the Eclipse Integrated Development Environment.

    The syllabus for the course will consist of Chapters 8 through 12 from the textbook, Introduction to Programming Using Java.

    Required Textbook and Materials:

    Introduction to Programming Using Java, Version 5.0, December 2006, (Version 5.1, with minor updates and corrections, June 2009), David J. Eck, Hobart and William Smith Colleges. A PDF version of the book which can be downloaded to your computer can be found on the Course Home Page. The book is also available from http://math.hws.edu/javanotes.


    Software Requirements/Installation

    In this course, we will do several programming projects. Therefore, there is a need to install the Java Development Kit (JDK) and preferably also an editor. The first task in the course will guide you through the steps of installing and testing the required software environment.

    Learning Objectives and Outcomes:

    At the end of this course the students will be:
    • Acquainted with intermediate programming techniques using Java.
    • Familiar with advanced Object Oriented concepts.
    • Able to use tools such as the Eclipse and the Eclipse debugger

    Course Schedule and Topics

    This course will cover the following topics in eight learning sessions, one unit per week.

    Unit 1- Exceptions, the switch statement, Analysis of Algorithms
    Unit 2
    Recursion and Linked Lists
    Unit 3
    ADTs, Stacks and Queues
    Unit 4
    Recursive Descent Parsers and Generic Programming
    Unit 5
    More Generic Programming
    Unit 6
    Files and Networking; Advanced GUI Programming
    Unit 7
    Actions and Buttons; Complex Components and MVC
    Unit 8
    Some GUI Programming
    Unit 9
    Final Exam

    Study Guide

    The course is conducted entirely via the University of the People Online Campus (http://my.uopeople.edu). 

    Unit 1: Exceptions, the switch statement, Analysis of Algorithms

    • Read the Learning Guide and external Reading Assignments
    • Take the Quiz (optional)
    • Participate in the Discussion Forum (Post, Comment and Rate)
    • Complete and submit Unit 1 Assignment (Lab 1)
    • Make entries to the Learning Journal

    Unit 2: Recursion and Linked Lists

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


    Unit 3
    : ADTs, Stacks and Queues

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


    Unit 4: Recursive Descent Parsers and Generic Programming

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

    Unit 5: More Generic Programming

    • Peer-Assess Unit 4 Assignment
    • Read the Learning Guide and external Reading Assignments
    • Take the Quiz (optional)
    • Participate in the Discussion Forum (Post, Comment and Rate)
    • Complete and submit Unit 5 Assignment (Lab 5)
    • Make entries to the Learning Journal


    Unit 6:
     Files and Networking; Advanced GUI Programming

    • Peer-Assess Unit 5 Assignment
    • Read the Learning Guide and external Reading Assignments
    • Take the Quiz (optional)
    •Take the Graded Quiz
    • Participate in the Discussion Forum (Post, Comment and Rate)
    • Complete and submit Unit 6 Assignment (Lab 6)
    • Make entries to the Learning Journal

    Unit 7: Actions and Buttons; Complex Components and MVC

    • Peer-Assess Unit 6 Assignment
    • Read the Learning Guide and external Reading Assignments
    • Take the Quiz (optional)
    • Participate in the Discussion Forum (Post, Comment and Rate)
    • Complete and submit Unit 7 Assignment (Lab 7)
    • Make entries to the Learning Journal

    Unit 8: Some GUI Programming
    • Review material in the textbook relating to the topics in the Assignment.
    • To reinforce your knowledge, try to do as many of the relevant exercises in earlier chapters of the textbook as possible.
    • Perform Lab 12 and post your answer in the Learning Journal
    • Post your answer to the question in the Discussion Forum and follow it up with approximately 3-4 comments to other students' posts. Rate other students’ posts.
    • Read through the Unit 9 Learning Guide
    • Take the Review Quiz in Unit 9
    • Complete the Course Evaluation

    Unit 9: Final Examination
    • Prepare for and submit the final examination.
    • The final exam will take place during Week 9. (Exact date and other details will be announced.)


    Course Requirements

    Assignments
    There are Assignments to be completed for each of the 8 Units in this course. You will be required to upload your assignments by the indicated deadline and in addition, to assess three of your classmates’ assignments according to the guidelines provided, during the following learning week. Failure to submit assignments could result in failure of the course.

    Discussion Forum
    There are Discussion Forum questions to be completed for each study unit in this course. In each unit, you will be required to post your response to the question in the forum. In addition, you must provide constructive commentary on at least three of your peers’ postings and rate their work between one and five according the guidelines provided.

    Discussion Forums are only active for the relevant learning week and it is not possible to contribute to a discussion forum once it is closed. Failure to participate in the Discussion Forums could result in failure of the course.

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

    Classroom Forum
    The Classroom Forum is a small forum available only to students in the same classroom or group. Participation in this forum is an excellent way to get to know your peers and is also a platform for raising issues and questions relating to the course. While it is not required to participate in this forum, it is highly recommended.

    Learning Journal
    The Learning Journal is a tool for self-reflection on the learning process. In addition to completing directed tasks, you should use the Learning Journal to document your activities, record problems you may have encountered and to draft answers for Discussion Forums and Assignments. The Learning Journal should be updated regularly (on a weekly basis), as the learning journals will be assessed by your instructor as part of your Final Grade.

    Quizzes
    For each unit of work, there is a self-quiz consisting of multiple choice and True/False questions. You will have multiple attempts to take the quiz and improve your results. The results of the self-quiz do not count towards your Final Grade. There are also two graded quizzes in the course, one in Unit 3 and the other in Unit 6. Both count towards your final grade. It is recommended that you complete the self-quiz to ensure that you have adequately understood the course materials.

    Final Examination
    The Final Exam will take place during 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.



    Policies

    Grading
    The University has established the following grading scale. All faculty members are expected to comply with this scale:
    Grade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.0
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.00
    Grades will be based on a standard 100-point scale with the following values and ranges:

    Grading Components and Weights
    Learning Journals10%
    Assignments30%
    Discussion Questions20%
    Graded Quizzes20%(10% each)
    Final Exam20%
    Grade Appeal
    Final Grades may be appealed when you believe that the grade you have been assigned for a course is unjust or unfair. For more information on the Grade Appeal procedure, please refer to the Student Handbook.

    Participation
    Non-participation is characterized by lack of assignment submission and/or inadequate contribution in discussion forum postings.
    • Assignments must be submitted on or before the deadline. A course timeline is provided in the course schedule. The instructor will specify the deadline for each assignment.
    • 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. Students should review the Late Assignment Policy appearing in the Student Handbook.
    Any student showing non-participation for 2 weeks (consecutive or non-consecutive) is likely to automatically fail the course.

    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. Please see the Student Handbook for more information.

    CS 1104  COMPUTER SYSTEMS 

    Syllabus

    Prerequisites:  CS 1103 Programming 2

    Course Description:

    This course is an introduction to computer systems. In this course we will begin by exploring the internal design and functionality of the most basic computer components. From there, we will use an online hardware simulator to actually “build” a computer and develop an assembler from the ground using concepts we will learn in the class. In the process, we will cover the ideas and techniques used in the design of modern computer hardware and discuss major trade-offs involved in system design as well as future trends in computer architecture and how those trends might affect tomorrow’s computers.


    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.
    • Computer Organization and Design Fundamentals, David L. Tarnoff, Copyright (C) 2005-2007.  All Rights Reserved.  Text used with permission of author.  Available from http://faculty.etsu.edu/tarnoff/138292/
    • Nisan and Schocken, The Elements of Computing Systems, MIT Press, 2005. Available here.

    Software Requirements/Installation

    This course will require the use of two software package.  Both require that your computer have a Java v1.5 JRE (Java Run Time) installed.  They are available from the following:
    Logism: Logism is an educational tool for designing and simulating digital logic circuits. It is available from: http://ozark.hendrix.edu/~burch/logisim/download.html
    TECS Software Suite:  The TECS Software suite is the companion software to the Nisan and Schocken text "The Elements of Computing Systems" it is available from: http://www.nand2tetris.org/software.php

    Learning Objectives and Outcomes:

    By the end of this course students will be able to:
    1. Understand principles of digital circuits and logic
    2. Explain boolean algebra
    3. Identify logic gains combinatorially and sequentially
    4. Describe basic principles of memory and the ALU within a computer system
    5. Recognize the relationship between machine language and the functioning of a computer system
    6. Examine basic assembler coding technique
    7. Understand software hierarchy

    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- Boolean Logic
    Week 2 Unit 2-Binary Arithmetic
    Week 3 Unit 3- Combinational Logic and the ALU 
    Week 4 Unit 4- Sequential Logic
    Week 5 Unit 5- Computer Architecture 
    Week 6 Unit 6- Machine Language
    Week 7 Unit 7- Assembler I
    Week 8 Unit 8- Assembler II
    Week 9 Unit 9- Course Review and Final Exam


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

    Unit 1: Boolean Logic
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the Discussion Forum (Post, Comment and Rate)
    • Make entries to the Learning Journal
    • Complete Exercise
    • Watch Optional Video Lectures
    • Take the Self- Quiz
    Unit 2: Binary Arithmetic
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the discussion forum (Post, Comment and Rate)
    • Watch Optional Video Lectures
    • Complete and submit Unit 2 Assignment
    • Make entries to the Learning Journal
    • Take the Self- Quiz
    Unit 3: Combination Logic and the ALU
    • Peer-Assess Unit 2 Assignment
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the discussion forum (Post, Comment and Rate)
    • Watch Optional Video Lectures
    • Complete and submit Unit 3 Assignment
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    Unit 4: Sequential Logic
    • Peer-Assess Unit 3 Assignment
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the discussion forum (Post, Comment and Rate)
    • Complete and submit Unit 4 Assignment
    • Watch the Optional Video Lectures
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Unit 5: Computer Architecture
    • Peer-Assess Unit 4 Assignment
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the discussion forum (Post, Comment and Rate)
    • Complete and submit Unit 5 Assignment
    • Watch the Optional Video Lectures
    • Make entries to the Learning Journal
    • Take the Self- Quiz

    Unit 6: Machine Language
    • Peer-Assess Unit 5 Assignment
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the discussion forum (Post, Comment and Rate)
    • Complete and submit Unit 6 Assignment
    • Watch the Optional Video Lectures
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    Unit 7: Assembler I
    • Peer-Assess Unit 6 Assignment
    • Read the Learning Guide
    • Complete Reading Assignments
    • Participate in the discussion forum (Post, Comment and Rate)
    • Complete and submit Unit 7 assignments
    • Watch the Optional Video Lectures
    • Make entries to the Learning Journal
    • Take the Self- Quiz

    Unit 8: Assembler II
    • Peer-Assess Unit 7 Assignment
    • Read the Learning Guide
    • Complete 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

    Assignments and Assessment Forms
    Some units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments and Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
     
    Learning Journal
    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 Assignments10%
    Written Assignments10%
    Learning Journals10%
    Two Graded Quizzes40%(20% each)
    Final Exam30%
    TOTAL100%

    Grading Scale
    This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Grade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.0
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    CS 2203: Databases 1

    Syllabus

    Prerequisites: None.

    Course Description:
    This course introduces the fundamental concepts necessary for designing, using and implementing database systems. We stress the fundamentals of database modeling and design, relational theory and the Structured Query Language (SQL).

    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. 
    The book can also be downloaded from: http://www.managedtime.com/freesqlbook.php

    Software Requirements/Installation:
    See description at the bottom part of this document. 

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Describe the differences between the network, hierarchical, relational, and entity relationship information models 
    2. Demonstrate knowledge of relational algebra 
    3. Describe the attributes and functions of database management systems (DBMS) 
    4. Create and normalize a database schema to meet the requirements of an information system 
    5. Create entity relationship (ER) diagrams to represent a database schema 
    6. Apply Structured Query Language (SQL) statements including (create, alter, select, insert, update, and delete) to manipulate both data structures and data within a database system 
    7. Apply SQL dynamically and statically within a program

    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).
    Unit 1 Week 1 - Databases and the Relational Data Model 
    Unit 2 Week 2 - Constraints, Relational Algebra, and Relational Calculus 
    Unit 3 Week 3 - Conceptual Data Model 
    Unit 4 Week 4 - Relational Database Design 
    Unit 5 Week 5 – An introduction to SQL 
    Unit 6 Week 6 – DDL and DML Commands
    Unit 7 Week 7 – Querying the Database using SQL 
    Unit 8 Week 8 –Database Programming 
    Unit 9 Week 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: Databases and the Relational Data Model
    • Read the Learning Guide and Reading Assignments 
    • Participate in the Discussion Forum (Post, Comment, Rate) 
    • Install and validate software (OpenOffice Base, Dia) if required 
    • Complete and submit Unit 1 Assignment 
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Unit 2: Constraints, Relational Algebra, and Relational Calculus
    • Peer-Assess 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: Conceptual Data Model
    • Peer-Assess 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: Relational Database Design
    • Peer-Assess 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: An introduction to SQL
    • Peer-Assess 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
    • Take the Self-Quiz
    • Take the Graded-Quiz 
    Unit 6: DDL and DML Commands
    • Peer-Assess 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
    • Take the Self-Quiz
    Unit 7: Querying the Database using SQL
    • Peer-Assess Unit 6 Assignment 
    • Read the Learning Guide and Reading Assignments 
    • Participate in the Discussion Forum (Post, Comment and Rate) 
    • Complete and submit Unit 7 Assignment 
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Database Programming
    • Peer-Assess 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:
    Programing Assignments & Assessment Forms
    This course has an assigned lab component. The assignments give you a chance to get hands-on  experience with the technology that we are studying. In this course, the focus is on relational database systems and all of the assignments have been designed so that you can implement them using a simple database such as the OpenOffice Database. The OpenOffice database uses the HSQLDB engine which is a SQL-92 and SQL-2008 compatible database engine. We will also be using the Dia diagram tool to create ER diagrams. It is acceptable to use another solution comparable to these technologies as long as you can produce output that can be utilized by your peers.
    You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Learning Journals10%
    Discussion Assignments20%
    Programming Assignments20%
    Graded Quiz20%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.


     Software Requirements/Installation:
    In this course, we will be learning about database systems and will be conducting database lab exercises. 
    The course has been designed so that it can be completed using freely available open source tools including:
    OpenOffice Base Version 3.3.0 (or current version) – The database included in the OpenOffice suite.
    OpenOffice Base uses the HSQLDB database engine, which is compliant with the ANSI SQL-92 and the ANSI SQL-2008 specifications. The open office suite can be downloaded at the following url: 
    Dia version 0.97.2 – The Dia (diagram editor) application provides a free open source tool that can be used to create diagrams including flowcharts and the Entity Relationship diagrams required in this course. Dia can be downloaded from the following url
    You also have a choice to use any other relational database system that supports ANSI SQL such as DB2-
    Express-2, which is the database developed by IBM and used in examples within the book. You can also use MySQL. HyperSQL will be available for users of the Virtual Computing Lab as an alternative to OpenOffice if desired. The University of the People will not provide an instance of DB2-Express, MySQL or Oracle in the virtual computing lab. If you opt to use DB2 Express, Oracle, or MySQL on your personal computer they can be accessed at the following URLs: 
    This course will require that the student prepare and submit assignments to be subjected to a peer review and assessment process. To ensure that all peer assessors can properly view any assignment, this course requires the following file formats and associated technology tools to be sued. For all text based assignment submissions, the following and ONLY the following text document formats will be acceptable: 

    Word 95/2000 or RTF (rich text format) formats which are supported by the following: 
    For spreadsheet data the standard Excel 97/2000/XP format is acceptable and supported by the following apps: 
    For any graphics, pictures, charts, or figures the grahics objects should be placed within either a text document (as specified above) or using a presentation format that is compatible with Microsoft Powerpoint 97/2000/XP which is supported by the following apps: 
    Each of the preceding office applications can be used. The openoffice application is the standard and recommended application for the University of the People. When using OpenOffice, make sure that you set the default format to a Microsoft Office 97/2000/XP compatible format. 
    For students who cannot install OpenOffice on their computer it is recommended that they use one of free web based applications such as Zoho, ThinkFree Online, or GoogleDocs.
    For students who are using mobile devices there are a number of free office compatible apps including:
    • Kingsoft Office 
    • Documents to Go 
    • OfficeSuite • OliveOffice 
    • SmartOffice Lite and others 
    The OpenOffice suite of tools is installed in the Virtual Computing Lab and can be used by students who do not have the ability to install applications on the computer they use.
    This course also requires a graphics tool to create entity relationship (ER) diagrams. The recommended tool is the Dia Diagram Editor (http://dia-installer.de/). Dia is also installed in the Virtual Computing Lab environment.
    When using Dia make sure to export drawings as jpeg image files and then insert them either into a presentation or text document using one of the tools defined above.
    When creating the SQL assignments make sure that you submit a text document that contains your sql statements.
    CS 2204 COMMUNICATIONS AND NETWORKING

    Syllabus

    Prerequisites: CS 1104 Computer Systems

    Course Description:

    Communications and Networking is a course where you will get to know and understand the basics of networking and electronic communication. Throughout the course, we will mainly be focusing on the two most prevalent reference models of network definition, OSI and TCP/IP. We will be studying these in detail and will explore every layer of these models. By the end of the course, you will be having a fair understanding of data is transferred from one computer to another, in a classroom or in a college campus or across the cities or over the internet.

    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 textbook for this course is listed below, and can be readily accessed using the provided link. 
    • Tanenbaum, A.S., Wetherall, D.J. (2011). Computer Networks, 5th, 2011. Pearson Education, Inc. New York, New York. (Chapter 2, only.

    Learning Objectives and Outcomes:

    By the end of this course students will be able to:
    1. Identify and Assess the OSI and TCP/IP models and their various layers
    2. Contrast wire-based and wireless methods of data transmission
    3. Compare data error detection and correction techniques
    4. Explain routing of data packets in a network and between networks
    5. Examine flow control and congestion handling in a network 

    Course Schedule and Topics

    This course will cover the following topics in eight learning sessions.
    Week 1: Unit 1- Introduction to Communication & Networks
    Week 2: Unit 2- The Physical Layer
    Week 3: Unit 3- The Physical Layer (continued) and the Data Link Layer
    Week 4: Unit 4- The Network Layer (IPv4 and IPv6)
    Week 5: Unit 5- The Network Layer (Routing)
    Week 6: Unit 6- The Transport Layer (UDP)
    Week 7: Unit 7- The Transport Layer (TCP)
    Week 8: Unit 8- The Application Layer and Network Security
    Week 9: Unit 9- Course Review and 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 Communication & Networks
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    Unit 2: The Physical Layer
    • Peer-assess Unit 1 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    Unit 3: The Physical Layer (continued) and the Data Link Layer
    • Peer-assess Unit 2 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    • Take and submit the Graded Quiz
    Unit 4: The Network Layer (IPv4 and IPv6)
    • Peer-assess Unit 3 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    Unit 5: The Network Layer (Routing)
    • Peer-assess Unit 4 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    Unit 6: The Transport Layer (UDP)
    • Peer-assess Unit 5 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    • Take and submit the Graded Quiz
    Unit 7: The Transport Layer (TCP)
    • Peer-assess Unit 6 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Written Assignment
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    Unit 8: The Application Layer and Network Security
    • Peer-assess Unit 7 Assignment
    • Read through the Learning Guide and the Reading Assignment
    • Complete the Discussion Assignment by posting in the Discussion Forum
    • Respond to and rate three of your fellow classmates’ posts in the Discussion Forum
    • Complete and submit the Learning Journal Task
    • Take and submit the Self-Quiz
    • Take the Review quiz
    • Complete and Submit the CS 2204 Course Evaluation
    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 from the Thursday to the Sunday of Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor



    Course Requirements:

    Assignments
    There is an Assignment to be completed for each of the study units in this course except for Unit 8. You will be required to upload your assignments by the indicated deadline. Failure to submit assignments may result in failure of the course.

    Discussion Forum
    There are Discussion Forum questions to be completed for each study unit in this course. In each unit, you will be required to post your response to the question in the forum. In addition, you must provide constructive commentary on at least three of your peers’ postings and rate their work between one and five according to the guidelines provided.

    Discussion Forums are only active for the relevant learning week and it is not possible to contribute to a discussion forum once the learning week has come to an end. Failure to participate in the Discussion Forums may result in failure of the course

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

    Learning Journal
    The Learning Journal is a tool for self-reflection on the learning process. In addition to completing directed tasks, you should use the Learning Journal to document your activities, record problems you may have encountered and to draft answers for Discussion Forums and Assignments. The Learning Journal should be updated regularly (on a weekly basis), as the learning journals will be assessed by your instructor as part of your Final Grade.
    Graded Quizzes
    There will be two graded quizzes in this course, one in Unit 3 and the other in Unit 6. As opposed to the self-quizzes, which can be found in each unit and are non-graded, the graded quizzes do count towards your final grade.

    Final Examination
    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.
    Policies

    Grading
    The University has established the following grading scale. All faculty members are expected to comply with this scale:
    Grade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.0
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.00

    Grades will be based on a standard 100-point scale with the following values and ranges:

    Grading Components and Weights
    Learning Journal10%
    Written Assignments25%
    Discussion Forums
    Graded Quizzes
    20%
    20% (10% each)
    Final Exam25%

    Grade Appeal
    Final Grades may be appealed when you believe that the grade you have been assigned for a course is unjust or unfair. For more information on the Grade Appeal procedure, please refer to the Student Handbook.

    Participation
    Non-participation is characterized by lack of assignment submission and/or inadequate contribution in discussion forum postings.
    • Assignments must be submitted on or before the deadline. A course timeline is provided in the course schedule. The instructor will specify the deadline for each assignment.
    • Occasionally there may be a legitimate reason for submitting an assignment late. Late assignments will not be accepted, and there will be no make-up assignments. Students should review the Late Assignment Policy appearing in the Student Handbook.
    Any student showing non-participation for 2 weeks (consecutive or non-consecutive) is likely to automatically fail the course.

    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
    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. Please see the Student Handbook for more information.
    CS 2205  WEB PROGRAMMING 1

    Syllabus

    Prerequisites: CS 1103 Programming 2

    Course Description:

    This course is devoted to the development of Web sites with standards considering client-side programming. Students learn how the internet works, the web standards mode, web design concepts, HTML, CSS, JavaScript, XML and will be introduced to PHP. Participants in the course will be required to carry out practical work in terms of assignments and small projects.

    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.
    • This course does not contain a main textbook; resources to all required reading will be provided in the course Learning Guide for each week. Additional Resources can be found at More Free books and eResourcesFile

    Software Requirements/Installation

    None.

    Learning Objectives and Outcomes:

    By the end of this course students will be able to:
    1. Examine the protocols and systems used on the web.
    2. Identify the functions of clients and servers on the web.
    3. Design interactive web sites using standards for maximum usability and accessibility.

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

    Unit 1 Week 1– The Internet
    Unit 2 Week 2Introduction to HTML
    Unit 3 Week 3Advanced HTML
    Unit 4 Week 4 Cascading Styling Sheets: CSS
    Unit 5 Week 5 JavaScript
    Unit 6 Week 6 XML
    Unit 7 Week 7 Server Side Programming with PHP
    Unit 8 Week 8 Introduction to PHP programming: syntax, variables, functions.

    Learning Guide: The following is an outline of how this course will be conducted, with suggested best practices for students.
    Unit 1: The Internet
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Reading Assignment


    Study the reading material within the links provided that cover the topics of the first unit.
    Unit 2: Introduction to HTML
    • Peer-Assess 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
    • Take the Self-Quiz

    Reading Assignment


    Study the material of the links provided that cover the topics of the second unit.
    1. Information Architecture—planning out a web site, by Jonathan Lane.
    2. What does a good web page need?, by Mark Norman Francis.
    3. Three tutorials on “Getting Started with HTML”
    Unit 3: Advanced HTML
    • Peer-Assess 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
    • Graded Quiz

    Reading Assignment

    Study the material of the links provided that cover the topics of the second unit.
    Your reading assignment for this week w3schools.com. 
    Unit 4: Cascading Styling Sheets: CSS
    • Peer-Assess 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
    • Take the Self-Quiz

    Reading Assignment


    1. CSS basics, by Christian Heilmann.
    2. Inheritance and Cascade, by Tommy Olsson.
    3. Text styling with CSS, by Ben Henick.
    4. The CSS layout model - boxes, borders, margins, padding, by Ben Henick.
    Unit 5: JavaScript
    • Peer-Assess 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
    • Take the Self-Quiz
    • Take the Graded Quiz

    Reading Assignment


    Read from the following links:
    1. Programming - the real basics!, by Christian Heilmann
    2. What can you do with JavaScript?, by Christian Heilmann
    3. Your first look at JavaScript, by Christian Heilmann
    Unit 6: XML
    • Peer-Assess 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
    • Take the Self-Quiz

    Reading Assignment

    Unit 7: Server Side Programming with PHP
    • Peer-Assess Unit 6 Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (Post, Comment and Rate)
    • Complete and submit Unit 7 assignments

    Reading Assignment


    Read the official introduction to PHP at: http://php.net/manual/en/introduction.php
    Follow the PHP Tutorial to read more about PHP: http://www.w3schools.com/php/php_intro.asp
    Unit 8: Introduction to Mobile Web
    • Peer assess Unit 7 Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Read the Unit 9 Learning Guide carefully for instructions on the Final Exam
    • Take the Review Quiz
    • Complete and submit the anonymous Course Evaluation

    Reading Assignment


    Please read the following articles about Mobile Web.
    Smashing Magazine: Guidelines For Mobile Web Development: http://www.smashingmagazine.com/guidelines-for-mobile-web-development/
    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

     Assignments & Assessment Forms
    Some units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 Assignments10%
    Written Assignments10%
    Learning Journals10%
    Two Graded Quizzes40%
    Final Exam30%
    TOTAL100%

    Grading Scale This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    CS 2301: Operating Systems 1

    Syllabus

    Prerequisites: None.

    Course Description: The course Operating Systems I is the first of two courses designed to explain the intricacies of modern operating systems to the students. Throughout this course, students will be learning about the basic structure of an operating system in detail. There are the three key ideas we’re going to learn about over the course of OS1 and OS2: virtualizationconcurrency, and persistence. In learning about these ideas, we’ll learn all about how an operating system works, including how it decides what program to run next on a CPU, how it handles memory overload in a virtual memory system, how virtual machine monitors work, how to manage information on disks, and even a little about how to build a distributed system that works when parts of them have failed.  OS1 will focus entirely on the Windows O/S and Virtualization. OS2 will continue with the concepts of concurrency, and persistence and focus on the Linux operating system.

    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: 
    Computer with Windows 7 or higher Operating System or VM Ware that will allow you to run a Windows 7 or higher OS.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to: 
    1. Examine fundamental principles of how operating systems work.
    2. Explain the various types of operating systems and examine the advantages and disadvantages of these different types.
    3. Analyze the basic principles of effective operating systems design.

    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 Operating Systems
    Week 2: Unit 2 - Abstraction and Process

    Week 3: Unit 3
     - Scheduling

    Week 4: Unit 4
     - Abstraction

    Week 5: Unit 5
     - Address Translation and Segmentation

    Week 6: Unit 6 - 
    Paging

    Week 7: Unit 7 - 
    Physical Memory

    Week 8: Unit 8 - 
    Windows Security

    Week 9: Unit 9 - 
    Course Review and 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 Operating Systems
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Abstraction and Process
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Scheduling
    • Peer assess Unit 2 Programming Assignment
    • Read the Learning Guide and the Reading Assignment
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    Unit 4: Abstraction
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Address Translation and Segmentation
    • Peer assess Unit 4 Programming Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Paging
    • Peer assess Unit 5 Programming Assignment
    • Read the Learning Guide and the Reading Assignment
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    Unit 7: Physical Memory
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Windows Security
    • Peer assess Unit 7 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • 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
    • Complete and submit the anonymous Course Evaluation
    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:
    Programming Assignments & Assessment FormsSome units in this course require that you complete a Programming Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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. Please note that each assignment grade is comprised of a combination of your submission (90%) and your peer assessments (10%). Failure to submit Programming Assignments and/or Assessment Forms may result in failure of the course. All assignments must be submitted in APA format, including a Title Page, Conclusion, and References Page.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required 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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments10%
    Programming Assignments10%
    Learning Journals10%
    Two Graded Quizzes40%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-participation is characterized by lack of any assignment submissions, inadequate contributions to the Discussion Forums, and/or lack of peer feedback to Discussion/Programming 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.
    CS2401: Software Engineering 1

    Credits: 3
    Prerequisites: CS 1103 Programming 2
    Recommended:

    Course Description: Software Engineering is a broad topic that begins with the general introduction to software development and then onto the identification and understanding of the important phases of any software project . This course focuses on the pragmatic aspects concerned with the production of software from early inception to post-release activities, such as development processes, requirements analysis, design methodologies, development methodologies, verification and testing, and quality control. We will be focusing on Agile Development and Object Oriented Development Techniques, use of UML and other related methodologies. By the end of the course you will know what it takes to be a software engineer/software engineering researcher, understand how projects are planned and the techniques that are used to validate, test, and improve their performance.

    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.
    Additional Text

    Software Requirements/Installation: No special requirements.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Explain and apply software engineering concepts spanning the entire software production process.
    2. Implement different software engineering techniques and methodologies.
    3. Implement different views of software systems using UML diagrams.
    4. Describe various project management activities including, software re-engineering, re-use, and software quality assurance methodologies.

    Course Schedule and Topics: This course will cover the following topics in eight learning sessions, with one Unit per week.
    Week 1: Unit 1 - Introduction to Software Engineering, SDLC
    Week 2: Unit 2 - Software Requirements and Architecture
    Week 3: Unit 3 - USE Case Modeling and UML and Design
    Week 4: Unit 4 - Analysis and Design
    Week 5: Unit 5 - Implementation, Testing. Introduction to Modeling and System Specifications
    Week 6: Unit 6 - Software Measurement and Estimation
    Week 7: Unit 7 - Design Patterns, Information Security
    Week 8: Unit 8 - Software Reengineering, Documentation
    Week 9: Unit 9 - Course Review and 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 Software Engineering, SDLC
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Software Requirements and Architecture
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: USE Case Modeling and UML
    • Peer-assess Unit 2 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self Quiz
    Unit 4: Analysis and Design
    • Peer-assess Unit 3 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    Unit 5: Implementation, Testing. Introduction to Modeling and System Specifications
    • Peer-assess Unit 4 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Software Measurement and Estimation
    • Peer-assess Unit 5 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self Quiz
    Unit 7: Design Patterns
    • Peer-assess Unit 6 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Graded-Quiz
    • Take the Review Quiz
    Unit 8: Information Security
    • Read the Learning Guide and the Reading Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the course survey
    Unit 9: Course Review and Final Exam
    • Review the course and take the Review Quiz; it will not be included in the final grade
    • Prepare for, take, and submit the Final Exam
    • The Final Exam will take place during Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor

    Course Requirements:
    Written Assignments & Assessment FormsSome units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 exam will be provided during Week/Unit 8. No outside materials can be used during taking of the final exam, unless specifically communicated otherwise.
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments10%
    Written Assignments10%
    Learning Journals10%
    Graded Quizzes40%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    Any materials cited in this course should be referenced using the style guidelines established by the American Psychological Association (APA), unless otherwise stated. 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.
    CS 3303 DATA STRUCTURES

    Syllabus

    Prerequisites: CS 1103 Programming 2

    Course Description:

    This course introduces the fundamental concepts of data structures and the algorithms that proceed from them. Although this course has a greater focus on theory than application the assignments, examples, and cases introduced throughout the course help to bridge the gap between theoretical concepts and real world problem solving. We will be using a software tool that will enhance our understanding of the operation and function of the data structures and algorithms explored throughout the course by visually animating examples of data structures and algorithms so that we can understand their operation. Key topics within this course will include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, tress, and graphs), and the basics of algorithmic analysis.

    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.
    A Practical Introduction to Data Structures and Algorithms Analysis, Edition 3.1 By Clifford A. Shaffer
    Copyright © 2009-2011 by Clifford A. Shaffer
    Department of Computer Science, Virginia Tech University
    Data Structures and Algorithms: Annotated Reference with Examples
    By Granville Barnett and Luca Del Tongo
    Copyright © 2008 by Granville Barnett and Luca Del Tongo
    Released to public availability by Dot.NetSlackers
    Available for download from the course homepage

    Software Requirements/Installation:

    Data structures is a course that is steeped in theory. The focus in this course is not on the development of programs but rather understanding basic computer science concepts and as such this course will not require a lot of development with a programming language. This course does, however, present the implementation of data structures and basic algorithms through the use of pseudo code and java code. Several examples of algorithms will be implemented using Java programming and then animated and visualized with the Jeliot tool (http://cs.joensuu.fi/jeliot/). Jeliot can be executed directly form a Java enabled browser (including Google Chrome, Windows Internet Explorer, and Mozilla Firefox).
    Due to issues with the Jeliot tool, some students may find it easier or necessary to use Eclipse for the Assignments. Eclipse comes in two versions, a Cloud environment named Orion and a Desktop environment named Neon.  Either can be used to complete assignments.  Both version can be found at the following link: http://www.eclipse.org/downloads/. One caveat, the Eclipse software versions and packages are constantly updated, the onus is on the student to stay current. Support can be found via Eclipse message boards and through Google.

    Learning Objectives and Outcomes:

    By the end of this course students will be able to:
    1. Implement basic data structures and algorithms using the Java language.
    2. Select the appropriate data structure or algorithm to solve a problem.
    3. Apply methods of performance evaluation including asymptotic analysis, to assess data structures and associated algorithms.
    4. Develop an understanding of standard data structures, including lists, stacks, queues, binary search trees, and hash tables and be able to articulate the characteristics and operation of each.

    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 Data Structures and Algorithms

    Week 2: Unit 2- 
    Algorithm Analysis

    Week 3: Unit 3
     Lists, Stacks, Queues, and Dictionaries

    Week 4: Unit 4
     Binary trees

    Week 5: Unit 5
     Non-binary Trees

    Week 6: Unit 6- 
    Internal Sorting techniques and algorithms

    Week 7: Unit 7-
     File Processing and external sorting

    Week 8: Unit 8- 
    Searching and indexing techniques and algorithms

    Week 9: Unit 9-  
    Review 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 Data Structures and Algorithms
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Algorithm Analysis
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Optionally watch the online video lectures on Asymptotic Analysis presented at MIT
    Unit 3: Lists, Stacks, Queues, and Dictionaries
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Unit 4: Binary Trees
    • Peer assess the Unit 3 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Unit 5: Non-Binary Trees
    • Peer assess the Unit 4 assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 6: Internal Sorting techniques and algorithms
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz 
    Unit 7: File processing and external sorting
    • Peer assess the Unit 6 assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Searching and Indexing Techniques and Algorithms
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • 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:
    Assignments & Assessment Forms
    Some units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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:Each graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments20%
    Written Assignments20%
    Learning Journals10%
    Graded Quiz20%
    Final Exam30%
    TOTAL100%
    Grading Scale This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    CS 3304: Analysis of Algorithms

    Syllabus

    Prerequisites: None.

    Course Description: This course builds on knowledge of elementary algorithm analysis gained in CS 3303: Data Structures, and introduces more advanced algorithms. Implementation strategies for algorithms including Brute Force, Branch and Bound, Divide and Conquer, Greedy, Linear Programming and Dynamic programming as well as techniques to analyze and evaluate the complexity of algorithms are taught.  Finally the concepts of NP-complete, hard problems, impossible problems, and the halting problem will be explored.

    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.
    • This course makes use of two main textbooks (below) and various other assigned readings. In some cases, the material presented in each textbook is redundant or repeated. However, both resources have been provided in this case because each textbook provides a unique perspective on the topic and those differences in perspective can be helpful in learning and understanding the material.
    • Schaffer, C.A. (2011). A Practical Introduction to Data Structures and Algorithms Analysis (3.1 ed.). Blacksburg, VA: Virginia Tech University, Department of Computer Science. Available at http://people.cs.vt.edu/~shaffer/Book/C++3e20100119.pdf
    • Dasgupta, S., Papadimitriou, C.H., & Vazirani, U.V. (2006). Algorithms. Berkeley, CA: University of California Berkeley, Computer Science Division. Available at http://www.cse.iitd.ernet.in/~naveen/courses/CSL630/all.pdf

    Software Requirements/Installation: Analysis of algorithms is a course that is steeped in theory. The focus in this course is not on the development of programs but rather understanding basic computer science concepts and as such this course will not require a lot of development with a programming language. This course does, however, present the implementation of data structures and basic algorithms through the use of pseudo code and java code. Several examples of algorithms will be implemented using Java programming. Although you can use any java compiler and IDE to develop your code, a good option that does not require any local installation of software is the Cloud9 IDE (Integrated Development Environment) which can be accessed at (https://c9.io). Using Cloud9, your algorithms can be executed directly form a Java enabled browser (including Google Chrome, Windows Internet Explorer, and Mozilla Firefox).

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Articulate the characteristics and design of fundamental patterns of algorithms
    2. Implement algorithms using the Java programming language
    3. Understand the characteristics of the different algorithm designs including:
      • Brute Force
      • Backtracking
      • Branch and Bound
      • Greedy
      • Divide and Conquer
      • Linear Programming
      • Dynamic Programming
    4. Asymptotically analyze algorithms
    5. Describe and discuss theoretical computer science concepts such as hard problems, NP completeness, and the halting problem.

    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 - Review of Data Structures and Algorithms
    Week 2: Unit 2 - Divide and Conquer Algorithms

    Week 3: Unit 3
     - Graphs (Part 1)

    Week 4: Unit 4
     - Graphs (Part 2)

    Week 5: Unit 5
     - Dynamic Programming

    Week 6: Unit 6 - 
    Linear Programming and Reductions

    Week 7: Unit 7 - 
    Limits to Computation (Part 1)

    Week 8: Unit 8 - 
    Limits to Computation (Part 2)

    Week 9: Unit 9 - 
    Review and Final Exam

    Learning Guide: The following is an outline of how this course will be conducted, with suggested best practices for students.
    Unit 1: Review of Data Structures and Algorithms
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Divide and Conquer Algorithms
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Graphs (Part 1)
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz 
    Unit 4: Graphs (Part 2)
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 5: Dynamic Programming
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Linear Programming and Reductions
    • Peer assess 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 and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    • Take the Self-Quiz
    Unit 7: Limits to Computation (Part 1)
    • Peer assess Unit 6 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Limits to Computation (Part 2)
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • 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
    • Complete and submit the anonymous Course Evaluation
    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 Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor

    Course Requirements:
     Programming Assignments & Assessment FormsThis course will require each student to complete five Programming Assignments. These assignments are designed to help the student bridge the gap between theory and practice.  Each of the five assigments will require that the student implement the topic being explored, either in terms of a design or a working algorithm developed in the java language. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Learning Journals10%
    Discussion Assignments20%
    Assignments20%
    Two Graded Quizzes20%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 3305: Web Programming 2

    Syllabus

    Prerequisites: None.

    Course Description: This course builds on the concepts and issues discussed in Web Programming 1 surrounding software development for programs that operate on the web and the Internet. Existing and emerging web development topics to be covered include web applications, web services, enterprise web development, markup languages, and server-side programming.

    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.
    • Achour, M., Betz, F., Dovgal, A., Lopes, N., Magnusson, H., Richter, G., Seguy, D., Vrana, J. (2013). PHP Manual. PHP Documentation. Retrieved December 15, 2013, from http://www.php.net/manual/en/index.php

    Software Requirements/Installation: The course requires a current browser (Firefox, Internet Explorer, Chrome, or Opera) and a Linux terminal.  Such terminal is included with Mac OS, Linux OS, and can be downloaded for Windows at http://www.putty.org/

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Describe the features of Web 2.0.    
    2. Compare and contrast Web 1.0 and 2.0.   
    3. Apply knowledge to hands-on projects on an Internet server.   
    4. Demonstrate programming knowledge of PHP.    
    5. Apply knowledge to administer Internet applications.   
    6. Apply knowledge to implement Drupal.   
    7. Apply knowledge to create Drupal plugins.

    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 Web 2.0 Technologies
    Week 2: Unit 2 - Compiling Server Software From Source

    Week 3: Unit 3
     - Introduction to PHP

    Week 4: Unit 4
     - Advanced PHP Programming

    Week 5: Unit 5
     - eCommerce Applications

    Week 6: Unit 6 - 
    Drupal CMS   

    Week 7: Unit 7 - 
    Drupal Module Development

    Week 8: Unit 8 - 
    Server Performance

    Week 9: Unit 9 - 
    Course Review and 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 Web 2.0 Technologies
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Compiling Server Software From Source
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Introduction to PHP
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Advanced PHP Programming
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: eCommerce Applications
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Drupal CMS
    • Peer assess 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 and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
     Unit 7: Drupal Module Development
    • Peer assess Unit 6 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Server Performance
    • Peer assess Unit 7 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • 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
    • Complete and submit the anonymous Course Evaluation
    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:
    Programming Assignments & Assessment FormsSome units in this course require that you complete a Programming Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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 Programming Assignments and/or Assessment Forms may result in failure of the course.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments10%
    Programming Assignments10%
    Learning Journals10%
    Two Graded Quizzes40%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 3306: Databases 2

    Syllabus

    Prerequisites: CS 2203: Databases 1.

    Course Description: This course will cover server database management, configuration and administration, security mechanisms, backup and recovery; transact SQL Programming, and an introduction to database web-application development and security.

    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.
    • Sharma, N., Perniu, L., Chong, R.F., Iyer, A., Nandan, C., Mitea, A.C., Nonvinkere, M., & Danubianu, M. (2010). Database Fundamentals (1st ed.). Markham, ON: IBM Corporation. 
    • Silberschatz, A., Korth, H.F., & Sudarshan, S. (2001). Database System Concepts (4th ed.). New York, NY: McGraw-Hill.
    • Din, A.I. (1994). Structured Query Language (SQL): A Practical Introduction. Manchester, UK: NCC Blackwell. Available at http://www.managedtime.com/freesqlbook.php  
    • Simpson, B. & Toussi, F. (Eds.). (2013). HyperSQL User GuideThe HSQL Development Group.
    • HyperSQL website by The HSQL Development Group. Available at http://hsqldb.org/
    Some of the texts above can be found in this archive.

    Software Requirements/Installation: In this course, we will be learning about database systems and will be conducting database lab exercises.  The course has been designed so that it can be completed using freely available open source tools including:
    OpenOffice Base Version 3.3.0 (or current version) – The database included in the OpenOffice suite.  OpenOffice Base uses the HSQLDB database engine, which is compliant with the ANSI SQL-92 and the ANSI SQL-2008 specifications.  The open office suite can be downloaded at the following url: http://www.openoffice.org/download/
    Dia version 0.97.2 – The Dia (diagram editor) application provides a free open source tool that can be used to create diagrams including flowcharts and the Entity Relationship diagrams required in this course.  Dia can be downloaded from the following url: http://dia-installer.de/download/index.html.en
    You also have a choice to use any other relational database system that supports ANSI SQL such as DB2-Express-c, which is the database developed by IBM and used in examples within the book. You can also use MySQL.  HyperSQL will be available for users of the Virtual Computing Lab as an alternative to OpenOffice if desired.  The University of the People will not provide an instance of DB2-Express, MySQL or Oracle in the virtual computing lab.  If you opt to use DB2 Express, Oracle, or MySQL on your personal computer they can be accessed at the following URLs:

    Assignment Format Requirements: This course will require that the student prepare and submit assignments to be subjected to a peer review and assessment process.  To ensure that all peer assessors can properly view any assignment, this course requires the following file formats and associated technology tools to be used.   
    For all text based assignment submissions, the following and ONLY the following text document formats will be acceptable:
    For spreadsheet data the standard Excel 97/2000/XP format is acceptable and supported by the following apps:
    For any graphics, pictures, charts, or figures the grahics objects should be placed within either a text document (as specified above) or using a presentation format that is compatible with Microsoft Powerpoint 97/2000/XP which is supported by the following apps:
    Each of the preceding office applications can be used.  The openoffice application is the standard and recommended application for the University of the People.  When using OpenOffice, make sure that you set the default format to a Microsoft Office 97/2000/XP compatible format.
    For students who cannot install OpenOffice on their computer it is recommended that they use one of free web based applications such as Zoho, ThinkFree Online, or GoogleDocs.  
    For students who are using mobile devices there are a number of free office compatible apps including:
    • Kingsoft Office
    • Documents to Go
    • OfficeSuite
    • OliveOffice
    • SmartOffice Lite and others
    The OpenOffice suite of tools is installed in the Virtual Computing Lab and can be used by students who do not have the ability to install applications on the computer they use.
    This course also requires a graphics tool to create entity relationship (ER) diagrams.  The recommended tool is the Dia Diagram Editor (http://dia-installer.de/). Dia is also installed in the Virtual Computing Lab environment.
    When using Dia make sure to export drawings as jpeg image files and then insert them either into a presentation or text document using one of the tools defined above.  
    When creating the SQL assignments make sure that you submit a text document that contains your SQL statements.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Examine server database management and its attributes
    2. Distinguish between configuration and administration of database systems
    3. Describe database security mechanisms used to protect data
    4. Understand backup and recovery procedures and apply to an active database
    5. Apply transact SQL Programming to solve applied business problems
    6. Describe database web-application development.
    7. Apply Hyper Structured Query Language (SQL) statements to manipulate both data structures and data within a database system

    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 Data models

    Week 2: Unit 2 -
    Transaction Management

    Week 3: Unit 3
     - Application Development and Admin

    Week 4: Unit 4
     - Security Mechanisms

    Week 5: Unit 5
     - Backup and Recovery

    Week 6: Unit 6 -
    Transact SQL Programming

    Week 7: Unit 7 -
    Database Web-Application Development

    Week 8: Unit 8 -
    Technology trends and databases

    Week 9: Unit 9 -
    Course Review and Final Exam

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

    Unit 1: Principles: Introduction to Data models
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Principles: Transaction Management
    • Peer assess Unit 1 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Application Development and Admin
    • Peer assess Unit 2 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Security Mechanisms
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Backup and Recovery
    • Peer assess Unit 4 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Transact SQL Programming
    • Peer assess Unit 5 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 7: Database Web-Application Development
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Technology trends and databases
    • Peer assess Unit 7 Written Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and Submit 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 Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor

    Course Requirements:

    Written Assignments & Assessment FormsSome units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.

    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Learning Journals10%
    Written Assignments20%
    Discussion Assignments20%
    Two Graded Quizzes20%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 3307: Operating Systems 2

    Syllabus

    Prerequisites: CS 2301 Operating Systems 1

    Course Description: This course builds on principles learned in Operating Systems 1 to approach complex computer operating system topics such as networks, parallel computing, remote procedure call, concurrency, transactions, shared memory, message passing, scale, naming, and security including UNIX/Linux.

    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 and materials 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.
    This course builds on principles learned in Operating Systems 1 to approach complex computer operating system topics such as networks, parallel computing, remote procedure call, concurrency, transactions, shared memory, message passing, scale, naming, and security including UNIX/Linux.
    Texts:
    Arpaci-dusseau. R., arpaci-dusseau, a. (2012). Operating systems – three easy pieces. University of wisconsin–madison: http://www.cs.albany.edu/~sdc/CSI500/Fal13/OSTEP/ (Chapter by chapter form)
    Shotts, W. (2013). The Linux® Command Line (2nd Edition). Also available online at - http://linuxcommand.org/tlcl.php
    Linux Training CBT’s. Omni Linux: Download zip file
    Assignment Format Requirements: This course will require that the student prepare and submit assignments to be subjected to a peer review and assessment process. To ensure that all peer assessors can properly view any assignment, this course requires the following file formats and associated technology tools to be sued.
    For all text based assignment submissions, the following and ONLY the following text document formats will be acceptable:
    Word 95/2000 or RTF (rich text format) formats which are supported by the following:
    For spreadsheet data the standard Excel 97/2000/XP format is acceptable and supported by the following apps:
    For any graphics, pictures, charts, or figures the graphics’ objects should be placed within either a text document (as specified above) or using  a presentation format that is compatible with Microsoft PowerPoint 97/2000/XP which is supported by the following apps:
    Each of the preceding office applications can be used. The OpenOffice application is the standard and recommended application for the University of the People. When using OpenOffice, make sure that you set the default format to a Microsoft Office 97/2000/XP compatible format.
    For students who cannot install OpenOffice on their computer, it is recommended that they use a free web based application such as Zoho, Think Free Online, or GoogleDocs.
    For students who are using mobile devices, there are a number of free office compatible apps including:
    • Kingsoft Office
    • Documents to Go
    • OfficeSuite
    • OliveOffice
    • SmartOffice Lite and others
    The OpenOffice suite of tools is installed in the Virtual Computing Lab and can be used by students who do not have the ability to install applications on the computer they use.
    When creating the Linux assignments make sure that you submit a text document that contains your Linux statements.

    Software Requirements/Installation: In this course, we will learn about operating systems and will conduct operating systems lab exercises.  This course has been designed so that it can be completed using freely available open source tools including:
    You have a choice of any Linux/UNIX windows emulators, VM ware player or workstation to verify the correctness of your Linux assignments:

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Identify and analyze the evolution of operating systems
    2. Identify and describe the components of operating systems
    3. Identify and analyze the basic functions of modern operating systems
    4. Identify and describe the tradeoffs required in operating system design
    5. Describe the major differences between operating systems such as distributed, single and client server
    6. Identify and describe the security controls required for modern operating systems

    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 and Concurrency I
    Week 2: Unit 2 - Concurrency II

    Week 3: Unit 3
     - Concurrency III

    Week 4: Unit 4
     - Persistence I

    Week 5: Unit 5
     - Persistence II

    Week 6: Unit 6 -
    Persistence III

    Week 7: Unit 7 -
    File Security

    Week 8: Unit 8 -
    Operating System Security

    Week 9: Unit 9 -
    Course Review and 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 and Concurrency I
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Concurrency II
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Concurrency III
    • Peer assess Unit 2 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Persistence I
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Persistence II
    • Peer assess Unit 4 Written 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Persistence III
    • Peer assess Unit 5 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
     Unit 7: File Security
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Operating System Security
    • Peer assess Unit 7 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Take the Self-Quiz
    • Read the Unit 9 Learning Guide carefully for instructions on the Final Exam
    • Take the Review Quiz
    • Complete and submit the anonymous Course Evaluation
    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:
    Programming Assignments & Assessment FormsSome units in this course require that you complete a Programming Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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 Programming Assignments and/or Assessment Forms may result in failure of the course.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments10%
    Programming Assignments20%
    Learning Journals10%
    Two Graded Quizzes30%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 3308: Information Retrieval

    Syllabus

    Prerequisites: CS 3303: Data Structures

    Course Description: This course introduces the fundamental concepts of information retrieval (IR) systems.  Information Retrieval systems are systems that provide the ability to search for and find specific data or information within a collection.  Although there are many implementations of IR technology, web search engines such as Google.com, Altavista.com, bing.com, and ask.com are all examples of IR technology applied to content in the world wide web.

    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 textbook for this course is listed below, and can be readily accessed using the provided link. 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: The information retrieval (IR) course provides learning experiences that address both the theory and practice of information retrieval systems. As part of this course students will learn fundamental and critical theories of information retrieval and put those theories into practice by constructing elements of a information retrieval system. Students will be required to construct a parser, indexer, and search interface using the Python language.
    For these programming assignments you must download and install the appropriate Python interpreter for your computer and operating system. Versions of the software are available for Windows (XP, Vista, Windows7), Linux distributions, and Mac OS.  Most popular distributions of Linux will either include Python or will provide an installation option for it in the software management utility.
    You can find available downloads for Python v2.7.x at the following URL: http://www.python.org/download/
    Installation is relatively straightforward. Follow the prompts when installing. Further information is available in the documentation section located here: http://docs.python.org/
    Instructions to install and configure Python can be found in the Python setup and usage section of this page.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Explain fundamental concepts and theories of information retrieval.
    2. Differentiate between and apply index compression and search effectiveness techniques.
    3. Compute weights and scores of documents within an IR system.
    4. Determine the effectiveness of an information retrieval system using a known document corpus.
    5. Construct a complete information retrieval system.
    6. Construct a web search system by integrating indexer, search engine, and web crawler (spider) components.

    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 IR, Boolean Retrieval, and Terms and Postings (Chapters 1 & 2)
    Week 2: Unit 2 - Dictionaries and Index Construction (Chapters 3 & 4)

    Week 3: Unit 3
     - Index Compression (Chapter 5)

    Week 4: Unit 4
     - Scoring, Term Weighting, and the Vector Space Model (Chapter 6)

    Week 5: Unit 5
     - Scoring and Ranking in a Complete Search System (Chapter 7)

    Week 6: Unit 6 - 
    Evaluation in Information Retrieval (Chapter 8)

    Week 7: Unit 7 - 
    Introduction to Web Search (Chapter 19)

    Week 8: Unit 8 - 
    Web Crawling (Chapter 20 & 21)

    Week 9: Unit 9 - 
    Course Review and 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 IR, Boolean Retrieval, and Terms and Postings (Chapters 1 & 2) 
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Dictionaries and Index Construction (Chapters 3 & 4)
    • Read the Learning Guide and Reading Assignments
    • Complete and submit the programming Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Index Compression (Chapter 5)
    • Peer assess Unit 2 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 4: Scoring, Term Weighting, and the Vector Space Model (Chapter 6)
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Scoring and Ranking in a Complete Search System (Chapter 7) 
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 6: Evaluation in Information Retrieval (Chapter 8) 
    • Peer assess Unit 5 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 7: Introduction to Web Search (Chapter 19) 
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Web Crawling (Chapter 20 & 21) 
    • Peer assess Unit 7 Programming Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete the Programming Assignment (non-graded)
    • Make entries to the Learning Journal
    • 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 Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor

    Course Requirements:
    Programming Assignments & Assessment FormsBy the end of this course, you will have built a single cumulative Programming project. This project will be due in four parts throughout the course as Programming Assignments and Assessment Forms. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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 Programming Assignments and/or Assessment Forms may result in failure of the course.
    The culminating project you will be working towards with these assignments is developing an information retrieval system. Your information retrieval system will have four main components a parser, an indexer, a search engine, and a web crawler.

    Indexer Part 1 – In this assignment you will construct a process that will generate an inverted index.  You will tokenize the contents of a corpus that contains over 11,000 Reuters articles and store your index to disk in a format that will enable fast search retrieval.  You will have 2 weeks to complete this assignment.

    Indexer Part 2 – In this assignment you will enhance your indexer process by incorporating a stop words functionality, term editing, a porter stemmer, and you will calculate and store tf-idft,d weighting for each unique combination of term and document in the index.  You will have 1 week to complete this assignment.

    Search Engine – In this assignment you will develop a basic search engine that will enable the user of the process to enter one or more search terms and the process will extract all documents from the index that contain all of the search terms, calculate the cosine similarity between each document and the query and 20 documents with the highest cosine similarity.  You will have 1 week to complete this assignment.

    Web Crawler – In this assignment you will enhance a basic web crawler which you will point at a web URL and your web crawler process must tokenize each web page and populate the inverted index. 

    You will be required to use the functionality of the indexer that you created in the first two assignments and integrate it into a basic web crawler.   Your search engine must be able to search the inverted index created by your web crawler.  You will have 1  week to complete this assignment.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Learning Journals10%Instructor Assessment
    Discussion Assignments10%Peer Assessment With Instructor Oversight
    Programming Assignments30%Peer Assessment With Instructor Oversight
    Graded Quiz20%Instructor Assessment
    Final Exam30%Instructor Assessment
    TOTAL100%
    Grading Scale
    This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 4402: COMPARATIVE PROGRAMMING LANGUAGES

    Syllabus

    Prerequisites:  CS 1103: Programming 2

    Course Description:

    While most of the industry uses either procedural or object-oriented programming languages, there are entire families of other languages with certain strengths and weaknesses that make them attractive to a variety of problem domains. This course will introduce and discuss both the history and relevant features of both imperative and non-imperative programming languages. The course will cover topics such as syntax and semantics, essential concepts including data types, control structures, subprograms and advanced topics such polymorphism, and object oriented programming.  The course will explore both functional and logic programming as examples of non-imperative programming languages.  This course is a bit different from other courses within the curriculum in that it has no project assignments. Several of the units have non-graded exercises that provide hands on exposure to some of the programming language concepts that will be studied within the course, however, the course is designed to be primarily a theory course. Grades will be determined primarily on the basis of discussions and exams.

    This course has been developed to follow the text and course design recommendations provided by M. Ben-Ari of the Weizman Institute of Science. These materials are used with the permission of Professor Ben-Ari. The University of the People recognizes and appreciates the contribution made by Professor Ben Ari in the use of his text and supporting materials and resources. The text is available for download from the course site in the references section.

    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.
    Understanding Programming Languages.  Copyright © 2006 by M. Ben-Ari of the Weizman Institute of Science.  This text is used with the permission of the author M. Ben-Ari. 
    Most units in the course have additional required reading assignments and many have optional reading assignments.  These resources and means to access them will be provided within the unit that they are used in.

    Software Requirements/Installation:

    The Software Requirements are listed at the bottom of this document.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Recognize the various schools or paradigms of programming languages including imperative languages (procedural and scripting languages, data-oriented languages, object oriented languages) and non-imperative languages (functional and logic programming).
    2. Define the principles and components of programming language design, such as control structures, names, and data types.
    3. Recognize elements of syntax and semantics for a language.
    4. Recognize strong vs. weak and statics vs. dynamic typing in programming languages.
    5. State the basic requirements for effective programming language design.
    6. Identify the limitations of programming languages from within a historical perspective.
    7. Classify the programming constructs that appear in imperative, functional, and logic programming languages.

    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 Languages

    Week 2: Unit 2- 
    Elements of Programming Languages

    Week 3: Unit 3
     Data Types

    Week 4: Unit 4
     Control Structures and Subprograms

    Week 5: Unit 5
     Object Oriented Programming

    Week 6: Unit 6- 
    Scripting Languages

    Week 7: Unit 7-
     Functional Programming

    Week 8: Unit 8- 
    Logic Programming

    Week 9: Unit 9- 
    Review and 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 Languages
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Elements of Programming Languages
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Data Types
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Control Structures and Subprograms
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Object Oriented Programming
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Scripting Languages
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 7: Functional Programming
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Logic Programming
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • 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 Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments30%
    Learning Journals10%
    Two Graded Quizzes30%(15% each)
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.

    Software Requirements/Installation:

    The requirments are listed at the bottom of this document.
    The comparative programming course (CS4402), is not a programming course. It focuses on no programming language, and quite frankly has no graded programming assignments. There are, however, exercises throughout the course that will provide learners with some hands on experience to put principles and theories into practice as an aid to learning. These exercise assignments will take advantage of a number of different programming languages. Most of the exercises are simple programming examples meant to illustrate relevant features of the language or concept that is being studied in the unit. To make this diverse set of assignments accessible to students ALL have been designed to be completed within online programming environments that are designed to be entirely accessible from any web browser.

    Other than the requirement to be able to access the online development environments (a list of environments follows) the only software tools required for this class will be the office automation and web browser tools that are used in virtually every University of the People class. Some of the exercises will, however, require access to a web browser capable of running java applets so a java runtime environment must be installed on your computer:
    Unit 1:
    -Turing Machine Simulator: http://morphett.info/turing/turing.html
    -Little Man Computer Simulator: http://www.yorku.ca/sychen/research/LMC/index.html (simulation of von Neumann architecture)

    Unit 5:
    -Online Interpreter for Peal Scripts: http://codepad.org/
    -Online Interpreter for Python Scripts: http://codepad.org/
    -Online Interpreter for JavaScript: http://writecodeonline.com/javascript/
    -Online Regular expression tester: http://myregexp.com/signedJar.html

    Unit 6:
    -Online interpreter for Java: http://ideone.com/

    Unit 7:
    -Online interpreter for Haskell: http://ideone.com/

    Unit 8:
    -Online interpreter for Prolog: http://ideone.com/

    Office Tool Recommendations:
    For all text based assignment submissions, the following and ONLY the following text document formats will be acceptable:

    Word 97-2003, RTF (rich text format), and Adobe PDF formats which are supported by the following applications:
    -Microsoft Office
    -Open Office (http://www.openoffice.org)
    -StarOffice (http://www.staroffice.org)
    -Google Docs (https://docs.google.com)
    -Zoho (http://www.zoho.com/productivity-apps.html)
    -ThinkFree (http://member.thinkfree.com/member/goLandingPage.action)

    For spreadsheet data, the standard Excel 97-2003 format is acceptable and supported by the following apps:
    -Microsoft Office
    -Open Office (http://www.openoffice.org)
    -StarOffice (http://www.staroffice.org)
    -Google Docs (https://docs.google.com)
    -Zoho (http://www.zoho.com/productivity-apps.html)
    -ThinkFree (http://member.thinkfree.com/member/goLandingPage.action)

    In addition the CSV (Comma Separated Value) format can be used instead of the Excel 97-2003 format.

    For any graphics, pictures, charts, or figures the graphics objects should be placed within either a text document (as specified above) or using a presentation format that is compatible with Microsoft Powerpoint 97-2003 which is supported by the following applications:

    -Microsoft Office
    -Open Office (http://www.openoffice.org)
    -StarOffice (http://www.staroffice.org)
    -Google Docs (https://docs.google.com)
    -Zoho (http://www.zoho.com/productivity-apps.html)
    -ThinkFree (http://member.thinkfree.com/member/goLandingPage.action)

    Each of the preceding office applications can be used. The openoffice application is the standard and recommended application for the University of the People. When using OpenOffice, make sure that you set the default format to a Microsoft Office 97-2003 compatible format.

    For students who cannot install OpenOffice on their computer it is recommended that they use one of free web based applications such as Zoho, ThinkFree Online, or GoogleDocs.

    For students who are using mobile devices there are a number of free office compatible apps including:

    -Kingsoft Office
    -Documents to Go
    -OfficeSuite
    -OliveOffice
    -SmartOffice Lite and others
    -Zoho
    -ThinkFree Online
    -GoogleDocs

    The OpenOffice suite of tools is installed in the Virtual Computing Lab and can be used by students who do not have the ability to install applications on the computer they use.
    CS 4403: Software Engineering 2

    Syllabus

    Prerequisites: CS 2401: Software Engineering 1.

    Course Description: This course addresses more advanced topics in software engineering. Topics include the study of project planning, techniques for data-oriented design, object-oriented design, testing and quality assurance, and computer-aided software engineering.

    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.
    Supplemental Textbook and Materials:

    Software Requirements/Installation: Computer with Windows XP or Windows 7 Operating System.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Learn common behaviors that contribute to the effective functioning of a team.
    2. Interpret a given requirements model for a simple software system.
    3. Construct models of the design of a simple software system that are appropriate for the paradigm used to design it.
    4. Describe secure coding and defensive coding practices.
    5. Distinguish between program validation and verification.
    6. Learn about new software development techniques like Agile and Scrum
    7. Implement code quality standards using metrics and tools
    8. Describe different security standards used in software design

    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 - Project Planning
    • Week 2: Unit 2 - Project Initiation, Analysis and Design
    • Week 3: Unit 3 - Process Oriented Analysis and Design
    • Week 4: Unit 4 - Data Oriented Analysis and Design
    • Week 5: Unit 5 - Object Oriented Design and Analysis
    • Week 6: Unit 6 - Implementation and Maintenance, Testing and Quality Assurance
    • Week 7: Unit 7 - Change Management 
    • Week 8: Unit 8 - Security by Design
    • Week 9: Unit 9 - Course Review and Final Exam

    Learning Guide: The following is an outline of how this course will be conducted, with suggested best practices for students.
    Unit 1: Project Planning
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Project Initiation, Analysis and Design
    • Peer assess the Unit 1 Programming Assignment
    • Read the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Process-Oriented Analysis and Design
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self Quiz
    Unit 4: Data Oriented Design and Analysis
    • Peer assess Unit 3 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 5: Object Oriented Design and Analysis 
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Implementation and Maintenance, Testing and Quality Assurance
    • Peer-assess Unit 5 Programming Assignment 
    • Read through the Learning Guide and the Reading Assignment
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the  Programming  Assignment  
    • Submit the Learning  Journal
    • Take and submit the Self-Quiz
     Unit 7: Change Management 
    • Peer-assess the Unit 6 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 8: Security by Design
    • Read the Learning Guide and Reading Assignments
    • 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
    • Complete and submit the anonymous Course Evaluation
    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:
    Programming Assignments 
    Some units in this course require that you complete Programming Assignments. You are required to submit your assignments by the indicated deadlines and in addition, to peer-assess three of your classmates’ assignments according to provided instructions. During this peer-assessment, you are expected to provide details in the feedback section of the assignment’s Specimen Assessment Form, indicating why you awarded the grade that you did to your peer. Failure to submit assignments and/or peer-assessments may result in failure of the course. 
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required 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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments20%
    Programming Assignments25%
    Learning Journals10%
    Two Graded Quizzes20% (10% each)
    Final Exam25%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 4404: ADVANCED NETWORKING AND DATA SECURITY

    Syllabus

    Prerequisites: CS 2204 Communications and Networking

    Course Description:
    This course explores the basic components and design principles of advanced broadband networks (wireline and wireless) and how they enable essential services such as mobility, secure data storage, processing and transmission. This course will also introduce the student to emerging issues facing organizations considering implementing cloud computing services and mobility to enable worker productivity. Students will also be exposed to the basic pillars of network security (IA) and protecting individual privacy.

    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.
    Marsic, Ivan (2010). Computer Networks: Performance and Quality of Service. Rutgers University.

    American Psychological Association. (2010). Publication manual of the American Psychological Association. (6th ed.). Washington, D.C.: Author. ISBN: 9781433805615

    Students also need to sign-up for:

    TechRepublic: http://www.techrepublic.com/whitepapers
    BitPipe: http://www.bitpipe.com/
    SearchCloudComputing: http://www.SearchCloudComputing.com
    SearchCloudComputing: http://searchcloudcomputing.techtarget.com/resources/Cloud-computing-standards-and-compliance
    Light Reading: http://www.lightreading.com/document.asp?doc_id=161023

    Software Requirements/Installation

    No special requirements.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Identify and describe the components of a broadband network 
    2. Explain network design standards 
    3. Examine storage technologies, virtualization, and grid computing (building blocks to cloud based services)
    4. Identify and compare wireless technologies for personal and commercial networks
    5. Analyze network security concepts 
    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 Advanced Networks Components (Chapter 1)
    Week 2: Unit 2-
     Network Protocols (Chapters 2, 8)
    Week 3: Unit 3-
     Multimedia and Real-Time Applications (Chapter 3)
    Week 4: Unit 4-
     Computer Network Operations (Chapters 4, 5, 7)
    Week 5: Unit 5-
     Future Broadband Networking Trends and Topics (Chapter 9)
    Week 6: Unit 6-
     Virtualization, Secure Storage, and Grid Computing (Posted materials)
    Week 7: Unit 7-
     Broadband Wireless Networking (Chapter 6 and posted materials)
    Week 8: Unit 8-
     Network Security Fundamentals (Posted materials)
    Week 9: Unit 9-
     Course Review and 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 Advanced Networks Components
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (post, comment and rate)
    • Complete the Written Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Unit 2: Network Protocols

    • Peer assess Unit 1 Written Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (post, comment and rate)
    • Complete the Written Assignment 
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Multimedia and Real-Time Applications 
    • Peer assess Unit 2 Written Assignment
    • Read the Learning Guide and Reading Assignments
    • Make entries to the Learning Journal
    • Take Graded Quiz
    Unit 4: Computer Network Operations
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (post, comment and rate)
    • Complete the Written Assignment 
    • Make entries to the Learning Journal

    Unit 5: Future of Broadband Networking Trends and Topics
    • Peer assess Unit 4 Written Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (post, comment and rate)
    • Complete the Written Assignment 
    • Make entries to the Learning Journal
    • Take the Self-Quiz

    Unit 6: Secure Storage, Virtualization and Grid Computing
    • Peer assess Unit 5 Written Assignment
    • Read the Learning Guide and Reading Assignments
    • Make entries to the Learning Journal
    • Take the Graded Quiz
    Unit 7: Broadband Wireless Networking
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (post, comment and rate)
    • Complete the Written Assignment 
    • Make entries to the Learning Journal
    Unit 8: Network Security Fundamentals
    • Peer assess Unit 7 Written Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Forum (post, comment and rate)
    • Complete the Written Assignment 
    • Make entries to the Learning Journal
    • 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
    Written Assignments & Assessment Forms Some units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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.
    Discussion Assignments & Response Posts/Ratings Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal 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 Assignments10%
    Written Assignments10%
    Learning Journals10%
    Two Graded Quizzes40%
    Final Exam30%
    TOTAL100%
    Grading Scale This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.

    References


    NIST SP-800-144 (2011). Guidelines on Security and Privacy in Public Cloud Computing. Retrieved from: https://my.uopeople.edu/draftfile.php/7006/user/draft/19253775/SP800-144_2.pdf

    NIST SP 800-145 (2011), DRAFT A NIST Definition of Cloud Computing

    NIST SP 800-146 (2011). DRAFT Cloud Computing Synopsis and Recommendations. Retrieved from: http://www.nist.gov/itl/csd/20110512_cloud_guide.cfm .

    NIST SP 800-137 (2011). Information Security Continuous Monitoring for Federal Information Systems and Organizations.

    NIST SP 800-127 (2010) Guide to Securing WiMAX Wireless Communications. Retrieved from:
    NIST SP 800-125 (2011). Guide to Security for Full Virtualization Technologies

    NIST SP 800-100 (2006). Information Security Handbook: A Guide for Managers. Retrieved from: http://csrc.nist.gov/publications/nistpubs/800-100/SP800-100-Mar07-2007.pdf

    NIST SP 800-53 (2010). Guide for Assessing the Security Controls in Federal Information Systems and Organizations, Building Effective Security Assessment Plans.

    National Broadband Plan: Connecting America (2011). Retrieved: http://www.broadband.gov/plan/

    Yun, K., Lee, H. & Lim, S. (2002). The Growth of Broadband Internet Connections in South Korea: Contributing Factors. Retrieved from: http://iis-db.stanford.edu/pubs/20032/Yun.pdf

    Broadband's big spenders (2011). Retrieved from: http://www.economist.com/blogs/babbage/2011/02/national_high-speed_internet_plans

    National broadband plans from around the world (2011). Wikipedia. Retrieved from: http://en.wikipedia.org/wiki/National_broadband_plans_from_around_the_world

    The European Broadband Portal (2011). Retrieved from: http://www.broadband-europe.eu/Pages/Home.aspx
    Internet2 is an advanced networking consortium (2011). Retrieved from: http://www.internet2.edu/



    Peer Assessment, Peer Teaching, and Peer Feedback


    Jackson, C., & Bruegmann, E. (2009). Teaching Students and Teaching Each Other: The Importance of Peer Learning for Teachers. American Economic Journal: Applied Economics, 1(4), 85-108.

    Bulte, C., Betts, A., Garner, K., & Durning, S. (2007). Student teaching: views of student near-peer teachers and learners. Medical Teacher, 29(6), 583-590.

    Ching-Wen, C., Pearman, C. J., & Farha, N. W. (2010). P2P: Assessing a Peer Evaluation Strategy. Journal of Educational Technology Development & Exchange, 3(1), 69-84.

    Sloane, A. (2010). Peer Teaching and Mentoring: The Case of Undergraduate Research Fellows. Council on Undergraduate Research Quarterly, 31(2), 11-17.

    Mackinnon, R., Haque, A., & Stark, P. (2009). Peer teaching: by students for students. A student-led initiative. Clinical Teacher, 6(4), 245-248.

    Micari, M., & Light, G. (2009). Reliance to Independence: Approaches to learning in peer-led undergraduate science, technology, engineering, and mathematics workshops. International Journal of Science Education, 31(13), 1713-1741.

    Yoonjung, C. (2009). Effects of Online Peer Feedback Using CMC Instrument. English Teaching, 64(4), 1-24.

    Amstutz, M. M., Wimbush, K. K., & Snyder, D. D. (2010). Effectiveness and Student Demographics of Peer-Led Study Groups in Undergraduate Animal Science Courses. NACTA Journal, 54(1), 76-81.

    Par, D. E., & Joordens, S. S. (2008). Peering into large lectures: examining peer and expert mark agreement using peerScholar, an online peer assessment tool. Journal of Computer Assisted Learning, 24(6), 526-540.

    Gielen, S., Tops, L., Dochy, F., Onghena, P., & Smeets, S. (2010). A comparative study of peer and teacher feedback and of various peer feedback forms in a secondary school writing curriculum. British Educational Research Journal, 36(1), 143-162.

    Ross, M. T., & Cameron, H. S. (2007). Peer assisted learning: a planning and implementation framework: AMEE Guide no. 30. Medical Teacher, 29(6), 527-545.

    Liou-Mark, J., Dreyfuss, A. E., & Younge, L. (2010). PEER ASSISTED LEARNING WORKSHOPS IN PRECALCULUS: AN APPROACH TO INCREASING STUDENT SUCCESS. Mathematics & Computer Education, 44(3), 249-259.

    Coverage of ABET core units requirements from CS Body of Knowledge
    AR9Architecture for networks and distributed systems
    OS7Security and protection
    NC2Communication and networking
    NC3Network security
    NC9Wireless and mobile computing
    NC6.Network management
    CN4High-performance computing

    CS4405: Mobile Applications

    Syllabus

    Prerequisites: CS 2205: Web Programming 1

    Course Description: The course explores concepts and issues surrounding development of mobile applications.  It covers various mobile computing platforms, development environments, and design of mobile applications.  Students will use current technology to develop mobile apps.

    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.
    • Murphy, M.L. (2011). The Busy Coder's Guide to Android Development (v. 3.6). Macungie, PA: CommonsWare, LLC.
    • Most units in the course have additional required reading assignments and many have optional reading assignments.  These resources and means to access them will be provided within the unit that they are used in.

    Software Requirements/Installation: At the University of the People we strive to provide solutions that minimize the technology requirements of the student.   As such this course is designed to enable the student to complete all assignments using the www.programmr.com service.   This service provides an online Integrated Development Environment (IDE) for developing both Native Android and iOS applications.   Although this course will introduce concepts and topics that span the universe of mobile computing, the development projects and activities will all focus on development for the Android device using the Android SDK.   Students with personal computers that have sufficient capabilities may opt to use Eclipse with the Android SDK as their development environment, however, you should be aware that we will be leveraging the simulation capabilities of the Programr.com site as a way to test and evaluate both our own projects and the projects of our peers because this site will provide single URL access to Android applications and will simulate an Android device.
    An option that is available to students with mobile devices that use the Android operating system is the AIDE app which is available in the Google Play app store.  This app provides an android development environment ON Android devices.
    The Programmr.com service DOES REQUIRE that your computer have and support Java Applets.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Describe current mobile environments.
    2. Contrast native mobile development with mobile web frameworks.
    3. Demonstrate ability to create Android apps
    4. Define Android development components.
    5. Create Android app with Widgets.
    6. Define Java methods and properties.

    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 - Mobile Platforms and Mobile Interface Design
    Week 2: Unit 2 - Introduction to Android Development

    Week 3: Unit 3
     - Introduction to Mobile Web on Android

    Week 4: Unit 4
     - Introduction to Java Programming Language

    Week 5: Unit 5
     - Exploring Java Programming Language

    Week 6: Unit 6 - 
    Building Android Applications

    Week 7: Unit 7 - 
    Exploring the Building Blocks of Android Applications

    Week 8: Unit 8 - 
    Exploring the Building Blocks of Android Applications II

    Week 9: Unit 9 - 
    Course Review and Final Exam

    Learning Guide: The following is an outline of how this course will be conducted, with suggested best practices for students.
    Unit 1: Mobile Platforms and Mobile Interface Design
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Introduction to Android Development
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Introduction to Mobile Web on Android
    • Peer assess 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 Learning Activity
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Introduction to Java Programming Language
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Learning Activity
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Exploring Java Programming Language
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Learning Activity
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Building Android Applications
    • 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 and submit the Learning Activity
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
     Unit 7: Exploring the Building Blocks of Android Applications
    • Peer assess Unit 6 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 Learning Activity
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Exploring the Building Blocks of Android Applications II
    • Peer assess Unit 7 Prgramming 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 Learning Activity
    • 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:
    Programming Assignments & Assessment FormsSome units in this course require that you complete a Written Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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 ActivitiesSome units in this course require that you complete a Learning Activity. While these are not graded assignments, they provide important hands-on experience, which builds and deepens your understanding of the material.  Completion of the Learning Activity assignments helps you to apply the material, analyze it, and create bridges in knowledge and experience.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments10%
    Programming Assignments10%
    Learning Journals10%
    Two Graded Quizzes40%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 4406: Computer Graphics

    Syllabus

    Prerequisites: 

    CS 1103 Programming 2

    Course Description: Computer graphics is used in diverse applications from the visualization of complex scientific data to the special effects in movies and the animated characters in computer games. The objective of this course is to introduce the programming principles of computer graphics. The course will provide practical application of concepts through assignments developed in Web GL.  The course will also introduce examples in OpenGL. Students will have a broad knowledge of computer graphics and how to implement computer graphics using an API such as OpenGL and WebGL.  Course topics will include:
    • Fundamentals
    • Geometric transformations, Matrices and vectors.
    • The scene graph
    • Introduction to Modeling
    • Introduction to Rendering
    • Shading, Color, anti-aliasing, texture mapping

    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.
    • Computer Graphics:  Programming, Problem Solving, and Visual Communication by Steve Cunningham, California State University Stanislaus.  Copyright (2003) All rights reserved.  Permission to use this text in both printed and electronic form is granted by the Author.  Available at http://www.cs.csustan.edu/~rsc/NSF/
    • Eck, D. (2018). Introduction to Computer Graphics, v1.2.  Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.  Retrieved from: http://math.hws.edu/graphicsbook/   (PDF is available on course homepage.)

    Software Requirements/Installation: Although much of the text will be using the OpenGL API for examples and assignments, this course will provide a series of comparable examples and Assignments that use the WebGL API.  There are two reasons for this.  First WebGL is an API that is based upon the OpenGL ES 2.0 API which is essentially a subset of OpenGL.   As such all of the functionality required for assignments throughout the text is implemented in the OpenGL ES 2.0 specification.  Second it has been decided to leverage WebGL because of the ease of setting up a development environment.   Most texts on Graphics programming take advantage of C or C++ as a programming language and as the curriculum at the University of the People is more focused on Python, Java, and JavaScript we have opted to continue to build on these skills by implementing all assignments and examples using JavaScript executed in a HTML5 environment.  This both builds upon knowledge that you have already been exposed to and provides us with the ability to use browser based, online development tools and environments.

    WebGL unfortunately has NOT been implemented in every browser.  Notably Microsoft’s Internet Explorer has not opted to support the WebGL API specification.   As such you will need to ensure that you have one of the following browsers available to complete examples and assignments in this course.
    FirefoxPartial Support (4.0 and greater)
    ChromeSupported (v29.0)
    SafariPartial Support (5.1 and greater)
    OperaSupported (v15.0)
    iOS SafariNot Supported
    Opera MiniNot Supported
    Android BrowserNot Supported
    Blackberry BrowserSupported (v10.0)
    Opera MobileSupported (v14.0)
    Chrome for AndroidNot Supported
    Firefox for AndroidSupported (v19.0)

    You can test if your browser will support WebGL at the following url  http://www.doesmybrowsersupportwebgl.com/ For more details see http://caniuse.com/webgl

    For development of the assignments in this course we recommend that you use codio.com.  Codio.com is an online development environment that is designed for developing web based applications.   You can access codio.com from a link in the course resources list.  When you access the codio.com site, follow the instructions to create a free account and then proceed to complete the first example in unit 1.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Understand basic concepts of computer graphics including such concepts as:
         a. Graphics API’s (Application Programming Interface)
         b. Principles of viewing, projections, and transformations
         c. The coordinate system
         d. Clipping
         e. Graphics pipeline

    2. Develop an understanding of computer graphics techniques focusing on:
        a. 3D modeling
        b. image synthesis and rendering
        c. Geometric transformations
        d. API’s such as OpenGL, WebGL, Shaders
        e. shading and mapping
        f. ray casting and ray tracing
        g. anti-aliasing
        h. color, lighting, and illumination

    3. Develop graphic models and implement them to present graphics scenes

    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 Graphics
    Week 2: Unit 2 - Principles of Graphics Modeling

    Week 3: Unit 3
     - Color and Blending

    Week 4: Unit 4
     - Lighting, Shading and Texture Mapping

    Week 5: Unit 5
     - The Rendering Pipeline and Event Handling

    Week 6: Unit 6 -
    Dynamics and Animation

    Week 7: Unit 7 -
    Interpolation and Spline Modeling

    Week 8: Unit 8 -
    Per-Pixel Operations

    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 Graphics
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Principles of Graphics Modeling
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Unit 2 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Color and Blending
    • Peer assess 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 Unit 3 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
    Unit 4: Lighting, Shading and Texture Mapping
    • Peer assess 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 Unit 4 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: The Rendering Pipeline and Event Handling
    • Peer assess 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 Unit 5 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Dynamics and Animation
    • Peer assess 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 and submit the Unit 6 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz
     Unit 7: Interpolation and Spline Modeling 
    • Peer assess Unit 6 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 Unit 7 Programming Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Per-Pixel Operations
    • Peer assess Unit 7 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • 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:
    Programming Assignments & Assessment FormsThis course will require each student to complete five graded programming assignments.   These assignments are designed to help the student bridge the gap between theory and practice.  Each of the five will require that the student implement the topic being explored either in terms of a design or a working algorithm developed in the javascript language.
    You will be required to upload your assignments by the indicated deadline and, in addition, to assess three of your classmates’ assignments according to the instructions provided. Failure to submit programming assignments may result in failure of the course.  Each assignment will be peer assessed.  This means that 3 of your peers will be asked to assess your assignment and your grade will the average of the scores of your peers. Every student that submits an assignment will also be required to assess the work of at least 3 of their peers.  As part of this assessment process you will be expected to provide details in the feedback section of the assignment assessment forms as to why you awarded the grade that you did to your peer.  Providing fair and carefully considered assessments during this process is extremely important to achieving a successful learning experience for you and your peers.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.
    Learning Journal
    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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments20%
    Programming Assignments20%
    Learning Journals10%
    Two Graded Quizzes20%
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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
    Peer Feedback
    This course will present fundamental concepts of graphics programming and will require students to put these concepts into practice through a series of development assignments in which each student must complete a program using JavaScript and  WebGL within a HTML 5 environment.   This learning process is designed to be interactive and collaborative.   Each student is expected to provide feedback and coaching to other students through the peer assessment process in discussion questions and assignments as well as engaging in discussions to help peers who may be struggling with some of the course concepts.   The unit forum can and should be used by any student who is struggling with course assignments and needs assistance from either the instructor or other students.  Questions, problems, and challenges should be posted by students here as early as possible in order to receive feedback that can be used to meet assignment deadlines.  Feedback is a component of the grading of this course and providing effective, constructive feedback in assessments and in responses to other students’ postings is required.   In addition to responding to requests for assistance, the course forum can be used to post items, tools, best practices, techniques, or articles that you have found valuable in completing your assignment that might be of value to your peers. 
    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 Overview
    Introduction to Graphics programming is not a programming class.  This means that programming is not the focus of the class as our primary focus is to understand concepts of computer graphics and the functioning of Graphics API’s. However, it is assumed that each student has already mastered some level of proficiency in the JavaScript language and has a basic understanding of Web Development.
    This course requires strong proficiency in the following foundational concepts.
    A Mathematical foundation consisting of Algebra, Geometry, and Trigonometry.   This course has been designed and is taught from an implementation perspective which means that we have avoided much of the emphasis on the mathematical operations around graphical transformations and model devleopment.  However, we assume that each student has a basic grasp of such mathematical capabilities and there are some aspects of the course that will require such understanding.
    An understanding of the foundations of the JavaScript programming language.  We use the JavaScript language to implement the graphics coding examples and assignments in the course.  Much of what we will do is directly related to the WebGL API but some experience in and knowledge of JavaScript is required.
    Expectations
    This course is designed to be collaborative.  Your interaction with your peers (other students in the class) is not focused on providing an assessment of their work, but rather to collaborate to improve our collective understanding of the course material.
    CS 4407: Data Mining and Machine Learning

    Syllabus

    Prerequisites: CS3304: Analysis of Algorithms. Recommended - CS4402: Comparative Programming Languages.

    Course Description: This course will investigate data mining and machine learning algorithms in both supervised and unsupervised learning. Students will understand how to use the R programming language for performing clustering, classification, and regression analysis.  Students will learn the capabilities and operation of many algorithms including decision trees, k-means, k-nearest neighbors, linear regression, ID3 for Decision Trees, and the Perceptron.

    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.
    • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning with Applications in R. New York, NY: Springer. Available for download here.

    Software Requirements/Installation: This course will make use of two different software tools. The first is the R programming language environment and the second is the basic prop neural network simulator. Both of these tools will be available in the Virtual Computing Lab or you can install them on your own computer.

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Explain the differences among the three main styles of learning: supervised, reinforcement, and unsupervised.
    2. Implement simple supervised learning, reinforcement learning, and unsupervised learning examples using R.
    3. Understand a range of machine learning algorithms along with their strengths and weaknesses.
    4. Understand the basic operation of machine learning algorithms including decision trees, neural networks, K nearest neighbors, K means clustering, and regression.
    5. Be able to apply machine learning algorithms to solve simple problems.

    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 Data Mining and Machine Learning
    Week 2: Unit 2 - Tools and Technologies for Data Mining and Machine Learning

    Week 3: Unit 3
     - Regression

    Week 4: Unit 4
     - Classification

    Week 5: Unit 5
     - Decision Trees

    Week 6: Unit 6 - 
    Artificial Neural Networks – Part 1

    Week 7: Unit 7 - 
    Artificial Neural Networks – Part 2

    Week 8: Unit 8 - 
    Unsupervised Learning – Clustering

    Week 9: Unit 9 - 
    Course Review and 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 Data Mining and Machine Learning
    • 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Tools and Technologies for Data Mining and Machine Learning
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Regression
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Complete the first Graded Quiz
    Unit 4: Classification
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Decision Trees
    • Peer assess 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
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Artificial Neural Networks – Part 1
    • Peer assess Unit 5 Programming Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Begin work on the Simulation Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Complete the Second Graded Quiz
     Unit 7: Artificial Neural Networks – Part 2
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Simulation Assignment started during Unit 6
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Unsupervised Learning – Clustering
    • Peer assess Unit 7 Simulation Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • 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
    • Complete and submit the anonymous Course Evaluation
    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:
    Programming Assignments & Assessment FormsSome units in this course require that you complete a Programming Assignment. You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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. Please note that each assignment grade is comprised of a combination of your submission (90%) and your peer assessments (10%). Failure to submit Programming Assignments and/or Assessment Forms may result in failure of the course.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required 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). Calculator use: Students are only allowed to use a scientific calculator for the final exam. Calculators on the cell phone, iPad or similar devices are not allowed.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments10%
    Programming Assignments20%
    Learning Journals10%
    One Graded Quizzes30% (Each worth 15%)
    Final Exam30%
    TOTAL100%

    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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.
    CS 4408: Artificial Intelligence

    Syllabus

    Prerequisites: MATH1302: Discrete Mathematics, CS3304: Analysis of Algorithms, CS4402: Programming Languages, and CS4407: Machine Learning.

    Course Description: This course is an introduction to artificial intelligence. The course will cover the history, theory, and computational methods of artificial intelligence. Basic concepts will examine agents in the context of computational intelligence.  The course will also explore representations of knowledge, search as a problem solving technique, reasoning with both certainty and uncertainty and the resulting role of probability when reasoning in uncertainty.  The course will also address planning concepts and the role of multi-agent systems.

    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.
    • Poole, D. L., & Mackworth, A. K. (2010). Artificial Intelligence: foundations of computational agents. Cambridge University Press. Available online at http://artint.info/. The textbook is published by Cambridge University Press, 2010. The complete text and figures of the book are here, copyright David Poole and Alan Mackworth, 2010. The HTML is made available under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 Canada License.
    • Additional readings will be assigned within specific units.

    Software Requirements/Installation: Throughout this course we will be putting our skills into practice by completing the exercises in the AISpace.org web site.   In some cases your instructor will provide ADDITIONAL INSTRUCTIONS that you must incorporate into the exercise.
    The exercises all take advantage of Java applets.  You have the option of installing java and ensuring that your web browser can execute the applets (You can test your ability to run the applets by executing one of the applets found at  http://www.aispace.org/downloads.shtml)
    You can also use the University of the People virtual computing lab (VCL) environment to run these Java Applets. The VCL can be accessed at http://uopeoplelab.org

    Learning Objectives and Outcomes:
    By the end of this course students will be able to:
    1. Define artificial intelligence and its characteristics.
    2. Describe both the Turing Test and the Chinese Room as tests of intelligence.
    3. Define the structure, types, characteristics, and behaviors of agents.
    4. Demonstrate familiarity with search algorithms as a problem solving strategy.
      • Uninformed search
      • Informed search or Heuristics
      • A* search
      • Min-max algorithm
    5. Demonstrate familiarity with constraint satisfaction problems (CSP).
    6. Demonstrate familiarity with Knowledge representation and reasoning concepts including propositional and predicate logic.
    7. Explain the role and application of probability in reasoning.
    8. Define approaches to planning both with certainty and uncertainty.

    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 - Fundamentals of AI
    Week 2: Unit 2 - Agents

    Week 3: Unit 3
     - Problem Solving Through Search

    Week 4: Unit 4
     - Features and Constraints

    Week 5: Unit 5
     - Knowledge Representation and Reasoning

    Week 6: Unit 6 - 
    Reasoning Under Uncertainty

    Week 7: Unit 7 - 
    Planning

    Week 8: Unit 8 - 
    Multi-Agent Systems

    Week 9: Unit 9 - 
    Course Review and Final Exam

    Learning Guide: The following is an outline of how this course will be conducted, with suggested best practices for students.
    Unit 1: Fundamentals of AI
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 2: Agents
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • Complete and submit the Development Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 3: Problem Solving Through Search
    • Peer assess Unit 2 Development 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 Development Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz #1
    Unit 4: Features and Constraints
    • Peer assess Unit 3 Development 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 Development Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 5: Knowledge Representation and Reasoning
    • Peer assess Unit 4 Development 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 Development Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 6: Reasoning Under Uncertainty
    • Peer assess Unit 5 Development 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 Development Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    • Take the Graded Quiz #2
     Unit 7: Planning
    • Peer assess Unit 6 Development 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 Development Assignment
    • Make entries to the Learning Journal
    • Take the Self-Quiz
    Unit 8: Multi-Agent Systems
    • Peer assess Unit 7 Development Assignment
    • Read the Learning Guide and Reading Assignments
    • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
    • 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
    • Complete and submit the anonymous Course Evaluation
    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:
    Development Assignments & Assessment FormsSome units in this course require that you complete a Development Assignment. These projects are designed to help the student bridge the gap between theory and practice.  Each of the projects will require that the student practice or implement the concepts being explored within the unit either in terms of a design or a solution.  In many of the development projects the student will work with and validate solutions using provided simulations tools.
    You are required to submit your assignments by the indicated deadlines and, in addition, to peer assess 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. Please note that each assignment grade is comprised of a combination of your submission (90%) and your peer assessments (10%). Failure to submit Development Assignments and/or Assessment Forms may result in failure of the course.
    Important: Most of the development projects within this course make use of exercises developed by the author of the textbook.   These exercises have been designed as self-learning tools meaning that the exercise specifies the requirements of the assignment and also provides the ability for students to look up solutions to validate their work.  Because all of the solutions have been provided as part of the exercise, solutions from the instructor will not be posted.  Although the solutions can be reviewed within the exercise materials, you are REQUIRED to develop a solution to the problem that is explained in YOUR OWN WORDS.  The course instructor will be looking to determine if the material was copied and pasted from the exercises website.  Any work that is copied and pasted will not be accepted and the student will be awarded no points for the assignment. The exercises are designed to be self-learning exercises and students are required to complete the assignments as described and report findings and respond to questions using their own words.  You can validate your work by looking at the solution provided, however, you cannot use the solution provided as a response for the assignment.
    Discussion Assignments & Response Posts/Ratings
    Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment 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 Assignment by posting in the Discussion Forum and responding to peers as required 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.
    The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. Please note, you will not be permitted to change proctors during the course. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

    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 WeightsEach graded component of the course will contribute some percentage to the final grading scale, as indicated here:
    Discussion Assignments20%
    Development Assignments20% (6 @ ~3.3% each)
    Learning Journals10%
    Graded Quizzes20% (2 at 10% each)
    Final Exam30%
    TOTAL100%
    Grading ScaleThis course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:
    Letter GradeGrade ScaleGrade Points
    A+98-1004.00
    A93-974.00
    A-90-923.67
    B+88-893.33
    B83-873.00
    B-80-822.67
    C+78-792.33
    C73-772.00
    C-70-721.67
    D+68-691.33
    D63-671.00
    D-60-620.67
    FUnder 600.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.
    ParticipationNon-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 Overview
    Introduction to Artificial Intelligence is a theory course that incorporates a number of advanced topics including knowledge of search algorithms, graph theory, probability and statistics, predicate logic, functional programming, machine learning, and discrete mathematics.  As such, this course requires strong proficiency in the following foundational concepts.
    A strong mathematical foundation in concepts such as predicate and propositional logic and probability as established in the Statistics, Calculus, and Discrete Mathematics disciplines.  This course assumes that each student has a basic grasp of such mathematical capabilities and there are aspects of the course that will require such understanding.
    An understanding of the foundations of the Prolog programming language.  An introduction to Prolog is covered as part of CS4402, Programming Languages which is a pre-requisite to this course.
    An understanding of data structures including graph theory and algorithms including search algorithms, dynamic programming and concepts such as the limitations of computability as explored in CS3303 Data Structures and CS3304 Analysis of Algorithms.
    Peer Feedback
    This course will present introduce fundamental concepts of Artificial Intelligence (AI) through reading assignments, discussions, and projects that require students to put AI concepts into practice through a series of development assignments. This learning process is designed to be interactive and collaborative.  
    Each student is expected to provide feedback and coaching to other students through the peer assessment process in discussion questions and assignments as well as engaging in discussions to help peers who may be struggling with some of the course concepts.   The unit forum can and should be used by any student who is struggling with either course assignments or projects and needs assistance from either the instructor or other students.  Questions, problems, and challenges should be posted by students here as early as possible in order to receive feedback that can be used to meet assignment deadlines.  Feedback is a component of the grading of this course and providing effective, constructive feedback in assessments and in responses to other students’ postings is required.   In addition to responding to requests for assistance, the course forum can be used to post items, tools, best practices, techniques, or articles that you have found valuable in completing your assignment that might be of value to your peers. 

    Comments

    Popular posts from this blog

    Orientation Week -2

    Week-2 Orientation 23 August - 29 August UNIT 2:  Being an Online Student: Strategies for Success Learning Guide Unit 2 Book Discussion Forum Unit 2 Assignment Unit 2 Workshop Learning Journal Unit 2 Assignment Self-Quiz U Learning Guide Unit 2 Introduction This week we will be talking to you about peer assessment, writing strategies and plagiarism. Here's why: UoPeople designed an online university with a goal of creating learning communities as part of a new model for online learning. Specifically, it designed the peer learning process with the knowledge that deeper learning occurs when it is  not  one directional. When learning and teaching happen as multi-directional, we have the opportunity to create an expansive framework for conversations, dialogue, questions, and discussion in the classroom. This allows for deeper learning by helping you develop your own analytical thinking style, evaluati

    UNIT 4: The 5 Paragraph Essay and the Library

    27 September - 3 October UNIT 4 : The 5 Paragraph Essay and the Library Learning Guide Unit 4 Book Discussion Forum Unit 4 Written Assignment Unit 4 Workshop Learning Journal Unit 4 Assignment OPTIONAL: Conversation 2 Kaltura Video Resource OPTIONAL: Conversation 2 Self-Quiz Self-Quiz Unit  4 Learning Guide Unit 4 Overview Unit 4: The 5 Paragraph Essay and the Library Topics: The 5 paragraph essay Using the UoPeople Library Topic vs Thesis African and Russian short stories Learning Objectives: By the end of this Unit, you will be able to: Comprehend the structure of the 5 paragraph essay. Explore the UoPeople Library for research. Differentiate between a topic and a thesis. Analyze different writing styles and cultural themes. Tasks: Read the Learning Guide and Reading Assignments Participate in the Discussion Assignment (post, comment, and rate in the Discu

    ENGL 0101: ENGLISH COMPOSITION 1

    ENGL 0101: ENGLISH COMPOSITION 1 General Information and Forums Syllabus Page Read This First - UoPeople Introduction File Course Forum Announcements For                   ENGL 0101:  English Composition 1 Syllabus Prerequisites:  None. Course Description:  The purpose of this course is to further develop students’ English language, reading, and writing skills as a foundation for their academic studies at UoPeople. The units focus on a range of texts and genres designed to improve students’ knowledge and understanding of academic discourse. Each unit also focuses on the progressive development of reading, grammar, writing and test taking skills.  This course is required for all students that have not demonstrated English proficiency and have been considered for provisional admission as a non-degree student.  Students must earn a 73% or higher in the course to meet the English language proficiency requirement at UoPeople