CSCI 1101B Fall 2016 Instructor: Sean Barker |
This course will provide an introduction to computational thinking, programming, and the field of computer science in general. Computer science is fundamentally a study of problem solving, not simply computers (or computer programs) themselves. We will consider questions such as (1) what defines computer science, (2) how do we design an algorithm to solve a problem, and (3) how do we translate an algorithm into a computer program?
Over the course of the semester, students will learn the fundamentals of programming using the Python programming language and write a variety of programs during weekly lab assignments and larger projects. Labs will reinforce concepts presented in class that are fundamental to computer science and computation across many fields. Specific topics covered include variables, functions, conditionals, loops, arrays, recursion, and object-oriented programming.
Prerequisites: None. No programming background is expected of students taking CSCI 1101. Students with extensive programming background may wish to instead enroll in CSCI 2101 (Data Structures).
Distribution: This course fulfills the MCSR distribution requirement by teaching students to employ programming and algorithmic problem solving. These skills are broadly applicable across many fields of study.
Instructor: Sean Barker
Email:
Phone: 207-798-4220
Office: Searles 220
Office Hours: Tues/Wed, 2-3:30, or by appointment.
TAs / QR Mentors: Drop-in lab hours in Searles 128:
Sunday: Bo (7-9 PM) and Brooke (6-8 PM)
Monday: James (6-8 PM)
Tuesday: Amanda (7-9 PM)
Wednesday: Riley (7-9 PM) and Will (6-8 PM)
Thursday: Erik (8-10 PM) and Waverly (8-10 PM)
Attendance during class and lab sessions, completion of weekly short lab assignments and longer projects, and three exams (two midterms and a final). Evaluation will be as follows:
Regular class participation will contribute positively towards your grade, particularly in borderline cases.
Most labs and projects are not designed to be completed during scheduled lab meetings and will require significant work outside of class to complete. Labs are to be submitted using the CodeRunner system and are due at 10 PM the night before the next lab meeting.
Late Policy: As concepts covered in the course are highly cumulative, it is crucial that you do not fall behind on assignments. In general, late submissions are not accepted unless an extension is granted by the instructor well in advance of the due date (not the night of the deadline!). Plan ahead and don't wait until the last minute to start working!
We will use Piazza to facilitate discussion outside of class. In general, you should prefer posting to Piazza over sending me email, as it will allow your classmates to both see and answer your questions (though you can also post privately such that only instructors can see your question).
Here is the CS 1101 Piazza page.
P. Gries, J. Campbell, and J. Montojo. Practical Programming: An Introduction to Computer Science Using Python 3, 2nd edition (2013). Available at Amazon or elsewhere.
The textbook is optional but will roughly follow the schedule of the course.
All classes (lab or otherwise) meet in Searles 128.
Class Times:
Tuesday 11:30 AM - 12:55 PM
Thursday 11:30 AM - 2:25 PM (double block)
Lab will be normally held during the second half of Thursday class.
December 18, 9:00 AM - 12:00 PM, Searles 128
Computers will be extensively used for in-class exercises, labs, and exams. Use of personal laptops is permitted for these or other class-related purposes. Cell phones should be silenced and put away during class to avoid disruptions.
No electronic devices, including computers, phones, or calculators, are permitted during exams unless specifically indicated by the instructor.
To set up your computing environment for this course, please follow the CSCI 1101 Environment Setup Guide.
Please review the CSCI 1101 Collaboration Policy. You are responsible for understanding and adhering to this policy!