CSCI 150
Foundations of Computer Science

LECTURE 01

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

Location

M.C. Reynolds 110

Instructor

Dr. Brent Yorgey
yorgey@hendrix.edu

Office Hours

LECTURE 02

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

Location

M.C. Reynolds 315

Instructor

Dr. Brent Yorgey
yorgey@hendrix.edu

Office Hours

LAB L1

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

Location

Bailey Lab

Instructor

Dr. Brent Yorgey
yorgey@hendrix.edu

Office Hours

LAB L2

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

Location

Bailey Lab

Instructor

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

TA Office Hours

Sunday Monday Tuesday Wednesday Thursday
Riley (7-9) Chris (6-8) Ryan (6-8) Joseph (6-8) Jada (7-9)

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


Calendar

Date Topic 8am 11am HW and Links
         
W 23 Aug Intro to CS pdf pdf HW: Survey
F 25 Aug Intro to CSCI 150; Algorithms and errors pdf pdf HW: Minecraft by hand
         
M 28 Aug Intro to Python (math, variables) stream kaggle stream kaggle HW: Sign up for CodeGrade
W 30 Aug Intro to Python (functions) stream kaggle stream kaggle  
F 1 Sep Booleans stream kaggle stream kaggle HW: Boolean practice
         
M 4 Sep Labor Day      
W 6 Sep Conditionals      
F 8 Sep Tracing I stream   HW: CodingBat Conditional and By Hand Tracing Practice
         
M 11 Sep PyCharm and I/O stream python stream python Practice Exam 1
W 13 Sep Generative AI stream stream  
F 15 Sep Exam 1 Review stream kaggle stream kaggle  
         
M 18 Sep Exam 1      
W 20 Sep The while loop stream python python stream python python Project 1 Assigned: Civic Assistance Q/A System
F 22 Sep Functions and stack tracing stream python pdf stream python pdf  
         
M 25 Sep Functions and stack tracing stream stream HW: Function Stack Tracing
  python python python      
W 27 Sep Strings stream kaggle stream kaggle  
F 29 Sep Strings and Loops stream kaggle   HW: CodingBat String and Loop practice
         
M 2 Oct Lists     Project 1 Due
W 4 Oct List processing examples      
F 6 Oct Function Abstraction     HW: CodingBat List and Loop practice
         
M 9 Oct The for loop     Project 2 Assigned: Word Games
W 11 Oct More for loop practice      
F 13 Oct Fall Break      
         
M 16 Oct File I/O      
W 18 Oct The Heap and Mutability      
F 20 Oct Exam 2 Review      
         
M 23 Oct Exam 2      
W 25 Oct Dictionaries I      
F 27 Oct Dictionaries II     HW: CodingBat more loop practice
         
M 30 Oct Intro to Classes      
W 1 Nov Classes/objects example 1      
F 3 Nov Classes/objects example 2     HW: Heap Tracing Homework
         
M 6 Nov Intro to PyGame     Project 2 Due
W 8 Nov PyGame      
F 10 Nov Classes and PyGame     HW: Class & Dictionary practice
         
M 13 Nov Final Project Discussion     Project 3 Assigned: Final Project
W 15 Nov Heap Tracing Practice      
F 17 Nov Exam 3 Review     Project 3 Proposal Due
         
M 20 Nov Exam 3      
T 21 Nov Exam 3 Take Home Due      
W 22 Nov Thanksgiving Break      
F 24 Nov Thanksgiving Break      
         
M 27 Nov Recursion      
W 29 Nov Recursion (trees)      
F 1 Dec Project Workshop in Class      
         
F 8 Dec Final Project Presentations      
  11am section: 8:30am-11:30am      
  8am section: 2:00pm-5:00pm      
         

Coursework

Late Policy

[Adapted from Spencer Bagley and David Clark, via Robert Talbert]

CSCI 150 uses a real-world policy on due dates—but this may not mean what you think! In the real real world, due dates exist but they are often not ironclad. The purpose of deadlines is usually to help motivate you to complete the task, but if you need more time to get the job done well, you email whoever set the deadline to ask if you can have more time. Studies have shown that deadline extension requests—in moderation and when truly needed—often lead to better employee evaluations (not to mention better work). [See Go Ahead and Ask for More Time on that Deadline by Ashley Williams.]

If you need an extension on a due date, email me and explain what you need, and it will probably be fine. It helps if you propose a concrete new deadline (e.g. “I can get it done by 5pm on Wednesday”). If you ask for lots of extensions, we’ll work together to find a way to help you keep up. Note, however, that late submissions may not receive feedback as quickly as on-time submissions.

If you have significant extenuating circumstances that cause you to miss multiple deadlines, please come to office hours to discuss broader accommodations. I’m happy to be flexible, but it helps to know what you need so I can figure out the best way to help.

Course Participation

Each student should schedule and attend at least two office hour meetings with either their lecture or lab instructor at some point during the semester.

Homework

# Name Assigned Due Sample Solutions
0 Survey W Aug 23 M Aug 28  
1 Minecraft by hand F Aug 26 W Aug 30  
1.5 Sign up for CodeGrade M Aug 28 W Aug 30  
2 Boolean practice F Sep 1 W Sep 6  
3 CodingBat Conditional and By Hand Tracing Practice F Sep 8 W Sep 13
4 Function Stack Tracing F Sep 22 W Sep 27
5 CodingBat String and Loop practice F Sep 29 W Oct 4  
6 CodingBat List and Loop practice F Oct 6 W Oct 11  
7 CodingBat more loop practice F Oct 27 W Nov 1  
8 Heap Tracing Homework F Nov 3 W Nov 8
9 Dictionary and Class Homework F Nov 10 W Nov 15

There will often be short homework assignments to be completed, typically assigned on Friday and due Wednesday. Homework with coding practice problems will be submitted electronically. By-hand homework should be submitted on physical paper at the start of class time – you can write (neatly) or type and print such solutions.

Labs

Lab submission (CodeGrade)


Wednesday Lab Code of Conduct

# Name Completion time Assigned Due
0 Minecraft 1-2 hrs 23-24 Aug 30-31 Aug
1 Kepler, Newton, Einstein 2-3 hrs 30-31 Aug 6-7 Sep
2 Diagnosing Heart Disease 2.5-3.5 hrs 6-7 Sep 13-14 Sep
3 This Day in History 2-3 hrs 13-14 Sep 20-21 Sep
4 Guess My Number 3-4 hrs 20-21 Sep 27-28 Sep
5 Mutation is the Word 4-5 hrs 27-28 Sep 4-5 Oct
6 Todo Manager 3.5-4.5 hrs 4-5 Oct 18-19 Oct
  No lab (fall break)   11-12 Oct  
7 Caesar’s Secrets 3.5-4.5 hrs 18-19 Oct 25-26 Oct
8 Sentiment Analysis 3.5-4.5 hrs 25-26 Oct 1-2 Nov
9 Water Jugs 3.5-4.5 hrs 1-2 Nov 8-9 Nov
10 Faces 2.5-3.5 hrs 8-9 Nov 15-16 Nov
11 Tornado Sirens 3.5-4.5 hrs 15-16 Nov 29-30 Nov
12 (Optional) Project 3 Workshop   29-30 Nov  

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. A partnership should only turn in a single copy of the assignment.

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

# Name Average time Assigned Due
1 Civic Assistance Q/A System 3:30 20 Sep 2 Oct
2 Word Games 5:50 9 Oct 6 Nov
3 Final Project 12:45 13 Nov 8 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.

Exams

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 Incomplete. 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 Incomplete assessment, a similar list of requirements will be provided. In most cases, an Incomplete 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.


Expectations

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 form. 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
Communication
  • 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.
Preparation
  • 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.
Engagement
  • 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

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.

Disabilities

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; brownj@hendrix.edu) 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 leblanc@hendrix.edu or 501-450-1222 or the Title IX Coordinator Jennifer Fulbright at titleix@hendrix.edu or 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 hendrix.edu/nondiscrimination.

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 (brownj@hendrix.edu). 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!