Albion College

CS 171

Introduction to Computer Science I & Lab

Spring 2024

Everyone is awesome
colored lego minigifs
Especially you!

Course Schedule

January

SundayMondayTuesdayWednesdayThursdayFridaySaturday
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


MLK Day - no classes
16

How the web works
HTML basics
CSS basics

Lab 1: HTML and CSS

First day of classes
17

Course Introductions
Installing Python
18

19

Computer Hardware Basics
Silicon Run Lite

20


Week 1
21

22

HW 1 (Lab 1)
Why Program?
PY4E: Lesson 2
23

Chapter 2
Lab 2: Python Basics
24

Variables, Expressions, and Statements
PY4E: Lesson 3

Last day to Drop and/or Add a course
25

26

Conditional Execution
PY4E: Lesson 4
27


Week 2
28

29

HW 2
Functions
PY4E: Lesson 5
30

Lab 3: Conditionals and Booleans
Lab 3
31

Functions
PY4E: Lesson 5
   

February

SundayMondayTuesdayWednesdayThursdayFridaySaturday
    
1


Math/CS Colloquium: Ramon Olavarria
2

Loops and Iterations
PY4E: Lesson 6
3


Week 3
4

5

HW 3
Loops and Iterations
PY4E: Lesson 6
6

Lab 4: Loops
Lab 4
7

Loops and Iterations
PY4E: Lesson 6
8


Math/CS Colloquium: Erik Davis
9

Strings
PY4E: Lesson 7
10


Week 4
11

12

Strings
PY4E: Lesson 7
13

Lab 5: Strings
Lab 5
14

HW 4
Lists
PY4E: Lesson 9
15


Math/CS Colloquium: David A. Reimann
16

Test #1
17


Week 5
18

19

Lists
PY4E: Lesson 9
20

Lab 6: Lists
Lab 6
21

Lists
PY4E: Lesson 9
22


Math/CS Colloquium: Stanley Ryan Huddy
23

Lists
PY4E: Lesson 9
24


Week 6
25

26

Files
PY4E: Lesson 8
27

Lab 7: Files
Lab 7
28

Dictionaries
PY4E: Lesson 10
29


Math/CS Colloquium: Paul Anderson
  

March

SundayMondayTuesdayWednesdayThursdayFridaySaturday
     
1

Tuples
PY4E: Lesson 11
2


Week 7
3

4


Spring Break
5


Spring Break
6


Spring Break
7


Spring Break
8


Spring Break
9


Week 8
10

11

Combining strings, lists, dictionaries, and tuples
12

HW 5
13

14


Math/CS Colloquium: Mark Bollman
Pi Day
15


Math/CS Colloquium: Timothy L. Clark
16


Week 9
17

18


Academic Advising
19


Math/CS Colloquium: Methsarani Premathilaka
Academic Advising
20


Academic Advising
21


Math/CS Colloquium: Angela Morrison
Academic Advising
22

Test #2

Academic Advising
23


Week 10
24

25

Object-Oriented Programming
PY4E: Lesson 15

Academic Advising
W deadline
26

Lab 10: Objects

Academic Advising
27

Object-Oriented Programming
PY4E: Lesson 15

Academic Advising
28


Math/CS Colloquium: Elena Wang
Academic Advising
29

Object-Oriented Programming
PY4E: Lesson 15

Academic Advising
Classes End at 1 p.m.
30


Week 11
31

      

April

SundayMondayTuesdayWednesdayThursdayFridaySaturday
 
1

Classes and Objects
PY4E: Lesson 15
2

Lab 11: Objects 2
3

Classes and Objects
PY4E: Lesson 15
4


Math/CS Colloquium: Chengyong Feng
5

Recursion
Think Python: Chapter 5
6


Week 12
7

8

Recursion
Think Python: Chapter 6

Solar Eclipse
9

Lab 12: Recusion
10

Recursion
The Recursive Book of Recursion: Chapter 1 The Recursive Book of Recursion: Chapter 2 The Recursive Book of Recursion: Chapter 3
11


Math/CS Colloquium: Michael A. Jones
12

Sorting and Searching
The Recursive Book of Recursion: Chapter 5
13


Week 13
14

15

Sorting and Searching
The Recursive Book of Recursion: Chapter 5
16

Lab 13: Recusion 2
More Recursion
17

More Recursion
18


Elkin Isaac Symposium
Purple & Gold Weekend
19

Test #3

Purple & Gold Weekend
20


Purple & Gold Weekend
Week 14
21

22

Fractals
5.7. Introduction: Visualizing Recursion
5.8. Sierpinski Triangle

23

Lab 14: Fractals
Fractals
24

Review
25


Math/CS Colloquium: Senior Majors
Last day of classes
Last day to register for CR/NC option
26


Reading Day
27


Final Exams
Week 15
28

29

Final Exam
3:00 – 5:00 pm


Final Exams
30


Final Exams
    

May

SundayMondayTuesdayWednesdayThursdayFridaySaturday
   
1


Final Exams
2

3

4


Commencement
Week 16
5

6

7

8

9

10

11

12

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 (he/him/his)
Department of Mathematics and Computer Science
Albion College
Albion, Michigan
Office
252 Putnam
Student Meetings

I want you to succeed in this course! Contact me as soon as possible if you have questions. Don't wait until you are completely lost to ask for help. Drop-in to my office or meet with me virtually (via Google Meet) to talk about the course or personal struggles you are facing that affect your course performance. It is often most productive if you have specific questions on assignments or material covered in class.

These times I have set aside to provide you individual help. I will be regularly available

  • Monday 2:15–4:00 pm,
  • Wednesday 2:15–4:00 pm,
  • Thursday 2:15–3:00 pm,
  • and by appointment.
For simple questions, chatting before or after class is often the most convenient.

I will generally not directly answer your question or directly solve homework problems. Rather, I will work with you for you to discover solutions by clarifying and leading you along a promising path. This might be me asking you questions and working with you in solving similar problems.

These are also good times to discuss more general topics such as mathematics, computer science, Albion, research, graduate school, careers, or if you just want to hangout! It is also important to come see me if you missed class.

Email
dreimann@albion.edu
Website
http://zeta.albion.edu/~dreimann/
Phone
517-629-0426 (Office)
517-629-0361 (Department)
Faculty Role
In teaching, faculty equip students with the knowledge, skills, and creativity grounded in a belief in students' ability to learn and the desire to help students engage in their own learning. Faculty are not babysitters — we expect you to take personal responsibility for your learning.

Communication

The single biggest problem in communication is the illusion that it has taken place.
George Bernard Shaw
playwright
Class
The best time to ask general questions is in class. It is likely that if you are confused, others are as well. Talk to me before or after class about other issues. For example, issues about absences, setting up a special appointment, questions about assignments, etc.
Office
Come see me in my office for help with the course or other questions you might have.
Email
Email me with questions, updates, or meeting requests.
Google Chat
Send me a chat message with questions, updates, or meeting requests.
General
It is hard to over communicate.
I want you to succeed!

Course

Course
CS 171
Course Name
Introduction to Computer Science I & Lab
Credit
1.0 Unit
CRN
2050 (Lecture), 2051 (Lab)
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.
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.
Prerequisite
Math 120
Corequisite
Math 127
Meeting Times
Monday, Wednesday, and Friday 10:30-11:35 pm (Palenske 223)
Lab 1: Tue 2:15–4:15 pm (Putnam 251)
Website
http://zeta.albion.edu/~dreimann/Spring2024/courses/cs171/

Course Notes and Files

Google Spaces
Google Spaces: CS 171 - Spring 2024
Messages sent in spaces will go to all students in the course. Private messages should use google chat or email.
Google Drive
Google Drive: CS 171

Resources

Required Books
Python for Everybody - Interactive — Free and online!
References
Required Programming Software
  1. Python Environment
  2. Online Python
Recommended Course Software and Hardware
  1. Google Meet
  2. A modern up-to-date web browser (or several)
Required and Optional Computer Hardware
  1. Windows, Mac, or Linux - a Chromebook will not be sufficient
  2. A modern up-to-date web browser (or several)
  3. A network connection — an optional hardwired connection is best
  4. An optional auxiliary monitor can be helpful
Albion College Technology
Guides & Resources - For Students

Student Learning Outcomes

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

Assignment Policies
Generally, no credit will be given for assignments submitted after the due date except in the cases of an official College event or documented serious circumstance beyond your control. If you miss class because of participation in an official College event you must make prior arrangements with me. In situations of a documented serious circumstance beyond your control, please contact me as soon as possible. With an excused absence, it is possible that an alternative assignment will be used. Credit for other late assignments will be at the discretion of the instructor.
Extra Credit
I may include some optional extra credit on some assignments. However, you should plan on completing the regularly scheduled course assignments to earn points in the course.
Elements
Element Points Description
Quizzes 150 (30 @ 5 points each)
Labs 130 (13 @ 10 points each)
Homework 200 (10 @ 20 points each)
Meetings 20 (2 @ 10 points each)
Tests 300 3 @ 100 points each
Final Exam 200 Final
Total 1000  
Grade Determination
Points % 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. In order to receive an Incomplete, a student must have finished at least half of the total graded work required by the class with a passing grade at the time they take the incomplete. They must also create a completion plan to finish the incomplete work in the shortest amount of time and have the plan approved by the faculty member teaching the course. A grade of incomplete must be removed by the Monday of the ninth week of the semester following the one in which the incomplete was given. Summer is not included as a semester. Incomplete grades given in the summer must be completed by the Monday of the ninth week in the following semester. At the end of the specified time period, the faculty member will assign a grade based on the amount of work satisfactorily completed. The grade of "I" carries no quality points. Students with two or more outstanding Incompletes may register for no more than three courses in the following semester. Should a student reduce the total number of Incompletes to one or zero before the end of the add/drop period, that student would be allowed to register for a full course load of up to 4.5 units.

Attendance and Conduct

Classroom Issues

I expect you to attend class!

Many of the topics and content explored in the course will be taught and communicated via class demonstrations, activities, and discussions. Therefore, attendance and participation are crucial for a complete understanding of course material.

Some class sessions will be recorded. This is being done as a resource for students who miss the class as it is happening live, either due to illness or some other excused reason, and for students who simply wish to review the class session as a study tool. The video and audio recording are to be used for educational purposes only and will be available through Google for the duration of the course. The file is meant only for students currently enrolled in the course and may not be copied or shared with anyone else.

Policies and Expectations

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 (such as illness or the need for quarantining) 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. You are responsible for all material and assignments even if you miss class.

In the event that you find yourself experiencing COVID-19 related symptoms, I request that you do the following:

  • Stay home! This is the best way to prevent spreading COVID-19 as supported by scientific evidence.
  • Follow College guidelines for daily symptom reporting found on the Together Safely page.
  • If you are self-quarantining/isolating, 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.

Albion College Academic Religious Support Policy: I will make every reasonable effort should be made to help students avoid negative academic consequences when their religious obligations conflict with academic requirements. Absence from classes or examinations for religious reasons does not relieve students from responsibility for any part of the course work required during the period of absence. Students who expect to miss classes, examinations, or other assignments as a consequence of their religious observance will be provided with a reasonable alternative opportunity to complete such academic responsibilities. It is the obligation of students to provide faculty with notice of the dates of religious holidays on which they will be absent at the beginning of the semester. Should disagreement arise over any aspect of this policy, the parties involved should contact the Provost’s Office.

Should you miss a class, it is your responsibility to 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.

In cases where you have not taken personal responsibility, your ability to earn points will be at the sole discretion of the instructor.

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 Honesty, Integrity, and Expectations

Policies

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.

Educational Environment

Discriminatory Harassment
Albion College seeks to create a welcoming environment in which all students can learn, but we recognize that harassment may still occur. If a student experiences harassment or discriminatory treatment, there are several ways they can report it. For details, please see https://www.albion.edu/offices/student-development/current-students/report-discriminatory-harassment/.
Bias Reporting
In line with our commitment to fostering a culture of belonging on campus, we have created a bias reporting system for use by all members of our community. This tool allows students, faculty, and staff to report individual incidents of bias on or off campus and serves as a mechanism to help us address systemic issues of bias more broadly. For more information and/or to report a bias incident, please see https://www.albion.edu/offices/office-of-belonging/bias-reporting/.
Relationship Violence, Sexual Assault, and Sexual Harassment

Albion College is committed to providing an educational environment where we are all able to learn, teach, and work freely and where the dignity, safety, and self-respect of all members of our community are protected. Sexual assault, sexual harassment, domestic violence, dating violence, stalking, and sex-based discrimination are incompatible with this mission and will not be tolerated at Albion College.

If you have experienced domestic violence, dating violence, stalking, sexual assault, sexual harassment or sex-based discrimination, please contact the College’s Title IX Coordinator, Kelly Finn (titleix@albion.edu) to learn about possible support measures, resources and options that are available to you. To view the full Title IX policy and information on reporting visit www.albion.edu/offices/office-of-belonging/title-ix/.

On-campus confidential resources for victims/survivors of sexual assault include Mikayla Campbell, Director of the Anna Howard Shaw Center for Gender Equity and Victim Advocacy (mcampbell@albion.edu), Counseling Services (517-629-0236), and Sexual Assault Advocates(SAAs).

If you wish to report to the police, you can contact Albion Department of Public Safety (517-629-3933 — non-emergency) or Michigan State Police Post Number 54 (269-558-0500 — non-emergency) or call 911 if you are experiencing an emergency.

Academic Accommodations and Support

Instructor Support

This course will be challenging because of the complexity and breadth of the material. Most students will struggle and need additional help at some point during the semester; I expect that and so should you. Learning is hard work! Successful students attend most all classes, start assignments early, and complete all assignments. They use feedback to help master the material, which is critical in a course where material builds throughout the course. Successful students develop effective study skills and take advantage of College-wide support resources listed below. Successful students quickly reach out to me about their struggles.

If you are struggling with the course material or keeping up with the pace of the class, seek help as soon as you are experiencing difficulty. Do not wait until the end of the term to seek help!

Ac­com­mo­da­tions statement

It is the policy of Albion College to accommodate students with disabilities and qualifying diagnosed conditions in accordance with federal and state laws. Any student who feels that they may need an accommodation based on the impact of a learning, psychiatric, physical, or chronic health diagnosis, should contact Accessibility Services Director, Elizabeth Rudolph (erudolph@albion.edu), to develop a plan for reasonable accommodation(s) based on supporting documentation.

If you have completed this process and requested accommodations for this semester, plan to meet with Elizabeth Rudolph as early as possible to discuss a plan for implementing these modifications in this class. It is best to schedule these meetings at least one week prior to their implementation.

Accessibility Services is housed in the Cutler Center on the first floor of the Stockwell Library and is open during regular business hours. The main phone is 517-629-0562 or email cutler@albion.edu for more information.

Cutler Center

The Cutler Center for Student Success and Academic Achievement is located in the Stockwell Library and provides free supplemental peer tutoring (math, science, economics and more), writing assistance, fellowship advising, accessibility accommodations, success coaching, supplemental advising, and loaner laptops and calculators. The Cutler Center has student drop-in hours Monday–Friday noon–2pm with their 15 Minute Fix. The Cutler Center is also home to the First-Year Peer Mentor Program. To connect with the Cutler Center, please email cutler@albion.edu or call 517-629-0562 to be connected to the resource you need to be successful this term.

Covid-19

General Information

Some faculty and students may be feeling uncertain about wearing or not wearing a mask in class. With no current mask mandate in place at this time, this is an individual decision for members of the Albion community and one we must respect. With regard to masks, I encourage you to do what makes you most comfortable to be in the classroom and ready to learn.

Together Safely

See the Together Safely page for detailed information on Covid-19.

Mental Health

Resources

Your mental health is more important than your grades!

If you or someone you know is struggling with depression, mood changes, excessive worry, problems with eating and/or sleeping, or family or interpersonal problems, Albion College provides mental health services to support students. Counseling Services offers free, confidential psychological services: call 517-629-0236 or email counseling@albion.edu to talk to someone or, if this is an emergency, call 517-629-1234 and ask to speak to the counselor on call.