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 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
TBA TBA TBA TBA
  TBA    

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
Generative AI
  HW: Loops HW: CodingBat Conditional and By Hand Tracing Practice
25 Sep Weds Functions & Stack Tracing Booleans    
27 Sep Fri Functions & Stack Tracing   HW: Function Stack Tracing  
           
30 Sep Mon Strings     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     Project 2
           
28 Oct Mon Dictionaries I   HW: Dictionaries HW: File I/O
30 Oct Weds Dictionaries II Lists and Loops    
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: Classes
13 Nov Weds Classes and PyGame Dictionaries HW: PyGame  
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     Final project: Progress Report
           
25 Nov Mon Binary and Information Encoding     HW: Recursion
27 Nov Wed Thanksgiving - No class      
29 Nov Wed Thanksgiving - No class      
           
2 Dec Mon Project Workshop      
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

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

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


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!


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.

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.