CSCI 150
Foundations of Computer Science


MWF 8:10am - 9:00am (A1)


M.C. Reynolds 110


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


MWF 11:10am - 12:00pm (A4)


M.C. Reynolds 315


Dr. Brent Yorgey
Office Hours


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


Bailey Lab


Dr. Brent Yorgey
Office Hours


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


Bailey Lab


Prof. Jared McCune
Office Hours


TAs will be available to help during the scheduled lab times, and also available on Monday, Tuesday, and Thursday evenings in the library lab according to the following schedule:

Time Monday Tuesday Thursday
6-8 pm Mason Trey Hoopchuk Simon Reid & Ted Bjurlin(6:30)
8-10 pm Daniel Burnett Zoie Keys Ted Bjurlin


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


Date Topic Seme Notes/Code Yorgey Notes/Code HW and Links
W 24 Aug Intro to CS Intro   HW: Survey
F 26 Aug Intro to CSCI 150; Algorithms and errors Algor and Errors HW: Minecraft by hand
M 29 Aug Intro to Python (math, variables) Math & Var  
W 31 Aug Intro to Python (functions) Functions  
F 2 Sep Booleans Booleans HW: Boolean practice
M 5 Sep Labor Day      
W 7 Sep Conditionals Conditionals  
F 9 Sep Tracing I Tracing Intro HW: CodingBat Conditional and By Hand Tracing Practice
M 12 Sep Tracing II see 9/9 code    
W 14 Sep PyCharm and I/O PyCharm  
F 16 Sep Exam 1 Review Practice Solutions  
M 19 Sep Exam 1      
W 21 Sep The while loop While,, Project 1 Assigned: Civic Assistance Q/A System
F 23 Sep Functions and stack tracing Stack, HW: Function Stack Tracing
M 26 Sep Binary/Stack Tracing Binary  
W 28 Sep Tracing and Strings      
F 30 Sep Strings and Loops     HW: CodingBat String and Loop practice
M 3 Oct Lists     Project 1 Due
W 5 Oct List processing examples      
F 7 Oct Function Abstraction     HW: CodingBat List and Loop practice
M 10 Oct The for loop     Project 2 Assigned: Word Games
W 12 Oct More for loop practice      
F 14 Oct Fall Break      
M 17 Oct File I/O      
W 19 Oct The Heap and Mutability      
F 21 Oct Exam 2 Review      
M 24 Oct Exam 2      
W 26 Oct Dictionaries I      
F 28 Oct Dictionaries II     HW: CodingBat more loop practice
M 31 Oct Intro to Classes      
W 2 Nov Classes and Objects      
F 4 Nov Classes and Objects     HW: Heap Tracing Homework
M 7 Nov Intro to PyGame     Project 2 Due
W 9 Nov PyGame      
F 11 Nov Classes and PyGame     HW: Class design practice
M 14 Nov Final Project Discussion     Project 3 Assigned: Final Project
W 16 Nov Heap Tracing Practice      
F 18 Nov Exam 3 Review     Project 3 Proposal Due
M 21 Nov Exam 3      
T 22 Nov ** Exam 3 Take Home Due** By 11:59pm By 11:59 pm  
W 22 Nov Thanksgiving Break      
F 24 Nov Thanksgiving Break      
M 28 Nov Recursion      
W 30 Nov Recursion (trees)      
F 2 Dec Project Workshop in Class      
F 9 Dec Final Project Presentations 2-5pm (Seme) 8:30-11:30am (Yorgey)  


Late Policy

If a student needs an extension, the instructor must be notified by email or Microsoft Teams message prior to the deadline. This notification email must state the duration of the requested extension. The instructor reserves the right to decline a request for an extension, but aside from the final project the intention is that most requests for extensions will be granted.

Course Participation


# Name Assigned Due Sample Solutions
0 Survey W Aug 24 M Aug 29  
1 Minecraft by hand F Aug 26 W Aug 31  
2 Boolean practice F Sep 2 W Sep 7  
3 CodingBat Conditional and By Hand Tracing Practice F Sep 9 W Sep 14 Tracing Solutions
4 Function Stack Tracing F Sep 23 W Sep 28
5 CodingBat String and Loop practice F Sep 30 W Oct 5  
6 CodingBat List and Loop practice F Oct 7 W Oct 12  
7 CodingBat more loop practice F Oct 28 W Nov 2  
8 Heap Tracing Homework F Nov 4 W Nov 9
9 Dictionary and Class Homework F Nov 11 W Nov 16  

There will often be short homework assignments to be completed over the weekend, typically assigned on Friday and due Wednesday.

CodingBat homework will be submitted electronically through CodingBat. By-hand homework will be submitted at the start of class time – you can write (neatly) or type such solutions.


Lab submission form

# Name Assigned Due
0 Minecraft 24-25 Aug 31 Aug-1 Sep
1 Kepler, Newton, Einstein 31 Aug-1 Sep 7-8 Sep
2 Diagnosing Heart Disease 7-8 Sep 14-15 Sep
3 This Day in History 14-15 Sep 21-22 Sep
4 Guess My Number 21-22 Sep 28-29 Sep
5 Mutation is the Word 28-29 Sep 5-6 Oct
6 Todo Manager 5-6 Oct 19-20 Oct
7 Caesar’s Secrets 19-20 Oct 26-27 Oct
8 Sentiment Analysis 26-27 Oct 2-3 Nov
9 Water Jugs 2-3 Nov 9-10 Nov
10 Faces 9-10 Nov 16-17 Nov
11 Tornado Sirens 16-17 Nov 30 Nov - 1 Dec
12 Project 3 Workshop 30 Nov - 1 Dec 9 Dec

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.

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.

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.


# Name Assigned Due
1 Civic Assistance Q/A System W 21 Sep M 3 Oct
2 Word Games M 10 Oct M 7 Nov
3 Final Project W 9 Nov F 9 Dec

You will have three projects in this course. These projects will cover concepts we have discussed in class and in labs, and will be due approximately two to three weeks after they are assigned.

You must work individually on the 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.


There will be three exams. Each exam will have two parts:

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

Specifications Grading

Each assignment is assessed as Complete, Partially Complete or Missing. Criteria for the first two categories will be specified for each assignment. Final course grades are earned based on cumulative assignment outcomes:

Revising submitted work

If a submitted assignment receives a Partial assessment and the student seeks a Complete assessment:

If a submitted assignment receives a Missing assessment, a similar list of requirements will be provided. In most cases, a Missing assignment can only be upgraded to Partially Complete, but the instructor reserves the right to allow students to achieve Complete on a case-by-case basis.


Although you and I play different roles in the course, we both have your learning as a common goal. There are things I expect from you as a student in the course, but there are also things you can expect of me as the course instructor and facilitator.

If I am not fulfilling my responsibilities outlined below, you are welcome (and encouraged!) to call me out, perhaps via the anonymous feedback forms here Prof. Seme and Dr. Yorgey. I will also initiate a conversation if you are not fulfilling yours. However, none of us will meet all of the expectations perfectly—me included!—so it’s also important that we have grace and patience with one another.

What I expect from you What you can expect from me
  • Check your email and Teams for occasional course announcements.
  • Let me know via email or Teams message if you will need to miss class for some reason.
  • Let me know as soon as possible if you feel you are struggling, would like extra help, or have something going on that will affect your engagement in the course or your ability to fulfill your responsibilities.
  • Clearly communicate expectations, assignment details and dates, and grading standards.
  • Return grades and feedback on submitted work within one week of submission.
  • Respond to emails within 24 hours.
  • Come prepared to fully engage in class meetings, with distractions minimized, to the best of your ability.
  • Spend time outside of class actively practicing unfamiliar or shaky concepts or skills (not just reading over notes).
  • Have a concrete plan for how we will spend each class meeting, prepared to lead you through the plan.
  • Make myself available to meet outside of class, and give you my full attention during a meeting.
  • Be committed to your learning, open to feedback and willing to respond in substantive ways to your suggestions or concerns.


Attendance in this class is not required as part of your grade. However, I do expect you to attend and appreciate knowing in advance if you will need to miss class.


If you have a documented disability or some other reason that you cannot meet the above expectations, and/or your learning would be best served by a modification to the usual course policies, I would be happy to work with you—please get in touch (via Teams or email)! The course policies are just a means to an end; I don’t care about the policies per se but I do care about you and your learning.

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. Any student seeking accommodation in relation to a recognized disability should inform the instructor at the beginning of the course.

Diversity and Inclusion

Hendrix College values a diverse learning environment as outlined in the College’s Statement on Diversity. All members of this community are expected to contribute to a respectful, welcoming, and inclusive environment for every other member of the community. If you believe you have been the subject of discrimination please contact Dean Mike Leblanc at or 501-450-1222 or the Title IX Coordinator Jennifer Fulbright at titleix@hendrix.eduor 501-505-2901. If you have ideas for improving the inclusivity of the classroom experience please feel free to contact me. For more information on Hendrix non-discrimination policies, visit

Mental and Physical Health

Hendrix recognizes that many students face mental and/or physical health challenges. If your health status will impact attendance or assignments, please communicate with me as soon as possible. If you would like to implement academic accommodations, contact Julie Brown in the office of Academic Success ( To maintain optimal health, please make use of free campus resources like the Hendrix Medical Clinic or Counseling Services (501.450.1448). Your health is important, and I care more about your health and well-being than I do about this class!