CS 171 & 171L Introduction to Computer Science I & Lab Spring 2020 

Course Syllabus

Dr. David A. Reimann, Professor
Department of Mathematics and Computer Science
Albion College
Albion, Michigan
Office 252 Putnam
Office Hours 2:15 - 3:30 pm, Monday.
2:15 - 5:00 pm, Wednesday.
2:15 - 3:00 pm, Thursday.
I am also available by appointment at other times. Email me or talk to me before or after class to set up a meeting outside my regular office hours.
I am often in my office at many other times. Come see me if you need help - that is why I am here!
E-mail dreimann@albion.edu
Website http://zeta.albion.edu/~dreimann/
Phone 517-629-0426 (Office)
517-629-0361 (Secretary)
Course CS 171 & 171L
Course Name Introduction to Computer Science I
Sections CS 171 (CRN: 6001)
CS 171L (CRN: 6002)
Credit 1 Unit
Core/Category This course fulfills the Modeling and Analysis Mode. From the catalog: Courses in this mode derive some essential or simplified features from logical, physical, social or biological phenomena, and describe and interpret them within an analytical framework. In order to fulfill this mode of inquiry, courses must:
  1. explore logical, physical, social or biological phenomena;
  2. enable students to decide which features of the phenomena to describe and what simplifying assumptions to make;
  3. derive predictions from the model and interpret them in the original context;
  4. consider the usefulness and the limits of the model and compare it with other possible models.
Designed to be the first computer science course taken by students in mathematics and science, as well as those wishing to major in computer science. Topics include fundamentals of computation and algorithmic problem solving, data types, control structures, the object-oriented programming paradigm, and applications. Introduces a high level programming language such as Java or Python.
Prerequisites Math 125 or my permission
Meeting Times
and Locations

Lecture - M W F 10:30 - 11:35 am in 227 Palenske
Lab - Tu 2:15 - 4:15 pm in 251 Putnam
Website http://zeta.albion.edu/~dreimann/Spring2020/courses/cs171/
Schedule http://zeta.albion.edu/~dreimann/Spring2020/courses/cs171/schedule.php
Required Books None.
Recommended Books
  • A Java textbook.
Online Resources

You should install the following free software on your computer (also soon to be available in the Putnam 251 and Palenske 231 Computer Labs):

Student Learning Outcomes

This learning objectives for this course are aligned with learning objectives from Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, a product of The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) IEEE Computer Society.

This learning objectives of this course are mainly aligned with the "Software Development Fundamentals (SDF)" knowledge area. Students will also study parts of the following knowledge areas: "Algorithms and Complexity (AL)", "Computational Science (CN)", "Graphics and Visualization (GV)", and "Programming Languages (PL)".

Knowledge Units Student Learning Outcomes
AL/Fundamental Data Structures and Algorithms
  1. Implement basic numerical algorithms.
CN/Introduction to Modeling and Simulation
  1. Explain the concept of modeling and the use of abstraction that allows the use of a machine to solve a problem.
GV/Fundamental Concepts
  1. Explain in general terms how analog signals can be reasonably represented by discrete samples, for example, how images can be represented by pixels.
  2. Describe color models and their use in graphics display devices.
  3. Describe the basic process of producing continuous motion from a sequence of discrete frames.
PL/Object-Oriented Programming
  1. Design and implement a class.
SDF/Algorithms and Design
  1. Discuss the importance of algorithms in the problem-solving process.
  2. Discuss how a problem may be solved by multiple algorithms, each with different properties.
  3. Create algorithms for solving simple problems.
  4. Use a programming language to implement, test, and debug algorithms for solving simple problems.
  5. Implement, test, and debug simple recursive functions and procedures.
  6. Determine whether a recursive or iterative solution is most appropriate for a problem.
SDF/Fundamental Programming Concepts
  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs variables, expressions, assignments, I/O, control constructs, functions, parameter passing, and recursion.
  2. Identify and describe uses of primitive data types.
  3. Write programs that use primitive data types.
  4. Modify and expand short programs that use standard conditional and iterative control structures and functions.
  5. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, the definition of functions, and parameter passing.
  6. Write a program that uses file I/O to provide persistence across multiple executions.
  7. Choose appropriate conditional and iteration constructs for a given programming task.
  8. Describe the concept of recursion and give examples of its use.
  9. Identify the base case and the general case of a recursively-defined problem.
SDF/Fundamental Data Structures
  1. Write programs that use arrays, classes, and strings.
SDF/Development Methods
  1. Trace the execution of a variety of code segments and write summaries of their computations.
  2. Explain why the creation of correct program components is important in the production of high-quality software.
  3. Apply a variety of strategies to the testing and debugging of simple programs.
  4. Construct, execute and debug programs using a modern IDE and associated tools such as unit testing tools and visual debuggers.
  5. Construct and debug programs using the standard libraries available with a chosen programming language.
  6. Apply consistent documentation and program style standards that contribute to the readability and maintainability of software.
Performance Evaluation
Grade Element Possible Points
Tests 300 (3 @ 100 points each)
Final Exam 100
Quizzes 150 (30 @ 5 points each)
Homework 280 (14 @ 20 points each)
Computer Labs 140 (14 @ 10 points each)
Office Meetings 30 (2 @ 15 points each)
Total Possible Points 1000+

See Schedule for specific dates.
Your Points Percentage Your Grade Interpretation
93.0-100.0 4.0 Represents work outstanding in quality. The student not only shows unusual mastery of the required work for the course, but also has independently sought out and used additional related materials, demonstrating the ability to discover new data, to develop new insights and to bring them to bear on the work at hand.
90.0-92.9 3.7  
87.0-89.9 3.3  
83.0-86.9 3.0 Represents work which is higher in quality than that of a 2.0, or more than satisfactory. The student has shown the ability and the initiative to fulfill more than the basic requirements of the course.
80.0-82.9 2.7  
77.0-79.9 2.3  
73.0-76.9 2.0 Represents work which fulfills all of the basic requirements for the course. It means that the student has a grasp of the material and techniques or skills sufficient to proceed with more advanced courses in the area.
70.0-72.9 1.7  
67.0-69.9 1.3  
60.0-66.9 1.0 Represents work seriously attempted but which is below the 2.0 level in quantity and quality. The student is advised not to continue advanced work in the field.
0-59.9 0.0 Represents work unsatisfactory in either quantity or quality. It results in the student's not being able to continue with further work in the field and results in no credit, although it is recorded on the permanent record.
  I Incompletes may be given only because of illness, or other unavoidable circumstances, as approved by the Petitions Committee. An Incomplete is not to be issued to a student who simply has failed to turn in some assigned work before the end of the semester. The "I" grade should be used rarely and for legitimate reasons. A final grade of Incomplete must be removed within four weeks after the end of the semester in which it was incurred, unless the deadline is extended by the Petitions Committee. Grades of "I" count as zeros in the calculation of the end-of-semester grade point average, and, if they are not removed within the required time, become zeros automatically on the student's record.

The following is the Albion College statement on attendance: "Regular attendance in all classes is expected. Every absence from class is inevitably a loss — usually one which can never be made up. A student has the responsibility to inform his or her faculty member, whenever possible in advance, of an absence due to serious or prolonged illness, and verification of absences due to emergency reasons, may be obtained from the Office of Residential Life."

In this course class absences are only excusable in documented extreme cases of unforeseen hardship or official College event, as described in the Student Handbook. Please notify me in writing (email is preferred) prior to official college events (sporting, class trips, etc.) that make it impossible for you to attend class. If you miss class because of participation in an official College event you must make prior arrangements with me. In extreme cases of unforeseen hardship, please contact me as soon as possible. In either case, you are still responsible for all material and assignments.

In cases where you have not taken personal responsibility, you will forfeit the possibillity of earning points. No credit will be given for a missed test or other scheduled in-class assignment, nor will late assignments be accepted.

You will have an opportunity to review your grade and other unreturned assignments for four weeks after the start of the subsequent semester. After that time, I will discard all unclaimed materials.

Academic Integrity and Expectations

As an academic community, Albion College is firmly committed to honor and integrity in the pursuit of knowledge. Therefore, as a member of this academic community, each student acknowledges responsibility for his or her actions and commits to the highest standards of integrity. In doing so, each student makes a covenant with the college not to engage in any form of academic dishonesty, fraud, cheating, or theft.

The goal of this course is for you to learn a rigorous academic discipline, not penmanship, typing, or other forms of plagiarism. Chapter III of the Student Handbook details instances and penalties for academic dishonesty. It also describes acceptable usage of the campus computing/networking facilities. In this class you are expected to do your own work unless explicitly stated.

Here are some things which will be considered cheating:

  • Using or turning in another's work as you own - with or without their permission.
  • Allowing someone else to use or turn in your work as theirs - in whole or in part.
  • Joint effort on an assignment with individual submissions represented as individual work.
  • If a student cannot explain why the solution is correct or how the solution was obtained.
Here are some things which are encouraged:
  • A submission using help from the instructor, student assistants, or the texts.
  • Discussion of the concepts related to the course material.
  • Discussion of assignments to understand what is required.

Typically, I grade papers one problem at a time. If you turn in someone else's work as you own, it really stands out. Please do your own work! If you are having trouble on an assignment come see me as soon as possible - I'm here to help!

We, as students and faculty, have the privilege and challenge of promoting higher standards of ourselves, the College, and society in general. Here are several expectations we should have this semester.

What you should expect of me. What I expect from you.
To attend class regularly and punctually and to adhere to the class schedule. To attend class regularly and punctually.
Come to class prepared. Come to class prepared.
Grade and return work in a reasonable amount of time. Fulfill all course assignments and requirements.
Know course material thoroughly and prepare and present it conscientiously. Uphold academic honesty in all activities.
Maintain scholarly, professional, and courteous demeanor in class. Maintain scholarly, professional, and courteous demeanor in class.
Be available at reasonable times for consultation. Keep all appointments except for extreme cases.

Communication is essential in any relationship. Our student-teacher relationship is no exception. If you have any concerns with the class material or logistics, please talk to me as soon as possible.

Tips for Success

There are a variety of effective teaching and learning styles. Part of the challenge of college is learning your individual particular learning style and how to learn from a variety of teaching styles. I will try and use several ways of presenting the material to help you learn the course material. Ultimately you are responsible for learning the material. Here are some things that will help you succeed in this course:

  • Come to class and be on time.
  • Be engaged in class; listen, take good notes, and ask questions as they arise.
  • Read the book, noting any important concepts and unresolved questions.
  • Review your notes.
  • Form a study group with others in the course.
  • Do the assigned problems and as many others as you can, even partially. Solve problems. Solve problems with notes. Solve problems without notes. Solve problems as a group. Solve problems individually. Solve problems!
  • Learn and understand key definitions
  • Come see me in my office if you are having trouble solving a problem.
  • Visit the Quantitative Studies Center for additional help.
  • Focus on learning the material, not just on earning a grade.
  • Keep all returned material, particularly quizes and tests.
  • I want you to succeed in the course, but the learning is your responsibility!

Tips for Problem Solving

One of the goals of this course is for you to improve you problem solving skills. Here are some general problem solving steps.

  • Read and understand the problem.
  • What do you need to know?
  • What do you know?
  • Devise a plan for solving the problem. Is this problem similar to others you have solved?
  • Carry out your plan.
  • Verify you solution.
  • Repeat steps as needed.
  • Note what you have learned solving the problem.
  • Can your solution be generalized?

Academic Support

Accommodations statement: Accommodations statement: Any student with a disability who believes the requirements of this course may require accommodations or modifications should contact the Learning Support Center (LSC) Director, Dr. Pamela Schwartz, who will work with you to develop a plan for reasonable accommodations based on your information and supporting documentation. If you have completed this process and have requested accommodations through the LSC for this semester, plan to meet with me as early as possible to discuss a plan for implementing these modifications in this class. It is best if we can talk at least one week prior to their implementation. The LSC is located in 114 Ferguson Hall (on the first floor of the administration building) and is open during regular business hours throughout the school year. The main phone is 517/629-0825, and the number for the Adaptive Technology Office is 517/629-0411.

College-Wide Learning Support: Academic support at Albion College is provided through the Academic Skills Center and the Learning Support Center.

  • The Academic Skills Center, located in the Seeley Mudd Building of the Library supports student success at Albion College through the Quantitative Studies Center and the Writing Center. The ASC also operates Study Rooms in various academic areas. For information, visit the ASC website at http://www.albion.edu/asc.
    • The Quantitative Studies Center provides a wide range of support to students in many subject areas. Students are free to drop in for occasional help from trained student tutors or to make appointments for on-going tutorial sessions. QSC staff members are available to assist you with the use of mathematics, statistics, spreadsheets, or graphing calculators in any course. The center also offers workshops on topics such as partial derivatives in chemistry and preparing for graduate school exams. For more information, contact the QSC Director, Karla McCavit, (x0824; kmccavit@albion.edu).
    • The Writing Center provides trained peer consultants prepared to work with writers at every stage of the writing process—from getting started brainstorming to writing drafts, and from organizing ideas to revising or final editing. Writing consultants support students by responding to writing in process, not by proofreading, editing, or writing students' papers. Both drop-in tutoring and scheduled appointments are available during the Writing Center's evening hours. For more information, contact the Writing Center (x0828; writing@albion.edu) or the Director, Scott Hendrix (shendrix@albion.edu).
  • The Learning Support Center, located in 114 Ferguson Hall (the administration building), offers individualized assistance with college-level study strategy and skill development. Students frequently utilize the center to improve grades, reading speed or comprehension. As part of this mission, the LSC also provides individual peer tutoring support for most introductory courses. In addition, the LSC provides assistance and accommodations to students who have documented learning disabilities. For more information, contact the LSC Director, Pamela Schwartz (x0825; pschwartz@albion.edu).

Copyright © 2020, David A. Reimann. All rights reserved.