CSCI 150
Foundations of Computer Science

background image from slidebackground.com

LECTURE 01

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

Location

M.C. Reynolds 110

Instructor

Prof. Lars Seme
seme@hendrix.edu
(501) 450-1256
Office Hours

LECTURE 02

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

Location

M.C. Reynolds 315

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 Thursday
6-8 PM 5-7 PM 7-9 PM 7-9 PM 6-8 PM
Katherine Reid Leigh Johnston Ted Bjurlin Joseph Washum Jauss Favorite

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        
28 Aug Weds Introduction to CS   Survey          
30 Aug Fri Algorithms and Errors   HW: Minecraft by hand Survey        
                   
2 Sep Mon Labor Day - No class              
4 Sep Weds Python
Math & Variables
  HW: Math and Variables HW: Minecraft by hand        
6 Sep Fri Functions              
                   
9 Sep Mon Booleans   HW: Boolean practice HW: Math and Variables        
11 Sep Weds Conditionals Minecraft by Hand            
13 Sep Fri Tracing I              
                   
16 Sep Mon Pycharm
I/O
  HW: CodingBat Conditional and By Hand Tracing Practice HW: Boolean Practice        
18 Sep Weds More Conditionals Math and Variables            
20 Sep Fri The while loop   Project 1: Civic Assistance Q/A System          
                   
23 Sep Mon More while loop   HW: Loops HW: CodingBat Conditional and By Hand Tracing Practice        
25 Sep Weds Functions & Stack Tracing Booleans            
27 Sep Fri Functions & Stack Tracing              
                   
30 Sep Mon Strings   HW: Function Stack Tracing HW: Loops        
2 Oct Weds Strings and Loops Conditionals            
4 Oct Fri More Strings and Loops     Project 1        
                   
7 Oct Mon Lists   HW: CodingBat String and Loop practice HW: Function Stack Tracing        
9 Oct Weds List Processing Examples Loops            
11 Oct Fri Function Abstraction   Project 2: Word Games          
                   
14 Oct Mon The for loop   HW: CodingBat List and Loop practice HW: CodingBat String and Loop Practice        
16 Oct Weds Common loop patterns Function Stack Tracing            
18 Oct Fri Fall Break - No class              
                   
21 Oct Mon File I/O   HW: File I/O HW: CodingBat List and Loop Practice        
23 Oct Weds More File I/O Strings and Loops            
25 Oct Fri The Heap and Mutability              
                   
28 Oct Mon Dictionaries I   HW: Dictionaries HW: File I/O        
30 Oct Weds Dictionaries II Lists and Loops   Project 2        
1 Nov Fri Final Project Discussion   Final project          
                   
4 Nov Mon Classes   HW: Classes HW: Dictionaries        
6 Nov Weds Class/object examples (cake; car) File I/O            
8 Nov Fri Class/object examples (bookshelf)              
                   
11 Nov Mon PyGame animation   HW: PyGame HW: Classes        
13 Nov Weds Classes and PyGame Dictionaries            
15 Nov Fri Classes and PyGame     Final project: Design Document        
                   
18 Nov Mon Recursion I   HW: Recursion HW: PyGame        
20 Nov Weds Recursion II: Trees Classes            
22 Nov Fri Recursion III: Applications              
                   
25 Nov Mon Binary and Information Encoding     HW: Recursion        
27 Nov Wed Thanksgiving - No class              
29 Nov Wed Thanksgiving - No class              
                   
2 Dec Mon Generative AI              
4 Dec Fri Project Workshop              
6 Dec Fri Retrospective              
                   
13 Dec Fri 8:30-11:30 am (Seme)
2:00-5:00 pm (Ferrer)
Final Project Presentations              

Code from Lectures

Date Ferrer Seme
Aug 28   Intro to CS
Aug 30   Errors, Algorithms, and Math in Python
Sep 4   Math, Variables, Functions
Sep 6   More Functions
Sep 9   Booleans
Sep 11   Conditionals
Sep 13   Tracing Intro
Sep 16   PyCharm and I/O
Sep 18   More Conditionals
Sep 20   The While Loop
Sep 20   More While Loops
Sep 25   Stack Tracing
Sep 27   More Stack Tracing
Oct 2   Strings and Loops
Oct 4   More Strings and Loops - Input Checking
Oct 7   Lists
Oct 9   List Processing Examples
Oct 11   Function Abstraction
Oct 14   For Loops
Oct 16   More For Loops
Oct 21   File IO
    Sample Text File
Oct 23   More File IO
    Sample Data File
Oct 25   Heap and Mutability
Oct 28   Intro to Dictionaries
Oct 30   More Dictionaries
Nov 1   Final Project Information
Nov 4   Intro to Classes
Nov 6   Class Examples
Nov 8   More Class Examples
    Book List
Nov 11   PyGame Intro
Nov 13   More PyGame
    Sound File
Nov 15   Even More PyGame
    Homer1
    Homer2
Nov 18   Recursion
Nov 20   Recursion
Nov 22   Time Efficiency
Nov 25   Binary & Information Encoding
Dec 2   Generative AI

Coursework

Homework

Short homework assignments will be 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.

Each correct homework earns one credit. Submitting a sincere attempt at completing the homework on time earns one additional credit. If a homework is incorrect and does not receive credit, a student who wishes to revise the homework will be expected to visit office hours for feedback prior to submitting the revision.

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 scored as follows:

A student may retake a given quiz twice. For each retake, the student must schedule an office hours appointment. Prior to the appointment, the student is expected to have run the code from the quiz in Python and achieved an understanding of why their answers were not correct. At the appointment, the student will be expected to explain as best they are able why their original answers were incorrect and what the correct answers should be. After a satisfactory explanation, the instructor will give the student a makeup quiz.

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. A student may book an office hours appointment to take a quiz missed due to an excused absence.

Labs

# Name Completion time Assigned Due
0 Minecraft 1-2 hrs 28-29 Aug 4-5 Sep
1 Kepler, Newton, Einstein 2-3 hrs 4-5 Sep 11-12 Sep
2 Diagnosing Heart Disease 2.5-3.5 hrs 11-12 Sep 18-19 Sep
3 This Day in History 2-3 hrs 18-19 Sep 25-26 Sep
4 Guess My Number 3-4 hrs 25-26 Sep 2-3 Oct
5 Mutation is the Word 4-5 hrs 2-3 Oct 9-10 Oct
6 Todo Manager 3.5-4.5 hrs 9-10 Oct 23-24 Oct
7 Caesar’s Secrets 3.5-4.5 hrs 23-24 Oct 30-31 Oct
8 Asteriskbucks 2-3 hrs 30-31 Oct 6-7 Nov
9 Water Jugs 3.5-4.5 hrs 6-7 Nov 13-14 Nov
10 Faces 2.5-3.5 hrs 13-14 Nov 20-21 Nov
11 Tornado Sirens 3.5-4.5 hrs 20-21 Nov 4-5 Dec
  Project 3 Workshop   4-5 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.

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.

Each completed lab earns one credit. Submitting the completed checklist by the start of the next lab earns one additional credit.

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 to discuss that circumstance 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 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 20 Sep 4 Oct
2 Word Games 11 Oct 25 Oct
3 Final Project 1 Nov 13 Dec

Each project will be assessed as Level 1 Complete or Level 2 Complete, with criteria specified individually for each project. Note that the final project must be submitted on-time to earn credit - no final projects will be accepted late. Projects earn credits as follows:

Project Level 1 Complete Level 2 Complete On-time Bonus Maximum Credit
1 2 4 1 5
2 2 4 1 5
3 4 8 None 8

If a project receives less than Level 2 Complete, a student may submit a revised version of the project after an office hours meeting with the instructor to discuss how the project should be improved.

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.

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

From the 12 labs, 24 total credits are available:

Remember: For an absence to be excused, the student must discuss the circumstances with the lab instructor.

Homework/Quizzes

Out of 13 homeworks and 11 quizzes, 48 total credits are available:

Projects

From the three projects, 18 total credits are available:

Final Course Grade


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.

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.

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 Donna Eddleman at eddleman@hendrix.edu or 501-450-1222 or the Title IX Coordinator Jennifer Fulbright at titleix@hendrix.edu or 501-505-2901. For more information on Hendrix non-discrimination policies, visit hendrix.edu/nondiscrimination.

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. Your health is important, and I care more about your health and well-being than I do about this class!