CSCI 150
Foundations of Computer Science


MWF 9:10am - 10:00am (A2)


MC Reynolds 110


Prof. Lars Seme
(501) 450-1256
Office Hours


W 1:10pm - 4:00pm (L8)


Snoddy Computer Lab


Dr. Gabriel Ferrer
(501) 450-3879
Office Hours


R 1:10pm - 4:00pm (L9)


Snoddy Computer Lab


Dr. Brent Yorgey
(501) 450-1377
Office Hours


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:


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 Code
F 24 Jan Intro to Python I Starting Python
M 27 Jan Intro to Python II Variables, Types, Functions, and Math
W 29 Jan Booleans Boolean Values and Expressions
F 31 Jan Conditionals Conditionals
M 3 Feb Tracing First Tracing Example
W 5 Feb Information Encoding Information Encoding I
F 7 Feb Information Encoding Information Encoding II
M 10 Feb Exam 1 Review Exam 1 Review & Practice Exam
W 12 Feb Exam 1  
F 14 Feb PyCharm and While Loops While Loops
W 19 Feb While Loops and Collatz More While Loops
F 21 Feb Function Stack Tracing and Collatz Function Stack Tracing
M 24 Feb Abstractions More Function Stack Code
    Tracing Sample Solution
W 26 Feb Strings Strings - Introduction
F 28 Feb Strings & Loops Strings & Loops
M 2 Mar Lists I Introduction to Lists
W 4 Mar Lists II More Lists
F 6 Mar Lists III More Lists
M 9 Mar For Loops I Intro to For Loops
W 11 Mar For Loops II More For Loops
F 13 Mar Exam #2 Review  
Date Pre-Lecture Video Skeleton Code In Class Video Class Code
M 30 Mar Dictionaries I Code Class Video Code
W 1 Apr Dictionaries II Code Class Video freq_count
  File I/O Code   Read/Write to File
F 3 Apr No Pre-class video   Class Video Dictionary Examples
        State Cap CSV File
        Mutability Transcript
        Mutability Example Code
M 6 Apr Classes and Objects I Code Class Video Intro to Classes Code
W 8 Apr Classes and Objects II Code Video Code
F 10 Apr Project Example and More Capital Game Class Video Project Questions
    List of US States and Capitals    
    List of Countries and Capitals    
    Archer Game    
M Apr 13 Card Games Intro None Class Video Card Class
        Deck Class
W Apr 15 Data Analysis Intro Code   Data File
      In Class Video Notebook Example
F Apr 17 Card Games Example   Class Video Card Class
        Deck Class
        Hand Class
        Player Class
        5 Card Draw
        Poker Hand Evaluation
M Apr 20 None   In Class Video  
W Apr 22 None – Practice Exam #3 Review   Video Code
F Apr 24 None – Practice Exam #3 Review   Video Code
M Apr 27 Intro to Recursion Code Class Video List Sum Tracing
    Factorial Tracing - Pre-video   Factorial Tracing in Class
W Apr 29 None   Video More Recursion
F May 1 Recursion Homework Discussion   Class Video  
M May 4 Project Questions      


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 Homework Key Quiz Key
0 Student Info Survey W Jan 22 F Jan 24    
1 Minecraft F Jan 24 W Jan 29    
2 Booleans and Conditionals F Jan 31 W Feb 5    
3 Tracing Practice F Feb 14 W Feb 19 Homework #3 Key Quiz #3 Key
4 Function Stack Tracing F Feb 21 W Feb 26 Homework #4 Key Quiz #4 Key
5 DNA Strings F Feb 28 W Mar 4 DNA Sample Solution Quiz #5 Key
6 Lists and Strings F Mar 6 W Mar 11 Homework #6 Key Quiz #6 Key
7 Dictionaries F Apr 3 F Apr 10 Homework #7 Key Quiz #7 Key
8 Classes and Objects F Apr 10 F Apr 17 Homework #8 Key Quiz #8 Key
9 Recursion M Apr 27 F May 1 Homework Key  

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

Lab submission (

# Name Assigned Due
1 Minecraft Hour of Code Jan 22-23 Jan 29-30
2 Kepler and Newton Jan 29-30 Feb 5-6
3 Diagnosing Heart Disease Feb 5-6 Feb 12-13
4 This Day in History Feb 12-13 Feb 19-20
5 Guess My Number Feb 19-20 Feb 26-27
6 Mutation is the Word Feb 26-27 Mar 4-5
7 Todo Manager Mar 4-5 Mar 11-12
8 Caesar’s Secrets Mar 11-12 Apr 1-2
9 Sentiment Analysis Apr 1-2 Apr 15-16
10 Water Jugs    
11 Graphics and Animation    

Much of your experience with programming in this course will be through weekly labs. Each lab will be assigned 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.

Projects: 350 points

# Name Points Assigned Due
1 Civic Assistance Q/A System 50 Feb 14 Feb 28
2 Word Games 100 March 9 April 13
3 Final Project 200 April 13 May 12

Project 3 Design Rubric

Project 3 Final Rubric

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


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.

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