Overview
Welcome to CS0007, an Introduction to Computer Programming! This course teaches the basics of programming, using Python, which is an industrial-strength programming language used at companies like Google and Industrial Light and Magic.
The course consists of 2.5 lecture hours per week, weekly CodeLab exercises, 50-minute weekly labs, 3 assignments, a project, 3 tests, and a final exam. (Phew!) I am keeping you busy throughout the term because learning to program is like learning to play an instrument; if you want to play well, you need to practice regularly.
All this will give you enough practice so you can learn how to program well. Also, you will be able to work on the assignments, project, and labs with a partner.
Class Times
Lectures | Labs |
---|---|
MW 3:00-4:15pm, SS 5129 | F: 11-11:50am (12198) & 3-3:50pm (13126), SS 5502 |
Contact information
Instructor | Office | Office Hours | |
---|---|---|---|
Prof Jan Wiebe | wiebe [at] cs.pitt.edu | Sennott Square 5409 | T: 3-4pm; TH 2-3pm; or by appt (send email) |
Teaching Assistant | Office | Office Hours | |
---|---|---|---|
Nicholas Farnan | nlf4 [at] cs.pitt.edu | Sennott Square 6503 | M: 1-3; T: 2-4; W 1-3 |
Course Description
This course will cover fundamental concepts in computer programming including control flow, data structures, sorting and searching algorithms, object-oriented programming concepts, accessing databases, graphical user interfaces, and good program design. You will learn how to make computers do what you want them to do. You may be planning to be a linguist, physicist, or nurse rather than a computer scientist, but whatever you do, being able to program is as important as being able to write a letter or do arithmetic. The content will be organized around useful, interesting examples, with the goal of getting you to apply your new programming skills in your own projects. And, maybe some of you will decide you do want to be a computer scientist.Course Rationale
This is a first course in computer science programming. It is recommended both for students intending to major in computer science who do not have the required background for CS 0401, as well as for students majoring in another area. There are no prerequisites for the course.Materials
-
Required:
Practical Programming: An Introduction to Computer Science using
Python. By Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson.
* ISBN-10: 1934356271
* ISBN-13: 978-1934356272
- Required: CodeLab, a set of online exercises from TuringsCraft. (It's $15.00)
Course Requirements
Work | Weight | Comment |
---|---|---|
CodeLab | 5% | All CodeLabs have equal weight |
Labs | 5% | All labs have equal weight |
Assignments (3) | 20% | 6.6% each |
Tests (3) | 20% | 6.6% each |
Project | 10% | A project due at the end of the term |
Final exam | 40% | To get a C or better in the course, you must get 60% or higher on the final exam. |
Webpage and CourseWeb
Course materials will be distributed via the course web page. All aspects of the course that are time dependent will be available on the schedule. This includes lecture topics, lecture notes, readings, assignments, labs, and information about the exams.Grades will be distributed via courseweb. We will also use a forum on courseweb for questions, discussion, and information about assignments, labs, lectures, and the text. Also, you will submit your assignments and project via the dropbox on courseweb.
Lab Sessions
Lab sessions will be held during recitations. You will work in pairs. Together, you'll work through examples and explore concepts in Computer Science. The lab sessions will help you learn the material and will also give you valuable experience explaining things to each other.Variety is the spice of life, so we'll switch up partners periodically.
The labs will be graded S/U (satisfactory/unsatisfactory). You'll earn an S grade for a lab if you attend the session, work with your partner, and complete the lab with reasonable answers. If needed, you can finish the lab after the session. Labs are due at the beginning of your next lab session. Labs after that date/time are not accepted.
Assignments
Assignments will receive numerical grades. Assignments are due at 11pm on the due date. The late penalty is 10% per 24 hours, for up to 72 hours (including weekend days). No assignments will be accepted 72 hours after the due date/time.Assignments may be done with a partner (encouraged), or individually. You may do at most 2 assignments with the same partner.
Assignments will be submitted via the dropbox on courseweb. Instructions will be included on the assignment handouts.
Project
The project is like a large assignment. You will work with a partner or alone. The project is due at 11pm on the due date. The late penalty is the same as for assignments: 10% per 24 hours, for up to 72 hours (including weekend days). No projects will be accepted 72 hours after the due date/time.Exams
The questions on the exams will all be similar to something we covered in lecture, on an assignment, the project, or in a lab. To study, read the text, and then use the lectures, assignments, and labs to focus studying.See "What will be on Exam X" on the schedule to see what will be covered on Exam X.
Exams 1-3 are not cumulative. The final exam is cumulative.
The exams are closed book and notes.
The material gets more complex as the course proceeds, and later exams build on the stuff covered in earlier exams. So, keep up!
CodeLab
CodeLab is a set of online Python exercises delivered and supported by a company called Turing's Craft. They are worth 5% of your course grade, and the first set is due at the beginning of week 2. You must purchase a registration from them; the price is $15.00.
To earn full credit on a CodeLab you must:
- attempt all of the exercises
- get at least 75% of exercises correct (see examples below).
Example 1: If there are 10 exercises, then you must attempt all 10
exercises and get at least 8/10 correct.
Example 2: If there are 3 exercises, then you must attempt all
3 exercises and get all 3/3 correct.
Note: you may complete as many exercises as you want to, for practice and studying for the exam.
Other Policies and Notes
- Mail will be sent to your pitt account. So, if you don't check your pitt account regularly, you should forward mail from your pitt account to the account you do check.
- Make-up exams will be given only in the event of an emergency , which needs to be documented.
- Lectures will be mixtures of powerpoint slides, live programming demos, and work on the board. The powerpoint slides will be available on the webpage. However, the slides will mainly just structure the lecture. Most of the course content will not be on the slides.
- If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 140 William Pitt Union, 412-648-7890 or 412-383-7355 (TTY) as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.
-
Academic Integrity: Students in this course will be expected to comply with the University
of Pittsburgh's Policy on Academic Integrity Any student suspected of
violating this obligation for any reason during the semester will be
required to participate in the procedural process, initiated at the
instructor level, as outlined in the University Guidelines on Academic
Integrity. This may include, but is not limited to, the confiscation
of the examination of any individual suspected of violating University
Policy. Furthermore, no student may bring any unauthorized materials
to an exam, including dictionaries and programmable calculators.
Each set of partners is expected to do their own work on assignments, project, and lab. All exams are to be completed individually. Please don't cheat. It is unpleasant for everyone involved, including us. Here are a couple of general guidelines to help you avoid plagiarism:
- Never look at another student's assignment solution, whether on paper or on the computer screen. This applies to all drafts of solutions and to incomplete solutions.
- The easiest way to avoid plagiarism is to only discuss the piece of work (before you hand it in) with your partner, the TA, the Help Desk, and me.