Course Syllabus

CSCI 1101 - Computer Science I

Instructor Information

Instructor: Prof. Mariam Salloum

Office: St. Mary’s S279
Phone: (617) 552 – 0233

Website: http://www.cs.bc.edu/~salloumm

E-mail: salloumm@bc.edu

Course Description

This course is an introduction to the world of computer programming and some of the fundamental concepts of computer science. You will learn to write programs using the Python programming language. By the end of the course, you will be able to design fairly complex programs that do interesting and useful things. You will also study some of the basic concepts of computer science, including algorithms of fundamental importance.

Prerequisite : There is no course prerequisite for CSCI1101. If you have some programming knowledge, so much the better, but it is not required. It helps to be comfortable with high school-level algebra, and be familiar with the computer you will be using to complete homework assignments.

Textbook

The textbook for the course is Think Python, by Allen B. Downey.  The book is written in a pleasant, conversational style that invites you to actually read the book, something that students rarely do with the more traditional textbooks. Moreover, it is available in two different forms at very attractive prices: If you are content to have just an electronic copy of the book, you may download it (legally) for free, from http://www.greenteapress.com/thinkpython/.  If, like me, you prefer a paper-and-ink version, you can buy the book from Amazon for the very reasonable price of $40. I will follow the book fairly closely but not slavishly (I may omit chapters and/or change the order of a few topics), and will assign reading along with the problem assignments.

Course Material

Homework assignments will require the use to a computer and using the Python programming language to complete the assignment. If you have a computer (either Mac or Windows), install the necessary software on your computer. If you do not own a computer, or if your computer is behaving badly, you may do the work for this course at one of the workstations in the Computer Science workstation lab in Fulton 160.

Course Required Work

  • Lecture Section
    • There are three 50-minute lectures each week. Attendance to these lectures are critical as new material related to homework and exams will be presented.
    • You are also expected to attend lecture regularly. If there are completing reasons for missing a lecture, please let me know before hand.
  • Discussion Section
    • You are also expected to attend the weekly discussion sections and complete the in-lab exercises given in these sections.
    • The labs are run by the course Teaching Assistants. They provide a great opportunity for you to practice with new material on some fun problems in a supervised setting.
    • If you complete the in-lab exercise, you are not obligated to stay for the entire lab time. However, you may decide to use the time to get started on your homework.
  • Homework Assignments
    • Most assignments will be programming assignments in the Python Programming language, while a few will require a paper-and-pencil component.
    • Assignments will be posted on Canvas (pay close attention to the deadline!). You can turn in homework up-to 48 hours late for a 15% penalty. Since homework assignment solutions will be posted on Canvas, no homework will be accepted beyond the 48-hour grace period.
    • Submitting Assignments: You will use Canvas to turn-in your assignments.
    • The assignments are not meant to be completed last minute! This does not mean that assignments will necessarily require many hours to complete, but rather that questions are likely to arise during the work, and you may need some answers before you can proceed further. 
  • Exams
    • There will be two midterm exams and one final exam.

Grading Policy

The final grade will be determined based on the following distribution:

Points

Description

35

Homework Assignments

15

Discussion Participation

25

Midterms

25

Final Exam

100

Total Points Possible

 

Late Work Policy : Be sure to pay close attention to deadlines— Assignement will be posed on Canvas along with the deadline. If you are unable to meet the deadline, you can turn in homework up-to 48-hours after due date for a 15% penalty per day. This policy is adoped because assignement solutions will be posted on Canvas, and hence I cannot accept homework after solutions are posted. Deadline may be extended if the entire class requests the extension. In such an event, the new deadline will posted on Canvas.

Viewing Grades: Grades for assignments and exams will be posted on Canvas. If you have a concern about a graded assignment, please see me as soon as possible.

Services for Students with Disabilities

If you are a student with a documented disability seeking reasonable accommodations in this course, please contact Kathy Duggan, (617) 552-8093,dugganka@bc.edu, at the Connors Family Learning Center regarding learning disabilities and ADHD, or Paulette Durrett, (617) 552-3470, paulette.durrett@bc.edu, in the Disability Services Office regarding all other types of disabilities, including temporary disabilities. Advance notice and appropriate documentation are required for accommodations.

Academic Integrity

While I encourage you to discuss homework problems both among yourselves and with me, when it comes to finally sitting down and preparing the completed assignment, you are required to work alone.  Thus it is acceptable to learn from another student the general idea for writing program code to perform a particular task, but unacceptable to take an extended piece of code written by another person and incorporate it into your submitted assignment as your own work.  Similarly, you may get ideas from additional reading that you do both in books and on the Web, but you may not import large pieces of code wholesale into your own work. If you have any uncertainty about the application of this policy, please check with me.

It should go without saying that during exams there is to be no communication between students, and no use of outside materials except those explicitly authorized in advance. Failure to comply with these guidelines will be considered a violation of the University policies on academic integrity. Please make sure that you are familiar with these policies, which are posted at http://www.bc.edu/offices/stserv/academic/integrity.html.

Topics Covered

This is meant to be a general outline for the topics covered in this course. I may decide to skip topics or change midterm dates based on class progress, so please refer to Canvas for the most up-to date schedule.

  1. Preliminaries, data types
  2. Variables, expressions, and statements
  3. Functions
  4. Conditionals
  5. Loops
  6. Recursion
  7. Lists, Dictionaries, Tuples
  8. Searching & Sorting Algorithms
  9. Sets and Maps
  10. Storage, Binary Trees
  11. Reading/Writing Files
  12. Exception Handling
  13. Abstract Data Types

 

 

Course Summary:

Date Details Due