Course Overview
Welcome to CS 111, Fundamentals of Programming I! In this course, you'll do more than just computer programming: you'll learn the fundamental problem-solving ideas in computer science. Topics include
- the design and implementation of algorithms for solving problems
- an introduction to syntax, semantics, and pragmatics of the Python programming language, an interpreted language known for its ease of use.
- a survey of various types of programming applications such as numerical computation, text processing, graphics, image processing, and networking
This course is appropriate for all students who want to learn how to write computer programs and think like computer scientists. It is the usual first course for computer science majors and minors. A deeper coverage of these topics will be presented in CS 112.
Course Description
Content
Explain what content will the course address. You may want to include how the course fits in with other courses in the discipline and why the course is valuable to students.
Structure
Classroom work will consist of lecture, discussion, and lab experimentation. Written work will consist of several programming projects and exams.
Objectives
After taking this course, you should know
- Fundamental problem-solving skills
- data structures
- Fundamentals of the syntax and semantics of Python programming language
- Fundamentals of UNIX
Instructional Staff
Sara Sprenkle
Office: Parmly Hall
Office Hours:
E-mail Address:
Phone Number:
TA Contact Information
Course Information
CS 111
Section
Room location
Lecture: MWF 2:30 p.m. -
Lab: R
Instructor Information
Biography
Reveal any information you want students to know about you (e.g., education, interest in the discipline, teaching philosophy).
Other Instructors
Let students know if there are other instructors helping to manage the course (e.g., graduate TAs, peer tutors, team teacher).
Instructional Approach
Given the kind of learning you'd like to encourage/foster, explain what kinds of instructional interactions need to occur.
Consider what kinds of instructional approaches are most conducive to helping students accomplish set learning objectives.
Describe how classroom interactions will be facilitated (e.g., in-class, out-of-class, online, through MyCourses learning management system, electronic discussion, newsgroups, podcasts, clickers, etc.).
Course Requirements
Materials
Required
List what materials are required for success in the course (e.g., calculators, subscriptions, readings, computer software).
Supplemental
List any supplementary materials that students would benefit from.
You may want to provide links to any supplemental resources that can be found on the Internet.
Assignments
Papers
Any assigned papers may be described here.
Presentations
Describe any presentations students have to give.
Other Assignements
Any blogs, special projects, laboratories, field trips, journals, research, web publishing, e-portfolios, etc.
Quizzes & Exams
Format
Describe the format of your quizzes and/or exams here.
Dates & Locations
Describe dates and locations of quizzes and/or exams.
Course Policies & Grading
- A comment at the top of the program that includes
- Program authors
- Date or Dates
- A brief description of what the program does
- Concise comments that summarize major sections of your code
- Meaningful variable and function names
- Well organized code
- White space or comments to improve legibility
- Avoidance of large blocks of copy-pasted code
- Explain how students' work will be graded and evaluated. Let students know how much each assignment will be worth.
- Describe how the final grade will bedetermined. Let students know if you plan to drop their lowest grade or give make-up assignments.
- Explain how the students will be informed about their progress and grades.
- A sample grade equivalents chart is shown below:
Course Policies
Student Responsibilities
Attendance, participation, student responsibility in their learning, contribution to groupwork, missed assignments, late work, checking e-mail/MyCourses, classroom management issues, laboratory safety, cell phone policy, etc.
Instructor Responsibilities
Explain what you will do to help students learn and receive timely feedback on their performance.
Academic Dishonesty
Describe your personal/department/university academic dishonesty policy.
Student Guide to University Policies: Code of Student Conduct
Programming Style
Programming is not a dry mechanical process, but a form of art. Well written code has an aesthetic appeal while poor form can make other programmers and instructors cringe. Programming assignments will be graded based on style and correctness. Good programming practices usually include many of the following principles:
Grading
Grade |
Percentage Required |
---|---|
Calendar
MyCourses also includes a calendar feature. If you are using MyCourses to manage online course content, you may want to look into using the calendar tool.
Date | Topic | Readings | Assignment |
---|---|---|---|
Sept. 3 | Introduction | Ch. 1 & Ch.2 in text | Problems 1,3,5,7,9 |
External Links
Basic Unix CommandsPython Documentation
Textbook site
How To Think Like a Computer Scientist: Learning with Python
If you have suggestions for links, let me know.