CSCI 150
Foundations of Computer Science

LECTURE 01

MWF 8:10am - 9:00am

Location

MCREY 110

Instructor

Dr. Brent Yorgey
yorgey@hendrix.edu
(501) 450-1377
Office Hours

LECTURE 02

MWF 11:10am - 12:00pm

Location

MCREY 110

Instructor

Dr. Mark Goadrich
goadrich@hendrix.edu
(501) 450-1367
Office Hours

LAB 01

R 1:10pm - 4:00pm

Location

Snoddy Computer Lab

Instructor

Dr. Brent Yorgey
yorgey@hendrix.edu
(501) 450-1377
Office Hours

LAB 02

W 1:10pm - 4:00pm

Location

Snoddy Computer Lab

Instructor

Dr. Mark Goadrich
goadrich@hendrix.edu
(501) 450-1367
Office Hours

Overview

Introduction to solving computational problems, including the fundamentals of computer programming. Topics include imperative programming constructs (variables, loops, conditionals, functions, recursion), basic object-oriented constructs (classes, objects), and some fundamental algorithms and data structures (dictionaries, arrays, linked lists). Student learn these concepts through studying the Python programming language.

Learning Goals

Upon completing this course, our goal is for you to be able to:

Resources

Optional Resources

Laptop Policy

Please do not bring laptops to lecture. This may seem strange in a computer science class. But lab is the place where you will get plenty of experience working on the computer; lecture is a time for thinking and learning without the distraction of a computer.

Exceptions may be made on a case-by-case basis if you can prove to me that you really do benefit from using your laptop to take notes.


In-Class Code

When we write code together in class, it will be posted here!

Date Topic 8am 11am
F 30 Aug Intro to Python 8am 11am
W 4 Sep More Math and Functions 8am 11am
F 6 Sep Strings and Booleans 8am 11am
M 9 Sep Conditionals 8am 11am
M 23 Sep PyCharm, I/O, while intro.py, while.py intro.py
W 25 Sep more while loops while.py, collatz.py repetition.py, collatz.py
F 27 Sep functions collatz.py, stacktrace.py collatz2.py
M 30 Sep function abstraction hilow.py, hilow_functions.py hilow.py, hilow_functions.py
W 2 Oct strings 8am 11am
F 4 Oct String and loop practice 8am morewhile.py
M 7 Oct Lists 8am morewhile2.py
W 9 Oct More lists 8am listpractice.py
F 11 Oct List practice 8am fridaypractice.py
M 21 Oct For loops For Loops.ipynb ForLoops.ipynb
W 23 Oct For loops with range For Loops.ipynb  
F 25 Oct Tracing and the Heap References More Tracing
M 28 Oct Dictionaries Dictionaries Dictionaries
W 30 Oct File Input Output Files File I/O
F 1 Nov Dictionary/tracing practice Dictionaries  
M 4 Nov Classes and objects Birthday Cake.ipynb Objects.ipynb
W 6 Nov More Classes   MakingCake.ipynb
F 8 Nov Designing classes traffic.py  
M 11 Nov Extended example    
W 13 Nov Extended example   Card, Hand, Deck, Player
F 15 Nov Extended example Elevator, Person, Hotel, Main  
MW 2-4 Dec Queues    
F 6 Dec ? A different problem, Cold-puter Science, Baby Bites, Saving Princess Peach, Babelfish Graphics.py Demo Day

Coursework

Each student has four late days to spend throughout the semester as they wish. Simply inform the instructor any time prior to the due date for an assignment that you wish to use a late day; you may then turn in the assignment up to 24 hours late. Multiple late days may be used on the same assignment. There are no partial late days; turning in an assignment 2 hours late or 20 hours late will both use 1 late day. Note that late days are intended to cover both normal circumstances (you simply want more time to work on the assignment) and exceptional circumstances (you get sick, travel for a game or family obligation, etc.). After you have used up your late days, late assignments will receive at most half credit.

Homework and Quizzes: 140 points

# Name Assigned Due
0 Info Sheet W Aug 28 F Aug 30
1 Minecraft by hand F Aug 30 W Sep 4
2 Boolean practice F Sep 6 W Sep 11
3 Tracing & conditional practice F Sep 13 W Sep 18
  Homework Checkin 1 M Sep 23 F Oct 4
4 Function and loop practice F Sep 27 W Oct 2
5 Strands of DNA F Oct 4 W Oct 9
6 For loop reading F Oct 25 W Oct 30
7 Heap/dictionary reading F Nov 1 W Nov 6
8 Class design practice F Nov 8 W Nov 13
9 Class reading F Nov 15 W Nov 20

There will often be short homework assignments to be completed over the weekend, assigned on Friday and due Wednesday, sometimes with a corresponding quiz at the beginning of class on Wednesday.

Labs: 260 points


Submission form
Rubric


# Name Assigned Due
1 Minecraft Hour of Code Aug 28-29 Sep 4-5
2 Kepler and Newton Sep 4-5 Sep 11-12
3 Diagnosing Heart Disease Sep 11-12 Sep 18-19
4 This Day in History Sep 18-19 Sep 25-26
5 Guess My Number Sep 25-26 Oct 2-3
6 Mutation is the Word Oct 2-3 Oct 9-10
7 Todo Manager Oct 9-10 Oct 23-24
8 Caesar’s Secrets Oct 23-24 Oct 30-31
9 Sentiment Analysis Oct 30-31 Nov 6-7
10 Water Jugs Nov 6-7 Nov 13-14
11 Graphics and Animation Nov 13-14 Nov 20-21
12 Enron’s Secrets Nov 20-21 Dec 4-5
13 On Stuckness and Debugging Dec 4-5 Dec 11-12

Much of your experience with programming in this course will be through weekly labs. Each lab will be assigned Wednesday/Thursday in lab with time allotted to work through the materials, and will be due by the start of the following lab. All labs are weighted equally within the lab portion of your final grade.

On these labs, you will work with a partner on the lab assignments. Their name must be listed on any code you hand in as joint work. A partnership should only turn in a single copy of the assignment. If students working as partners wish to turn in a lab late, both students must use a late day.

Lab attendance is required. Labs take place in the Snoddy Computer Lab, in the Bailey Library. As you go through the exterior door of the library, turn immediately to your left and enter the Snoddy Academic Resource Center. Continue through the door at the far end of the hall into the first computer lab, and then enter the second lab at the back.

Labs should follow the Python style guide. You may use the automated style checker to help you catch common style errors.

Azure Notebook Setup

For many of the labs, we will be using Azure Notebooks. Here are specific instructions on how to get started with these notebooks.

Projects: 350 points


Submission form


# Name Points Assigned Due
1 Civic Assistance Q/A System 50 Sep 21 Sep 30
2 Word Games 100 Oct 16 Nov 1
3 Final Project 200 Nov 18 Final Exam Day

You will have three projects in this course, one about every five weeks. These projects will cover concepts we have discussed in class and in labs, and will be due approximately one week after they are assigned.

You must work individually on the first two projects. You may discuss concepts and ideas with your classmates, but the code you turn in must be your own. You will be graded not only on correctness, but also technique, documentation and evaluation of your solution. Further details on the grading standards and handin instructions for each project will be given when they are assigned.

Exams: 250 points

There will be three in-class exams, the first worth 50 points and the second and third worth 100 of your final grade. They will consist of short answer questions along with writing and debugging code.

There is no final exam; you will complete a final project instead, as described above under Projects.

Grading Scale

Score Grade
900-1000 A
800-899 B
700-799 C
600-699 D
0-599 F

Commitments

It is my ultimate goal for this course, and my teaching, to develop your academic skills, advance your learning of computer science concepts, and support the liberal arts in general. To do so will require commitments from myself and from you toward meeting this goal.

Active Participation

I will be prepared and on time for class each day, ready to use class time to help you understand the course material. I will respectfully listen to, understand, and answer questions asked in class.

You are expected to attend class and actively participate in discussions every day, answering questions, asking questions, presenting material, etc. Your participation will be respectful of your classmates, both of their opinions and of their current point in their educational journey, as we each approach the material with different backgrounds and contexts.

Constructive Feedback

I will keep office hours and be available for outside appointments, and respond to emails within one business day (not including weekends). I will provide feedback on group presentations within one day. For exams, projects, and homeworks, I will provide graded feedback within two weeks.

You are encouraged to provide constructive comments for improving this course for furthering your learning throughout the semester. There will be an opportunity for anonymous course feedback at the end of the term, in which I hope you all participate. Through your feedback I can improve this course and others for future students.

In addition, you can use this form to submit anonymous feedback for Dr. Yorgey any time.

Academic Integrity

I will abide by the above syllabus and grade your work fairly.

As stated in the Hendrix Academic Integrity Policy, all students have agreed to adhere to the following principles:

  • All students have an equal right to their opinions and to receive constructive criticism.
  • Students should positively engage the course material and encourage their classmates to do the same.
  • No students should gain an unfair advantage or violate their peers' commitment to honest work and genuine effort. It follows that any work that a student submits for class will be that student's own work. The amount of cooperation undertaken with other students, the consistency and accuracy of work, and the test-taking procedure should adhere to those guidelines that the instructor provides.
  • Members of the Hendrix community value and uphold academic integrity because we recognize that scholarly pursuits are aimed at increasing the shared body of knowledge and that the full disclosure of sources is the most effective way to ensure accountability to both ourselves and our colleagues.
More details of our departmental stance on integrity can be found in the Hendrix Computer Science Academic Integrity Policy

Learning Accomodation

I will make this classroom an open and inclusive environment, accommodating many different learning styles and perspectives.

Any student seeking accommodation in relation to a recognized disability should inform me at the beginning of the course. It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Students should contact Julie Brown in the Office of Academic Success (505.2954; brownj@hendrix.edu) to begin the accommodation process.

Physical and Mental Health

I am willing to work with you individually when life goes off the rails.

Coursework and college in general can become stressful and overwhelming, and your wellness can be impacted when you least expect it. You should participate in self-care and preventative measures, and be willing to find support when you need it.

  • The Office of Counseling Services welcomes all students to see a counselor in a private and safe environment regardless of their reasons for making an appointment. Counseling services are available to all Hendrix students at no cost.
  • Student Health Services provides free healthcare to Hendrix students. Services are provided by an Advanced Practice Registered Nurse (APRN) in collaboration with a local physician.

The Offices of Counseling Services and Student Health Services are located in the white house behind the Mills Center for Social Sciences at 1541 Washington Avenue.