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

Course Schedule

August
SundayMondayTuesdayWednesdayThursdayFridaySaturday
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24


First day of classes Module A
25

26

27


Math/CS Colloquium: Adam Kucharski
28


Last day to Drop and/or Add a course for Module A
29


Week 1
30

31

     

 

September
SundayMondayTuesdayWednesdayThursdayFridaySaturday
  
1

2

3


Math/CS Colloquium: Lauren Ancel Meyers
4

5


Week 2
6

7

8

9

10


Math/CS Colloquium: Mark Ledwich
11

12


Week 3
13

14

15

16

17


Math/CS Colloquium: David Sumpter
18

19


Week 4
20

21


Last day to Withdraw from a course in Module A
22

23

24


Math/CS Colloquium: Susan Dumais
25

26


Week 5
27

28

29

30

   

 

October
SundayMondayTuesdayWednesdayThursdayFridaySaturday
    
1


Math/CS Colloquium: Grant Sanderson
2

3


Week 6
4

5

6

7

8


Math/CS Colloquium: Jordan Ellenberg
Last day of classes Module A
9


Final Exams
10


Final Exams
Week 7
11

12


Final Exams
13

Course Introductions
Overview of Processing

Hello Processing
Welcome to Processing 3
Getting Started
Processing Overview
Coordinate System and Shapes
Color


First day of classes Module B
14

Processing Basics
Java Basics

Chapter 8
Chapter 9
Chapter 9B
Chapter 11

15

Functions/Methods
Chapter 39
Chapter 40
Chapter 40B
Interactivity

16

Conditional Statements
Chapter 12
Chapter 13

17


Week 8
18

19

Conditional Statements

Last day to Drop and/or Add a course for Module B
20

Lab 3: Conditionals and Booleans
HW 1
21

Printing
Loops and repetition
Java Loops

print(), println() printf()
Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19

22

Lab on Loops
Chapter 41 Chapter 42
23

Code.org Video
More on Loops

24


Week 9
25

26

ASCII, Unicode, Strings
String Notes

Chapter 29
Chapter 29B
String API Formatter API


Advising
27

Lab 5: Strings
HW 2

Advising
28

Objects
Object Notes

Chapter 25: Objects
Chapter 26: Object References
Chapter 27: More about Objects and Classes


Advising
29

Lab 6: Complex Number Objects

Advising
30

Objects
Chapter 30: Defining your own Classes
Chapter 31: Class Design Example (MPG)
Chapter 32: Class Design Example (checking account)


Advising
31


Week 10

 

November
SundayMondayTuesdayWednesdayThursdayFridaySaturday
1

2

Arrays
Chapter 46
Chapter 47
Chapter 48
Chapter 49A
Chapter 49B


Advising
3

Lab 7: Quadratics

Election day
Advising
4


Advising
5

Lab 8: Arrays
HW 3

Advising
6

Sorting and Searching: Sequential Search, Insertion Sort
Chapter 49B


Advising
7


Week 11
8

9

Sorting and Searching: Sequential Search, Insertion Sort
Chapter 49B


Last day to Withdraw from a course in Module B
10

Lab 9: Polynomials
11

2D arrays
12

Lab 10: 2D arrays
13

Image Processing
14


Week 12
15

16

More Image Processing
17

Lab 11: Images
18

Recursion
Chapter 70
Chapter 71
Chapter 72
Chapter 73
Chapter 75

19

Lab 12: Recursion
20

Recursion, Fractals
2D Transforms
Nature of Code: Chapter 8
Chapter 74

21


Week 13
22

23

3D Graphics

HW M
24

Lab 13: Fractals

Last day of classes Module B
25

26

27

28


Week 14
29

30

Final Exam Due
6:00 pm

HW F

Final Exams
     

 

December
SundayMondayTuesdayWednesdayThursdayFridaySaturday
  
1


Final Exams
2


Final Exams
3

4

5


Week 15
6

7

8

9

10

11

12


Week 16
13

14

15

16

17

18

19

20

21

22

23

24

25

26

27
28
29
30
31
  

 

Course Syllabus

Professor
Name
and
Title
Dr. David A. Reimann, Professor
Department of Mathematics and Computer Science
Albion College
Albion, Michigan
Office 252 Putnam
Student Meetings I am teaching online this semester due to the COVID-19 pandemic and will rarely be on campus. In addition to weekly meetings, I encourage you to email me and coordinate a video conference if you have questions. I encourage you to use google calendar to send me a meeting request. You can also email and I will respond as soon as I can.
E-mail dreimann@albion.edu
Website http://zeta.albion.edu/~dreimann/
Phone 517-629-0426 (Office)
517-629-0361 (Secretary)
Course
Course CS 171 & 171L
Course Name Introduction to Computer Science I
Sections CS 171 and CS 171L (CRN: 4200)
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.
Catalog
Description
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, Math 127, or my permission
Meeting Times
and Locations

Lecture and Lab - M Tu W Th F 2:00–5:00 pm, ONLINE
Website http://zeta.albion.edu/~dreimann/Fall2020/courses/cs171/
Schedule http://zeta.albion.edu/~dreimann/Fall2020/courses/cs171/schedule.php
Resources
Required Books None.
Recommended Books
  • A Java textbook.
Online Resources
Software

You should install the following free software on your computer:

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
Final Exam 100
Quizzes 310 (31 @ 10 points each)
Participation 310 (31 @ 10 points each)
Homework 210 (7 @ 30 points each)
Office Meetings 70 (7 @ 10 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.
Attendance

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.

It is my expectation that you will contact me to review missed coursework and arrange a timeline and plan for completing that work. In the case that you are not able to make up missed coursework by the end of the semester, we will need to consider options that may include a withdrawal or incomplete for the semester.

I will do what I can to work with students to facilitate their successful completion of the course. I encourage you to contact me if you have questions or concerns. The Office of Student Development is also available for assistance regarding extended absences.

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.
  • Learn and understand key definitions
  • Come see me in my office if you are having trouble solving a problem.
  • Visit the Cutler Center for Student Success 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!

Academic Support

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.

Staff in the Cutler Center provide supplemental peer tutoring (math, science, economics, and more), writing assistance, fellowship advising, disability accommodations, academic coaching, supplemental advising, and emergency financial support. To connect with the Cutler Center, please email cutler@albion.edu or call Martha Palmer at 517-629-0562 and she can get you to the right person.


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