CSCI 150
Foundations of Computer Science

LECTURE 01

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

Location

M.C. Reynolds 110

Instructor

Dr. Gabriel Ferrer
ferrer@hendrix.edu
(501) 450-3879
Office Hours

LAB L1

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

Location

Bailey Lab

Instructor

Dr. Gabriel Ferrer
ferrer@hendrix.edu
(501) 450-3879
Office Hours

LAB L2

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

Location

Bailey Lab

Instructor

Dr. Brent Yorgey
yorgey@hendrix.edu

Office Hours

TA Office Hours

Sunday Monday Tuesday Wednesday
Ted (7-9) Leigh (3:30-5:30) Ryan (6-9) Madeline (7-9)
  Ryan (6-8)    

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 Day Topic/Activity Quiz Assigned Due
17 Jan Weds Introduction to CS   Survey  
19 Jan Fri Algorithms and Errors   HW: Minecraft by hand Survey
           
22 Jan Mon Python
Math & Variables
  HW: Math and Variables HW: Minecraft by hand
24 Jan Weds Functions      
26 Jan Fri Booleans      
           
29 Jan Mon Conditionals   HW: Boolean practice HW: Math and Variables
31 Jan Weds Tracing I Minecraft by Hand    
2 Feb Fri Pycharm      
           
5 Feb Mon I/O   HW: CodingBat Conditional and By Hand Tracing Practice HW: Boolean Practice
7 Feb Weds More Conditionals Math and Variables    
9 Feb Fri The while loop   Project 1: Civic Assistance Q/A System  
           
12 Feb Mon More while loop
Generative AI
  HW: Loops HW: CodingBat Conditional and By Hand Tracing Practice
14 Feb Weds Functions & Stack Tracing Booleans    
16 Feb Fri Functions & Stack Tracing   HW: Function Stack Tracing  
           
19 Feb Mon Winter Break - No class     HW: Loops
21 Feb Weds Strings Conditionals    
23 Feb Fri Strings and Loops     Project 1
           
26 Feb Mon Lists   HW: CodingBat String and Loop practice HW: Function Stack Tracing
28 Feb Weds List Processing Examples Loops    
1 Mar Fri Function Abstraction   Project 2: Word Games  
           
4 Mar Mon The for loop   HW: CodingBat List and Loop practice HW: CodingBat String and Loop Practice
6 Mar Weds More for loop practice Function Stack Tracing    
8 Mar Fri Common loop patterns      
           
11 Mar Mon File I/O   HW: File I/O HW: CodingBat List and Loop Practice
13 Mar Weds More File I/O Strings and Loops    
15 Mar Fri The Heap and Mutability     Project 2
           
18 Mar Mon Spring Break - No class      
20 Mar Weds Spring Break - No class      
22 Mar Fri Spring Break - No class      
           
25 Mar Mon Dictionaries I   HW: Dictionaries HW: File I/O
27 Mar Weds Dictionaries II Lists and Loops    
29 Mar Fri Final Project Discussion   Final project  
           
1 Apr Mon Classes   HW: Classes HW: Dictionaries
3 Apr Weds Class/object examples (cake; car) File I/O    
5 Apr Fri Class/object examples (bookshelf)     Final project: Design Document
           
8 Apr Mon Eclipse - No class     HW: Classes (Slide under instructors’s door)
10 Apr Weds PyGame animation Dictionaries HW: PyGame  
12 Apr Fri Classes and PyGame      
           
15 Apr Mon Recursion I   HW: Recursion HW: PyGame
17 Apr Weds Recursion II: Trees Classes    
19 Apr Fri Recursion III: Applications     Final project: Progress Report
           
22 Apr Mon Binary and Information Encoding     HW: Recursion
24 Apr Weds Project Workshop PyGame    
26 Apr Fri Retrospective      
           
3 May Fri 2:00-5:00 pm Final Project Presentations      

Code from Lectures


Coursework

Tokens

Each student begins the semester with six tokens.

Homework

There will often be short homework assignments to be completed, typically assigned on Monday and due the following Monday. 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.

Quizzes

A short quiz will be given at the end of class on most Wednesdays. Each quiz will contain one or more short problems that should be solvable within 10 minutes.

Quizzes are pass-fail. If a student does not pass a quiz, or does not attend class on a quiz day for any reason, they can make up the quiz by visiting the instructor’s office during a scheduled make-up time. The schedule will be announced during the second week of classes.

Quiz make-ups can also be arranged on Monday, April 29, the Reading Day.

Missing a quiz is excused if the student communicates to the instructor prior to class that day that it is necessary for the student to miss class.

If extenuating circumstances make the scheduled make-up times impossible to attend, a student should communicate with the instructor to determine other potential arrangements.

Labs

# Name Completion time Assigned Due
0 Minecraft 1-2 hrs 17-18 Jan 24-25 Jan
1 Kepler, Newton, Einstein 2-3 hrs 24-25 Jan 31 Jan-1 Feb
2 Diagnosing Heart Disease 2.5-3.5 hrs 31 Jan-1 Feb 7-8 Feb
3 This Day in History 2-3 hrs 7-8 Feb 14-15 Feb
4 Guess My Number 3-4 hrs 14-15 Feb 21-22 Feb
5 Mutation is the Word 4-5 hrs 21-22 Feb 28-29 Feb
6 Todo Manager 3.5-4.5 hrs 28-29 Feb 6-7 Mar
7 Caesar’s Secrets 3.5-4.5 hrs 6-7 Mar 13-14 Mar
  Project 2 Workshop   13-14 Mar  
8 Asteriskbucks   27-28 Mar 3-4 Apr
9 Water Jugs 3.5-4.5 hrs 3-4 Apr 10-11 Apr
10 Faces 2.5-3.5 hrs 10-11 Apr 17-18 Apr
11 Tornado Sirens 3.5-4.5 hrs 17-18 Apr 24-25 Apr
  Project 3 Workshop   24-25 Apr  

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.

Each lab consists of a series of milestones. At the start of each lab, you will receive a sheet of paper listing the milestones for that lab. As you achieve each milestone, you will demonstrate to the instructor or TA that you have met the milestone, and they will record this achievement on your checklist. When you complete all of the lab milestones, you will submit the milestone checklist.

If you complete the lab during the lab period, hand your checklist to your lab instructor before you leave the lab. If you require additional time beyond the lab period to complete the lab, either the instructor or the lab TA can check off the remaining milestones during office hours. You can then submit the completed checklist to the instructor at the start of the next lab.

You will work with a partner on each lab assignment. Each partner will have their own milestone checklist. If they do not complete the milestones during the lab period, they should find time outside of lab to work together to complete them. If they are unable to do so, only the instructor is authorized to record milestones for students working alone.

Lab attendance is required. If an extenuating circumstance impedes the attendance of lab, the student must contact the lab instructor prior to the start of the lab for the absence to be excused. The student is still responsible for completing the lab activity on-time.

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

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

# Name Assigned Due
1 Civic Assistance Q/A System 9 Feb 23 Feb
2 Word Games 1 Mar 15 Mar
3 Final Project 29 Mar 3 May

Each project will be assessed as Level 1 Complete or Level 2 Complete, with criteria specified individually for each project.

Specifications Grading

Final course grades are earned based on cumulative assignment outcomes. For each category of assignment, there are three levels of mastery: Basic, Intermediate, and Advanced.

Labs

Homework/Quizzes

Out of 13 homeworks and 12 quizzes (25 total assignments):

Projects

There are two levels for each project. The final project counts as two projects. Add up total project levels completed:

Final Course Grade


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.

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!