Syllabus for CS 210 - Introduction to Programming

Instructor Information

Refer to Discussion Forum, Faculty Course Notes

Course Title

CS 210 - Introduction to Programming

Course Description

CS 210. INTRODUCTION TO PROGRAMMING (3). An entry-level course in which students practice software development using elementary selection, looping, method, string, list, array, and object constructs implemented in a modern programming language.

Prerequisite Courses

None

Course Overview

CS210 is an introductory computer-programming course, which will cover object-oriented programming concepts. The control structures covered in this course form the basis of virtually all structured and object-oriented programming languages. 

In this course, the student is introduced to programs that use constant and variables of primitive data types, as well as objects, input/output processing, sequential, selection, and iterative control structures, and classes and methods for modular programming. The student is also introduced to the fundamentals of software engineering methodology.

WARNING:  Ultimately, programming is a skill that requires the ability to translate designs that solve real world problems into programs. The only way to succeed is to practice this skill. Students may require a significant amount of time each week to complete the programming assignments.

If you are not willing or able to spend the necessary time, please reconsider whether this is the correct time to attend this class.

Course Outcomes

Upon completion of this course, learners should be able to:

  1. Explain the importance of algorithms in the problem-solving process and create algorithms to solve simple problems using pseudo-code and flowcharting.
  2. Compare and contrast the representation and storage of primitive type variables and objects.  Determine the scope of a variable within a program.
  3. Design, implement, test, and debug programs that use each of the following fundamental programming constructs: basic computation; simple input/output; sequential, conditional, and iterative control structures; and classes and methods.  Choose appropriate constructs for each programming task.
  4. Correctly reason about the control flow in a program.
  5. Apply the techniques of decomposition to break a program into smaller pieces.
  6. Design and implement simple Classes containing data and method members.  Use them to instantiate Objects within OOP language programs. 
  7. Use arrays within programs.
  8. Compare and contrast the passing of parameters that are primitive types vs. parameters that are reference types.
  9. Describe strategies that are useful in debugging. Use the scientific method and other strategies to identify program deficiencies.
  10. Analyze and explain the behavior of programs that use the fundamental programming constructs introduced in this course.

Course Materials

Required Texts

zyBooks: CS210 Introduction to Programming
Instructions for purchasing the book will be given by the faculty teaching the course in the WorldClass online course shell.

Optional Text

All the information you need to complete the course is contained in the required zyBook text and WorldClass online Content. However, the following additional text is also provided, in case you would like to do further reading on any of the topics covered:

Downey, A. B., & Mayfield, C. (2016) Think Java: How to think like a computer scientist, v6.1.3. Needham, MA: Green Tea Press.  Free download available at:
http://greenteapress.com/thinkjava6/thinkjava.pdf

Technology Tools

  1. A PC-compatible computer system running a version of the Windows operating system, And administrator rights to install new software.
  2. The Java programming environment: Java Development Kit (JDK) with NetBeans. Instructions for downloading JDK and NetBeans are included in the online course shell.
  3. A PowerPoint Viewer
    Some of the course content is presented via PowerPoint slide shows. If needed, you can download the free PowerPoint viewer via this link:
    http://www.microsoft.com/en-us/download/details.aspx?id=13

      NOTE:  The entire Microsoft Office suite is available free to all Regis students, so you may want to download that instead.

Course Policies about repeating the course or adding the course late

Repeating the course

If you are repeating this course (due to a previous withdraw or low grade), you are responsible for immediately notifying the instructor.  Course assignments/exams that you submitted when you last took the course cannot be repeated -- you will be required to complete alternate assignments and/or exams.

Adding this course during the Drop/Add Period

If you added this course during the drop/add period, after class began on Monday, you are responsible for immediately notifying the instructor by email that you joined the course late. Be aware that none of the course due dates will be extended for you. Even if a due date already passed when you added the course, late points will still be deducted.

Course Policies and Procedures on Academic Integrity

Collaboration/Collusion

Working together on CS210 assignments is NOT permitted.  All assignments submitted in CS210 must be completed on your own. 

You can discuss the assignments with others, but you are not allowed to show another student any of your code.

Additionally, all CS210 programming assignment requirements are copyrighted.  It is therefore illegal to upload or post any of the assignment requirements to any non-Regis website.
Therefore, it is also violation of the Regis Academic Integrity Policy to do either of the following, either during the time you are taking the course or after course completion.

Plagiarism

Plagiarism is submitting someone’s ideas as your own.  Plagiarism includes submitting code or other work that was obtained from another person, a publication, or an internet web source. 

In cases of suspected collusion, plagiarism, or any other form of cheating in CS210, the faculty member will discuss the matter with the student(s) involved. The faculty member reserves the right to question any student orally or in writing about any assignment, and to use the evaluation of the student's understanding of the assignment and of the submitted solution as evidence of cheating. 

All cheating incidents will be reported to the Computer Science department and the Academic Integrity Board for possible further action.

Pre-Assignment

Sign on to WorldClass (D2L) and become familiar with the course navigation.

Then complete the following tasks (see instructions in the Course Assignments by Week page of the online course):

Course Assignments and Activities

Assignments for Online Course
Week WorldClass Online Course Topics Textbook Readings Activities and Assignments
1

1: Computing, Programming, and Hardware/Software
 
2: Introduction to Java

Required Reading in zyBook:
Chap 1, Computers and  Problem Solving
Chap 2, Programming and Introduction to Java

Optional in Think Java
Chap 1, sec 1.1 – 1.5

Pre-Course Survey
 
Academic Integrity Training
 
Text Ch 1 & 2 Participation & Challenge Activities & Ch 2 zyLabs
 
Reflection Discussion, Topic, & Weekly Feedback

2

3: Java Expressions
 

Required Reading in zyBook:
Chap 3, Expressions, More Data Types, and Math Methods

Optional in Think Java
Rest of Chap 1, Appendix C, all of Chap 2,  & Chap 3, 3.1 – 3.5 and 3.8, and Chap 4, 4.1 – 4.2

Text Ch 3 Participation and Challenge Activities & zyLabs
 
Arithmetic Expression Discussion, Topic, & Weekly Feedback

3

4: Strings, chars, Output Formatting, and Debugging

Required Reading in zyBook:
Chap 4, Troubleshooting / Debugging, Strings, and Output Formatting

Optional in Think Java
Chap 3, 3.6 – 3.7 and 3.9 – 3.11, and Appendix C

Text Ch 4 Participation and Challenge Activities & zyLabs
 
Arithmetic Expression Discussion, Topic, & Weekly Feedback
 

4

5: Decision Flow Control – if statements
 

Required Reading in zyBook:
Chap 5, Branching using Decisions

Optional in Think Java
Chap 5, 5.1 – 5.5 and 5.7

Text Ch Participation and Challenge Activities & zyLabs
 
Topic & Weekly Feedback

5

6: Decision Flow Control – conditional/switch

Required Reading in zyBook:
Chap 6, More Branching and Societal Issues with Computers

Optional in Think Java
Chap 5, 5.1 – 5.7

Text Ch 6 Participation and Challenge Activities & zyLabs
   
Discussion Question, Topic & Weekly Feedback

6

7: String and Character methods
 

Required Reading in zyBook:
Chap 7, String & char Operations and Computer Security Issues

Optional in Think Java
Chap 9, 9.1 – 9.7, and Chap 6, 6.1 – 6.3, and 6.5

Text Ch 7 Participation and Challenge Activities & zyLabs

Discussion Question, Topic & Weekly Feedback

7


 
8: Java User-defined Methods & Enumerations

Required Reading in zyBook:
Chap 8, User-Defined Methods & Enumerations

Optional in Think Java
Chap 4, 4.3 – 4.10, Chap 5, 5.6, and Chap 6, 6.1 – 6.3, and 6.5 – 6.6

Text Ch 8 Participation and Challenge Activities & zyLabs
 
Topic & Weekly Feedback

8

Midterm Exam week

 

Midterm Exam

Weekly Feedback

9

9: Loop Flow Control (while, for, do-while)

Required Reading in zyBook:
Chap 9, Loops & Nested Loops

Optional in Think Java
Chap 7, all

Text Ch 9 Participation and Challenge Activities & zyLabs
 
Topic & Weekly Feedback

10

 10: Arrays in Java


Required Reading in zyBook:
Chap 10: One-Dimensional Arrays

Optional in Think Java
Chap 8, all

Text Ch 10 Participation and Challenge Activities & zyLabs
 

 
Topic & Weekly Feedback

11

11: Classes and Objects
 

Required Reading in zyBook:
Chap 11, Objects and Classes

Optional in Think Java
Chap 10 - 11, all

Text Ch 11 Participation and Challenge Activities & zyLabs
 
Topic & Weekly Feedback

12

12: Exceptions

 

Required Reading in zyBook:
Chap 12, Exceptions & More Computing & Security Issues

Text Ch 12 Participation Activities & zyLabs
 
Discussion Question, Topic & Weekly Feedback

13

13:  Text Files and File Input/Output

Required Reading in zyBook:
Chap 13, File Input/Output

Optional in Think Java
Chap 8, 8.7 (random)

Text Ch 13 Participation and Challenge Activities & zyLabs
 
Topic & Weekly Feedback

14

14: ArrayLists of Objects

Required Reading in zyBook:
Chap 14, ArrayLists

Text Ch 14 Participation and Challenge Activities & zyLab
 
Topic & Weekly Feedback

15

Review / Catch-up week

 

Topic & Weekly Feedback

16

Final Exam week

 

Final Exam

Course Feedback

**Note to Classroom sections only: Exact dates for reading assignments and programming assignments may differ from the above grid. The faculty syllabus, handed out the first night of class, will indicate any changes.

Activities

zyBooks Participation Activities

The zyBooks textbook Participation Activities (PAs) are animations or learning questions you will complete while reading the textbook material.  You can earn 100% of the points just by participating by the due date.  

zyBooks Challenge Activities

The zyBooks textbook Challenge Activities (CAs) requires you to answer questions correctly to earn your points by the due date.  

WorldClass online Content

The WorldClass online content contains summaries and further reading for the topics covered in your zyBooks textbook.  You are responsible for reading both the textbook and the online Content, and will need material from both in order to complete the  programming assignments in this course.  Do not rely on the textbook readings alone!

zyLab Programming Assignments

zyLab programming assignments will involve writing programs that implement the concepts discussed in the textbook and WorldClass Content.

Discussion Participation

Class participation/effort is important because we can all learn from each other.  Your participation points can make a difference in the final grade.  Participation means: 

1.  a.  Present in class every session (classroom)
     b.  Present in the forum every week (online)
2.  a.  Effectively responds to questions from the facilitator (classroom)
     b.  Regularly checks forum and submits all required items by the deadlines (online)
3.  Interacts/replies to other students in classroom/forum discussions

Exams

There will be a midterm exam and a final exam. Exam questions will be cumulative, taken from reading assignments and course content.

Summary of Assignments and Percentage Weight:

Assignments Weighted Percentage

Course Participation Activities

  • All zyBooks Participation Activities 
  • All zyBooks Challenge Activities        
  • Survey, Academic Integrity Training,
    and all forum Discussions
13%

zyLab Programming Assignments
   14 assns of various weights

44%

Midterm Exam

21.5 %

Final Exam

21.5 %

TOTAL

100 %

Online Sections

See your instructor’s Faculty syllabus in WorldClass for the online Discussion points distribution and programming assignment weights.

Additional CC&IS Policies

Each term, students are expected to review the CC&IS Policies and Procedures Syllabus Addendum on the Regis website.