CIS 122
Alg. & Pgmg

Spring 2010

Instructor:

Gary Bricher


Home

http://www.cs.uoregon.edu/classes/04S/cit281/gif/pointer.gifSyllabus

Schedule

Assignments

Announce

Links

Notes


http://www.cs.uoregon.edu/classes/04S/cit281/gif/UOseal112x112.gif

 

General Info

  • CIS 122 Intro to Programming and Algorithms, Spring 2010
      MonWed 2:00pm-3:20pm, 208 Deady
      Prerequisites: MATH 111

  Recommended: CIS 110 or equivalent
  Credits: 4
  CRN: 31917

 

 

  • GTFs:

            Raihan Masud
            Office: 231 Deschutes
            Office hours: Mon 9:00am-11:00am, or by appointment
            Phone: 541-346-1484
            raihan@cs.uoregon.edu

 

            Alex Leighton
            Office: 237 Deschutes
            Office Hours: Thu 12:00pm-2:00pm, or by appointment
            Phone: 541-346-1386
            aleighto@cs.uoregon.edu

Course Description

This course is a hands-on introduction to the principles of algorithmic problem-solving using a computer programming language.  An algorithm is a step-by-step problem-solving procedure.  A program is a series of instructions that a computer can interpret and execute.  The course is intended for students with no prior programming experience in any language.  Students will learn how to solve problems with the computer by writing programs in an object-oriented language (C++) using an integrated development environment (IDE).  CIS 122 is in the Science Group and meets the math/computing requirement for the Bachelor of Science degree.  Requires computer-laboratory work in addition to regularly scheduled hours.

Course Objectives

The course will:

·       Introduce the art and science of writing computer programs to solve problems

·       Introduce C++ as a procedural and object-oriented programming language

·       Introduce the use of an integrated development environment for creating, testing, and debugging computer programs

·       Prepare students for further studies in Computer Science

·       Give students an appreciation for a programming language as an instrument of human reason, and not merely a medium for controlling a computer. This is an important concept whose value will endure beyond this class.

Textbook

Introduction to Programming with C++, 2ed., Y. Daniel Liang, Prentice Hall, 2010. Custom edition for the UO ISBN 978-0-558-37139-5; Regular edition ISBN 978-0-13-609720-4. Custom edition contains Ch. 1-7, 9-10, and 13-15 of the regular edition.

Software

Our textbook includes a CD containing the IDE Microsoft Visual C++ 2008 Express Edition for Windows PCs. Visual C++ is installed on the computers in the Klamath and McKenzie PC labs, but not elsewhere on campus.  An IDE provides an integrated development environment including an editor, compiler, and debugger.  The same software is available for free download from Microsoft.

This software is not available for Mac OS X. CodeBlocks is an option for these users.  Other options are Aquamacs and Eclipse. Technically sophisticated OS X users may use Apple's Xcode developer tool for C++ development, but details are beyond the scope of this class. An option for Intel Macs is the Parallels desktop, which suppports running Windows and OS X simultaneously. Visual C++ can be installed on an Intel Mac running Parallels, other virtual desktop software, or Apple's own Boot Camp.

You can work on your course projects at home by installing Visual C++ (Windows) or CodeBlocks, Aquamacs, or Eclipse (OS X).

See the document Setting Up your Home Computer for 122.

Online Materials

Class home page: http://www.cs.uoregon.edu/classes/10S/cis122

Blackboard: http://blackboard.uoregon.edu (submit projects here)

Lab Sections

  • Students are registered for one lab section per week.  These meet in 026B Klamath.
  • The lab sections begin the first week of the term.
  • The lab room has the software you need for the course.

Grading Policy

Grading will be based on projects, a midterm exam, and a final exam.  The course grade will be computed using the following weighting scheme.  Plus and minus grades will be used.

Programming Projects:

30%

Final Project:

20%

Midterm Exam:

25%

Final Exam:

25%

The projects are designed to help the student learn the core material of the course as presented in the lectures and text.  Each student must turn in their own solutions (see programming team policy below).  It is recommended that you keep copies of all your projects on uoregon.edu until your final grade is completely resolved. This can make the difference between passing and failing the course.

No late projects will be accepted (see detailed policy below).  Turn in partial work if you are not finished by the due date. 

The midterm exam will cover the first part of the course, and the final exam will cover the last part of the course. 

Dates of the exams are on the class schedule.  No makeup exams will be given unless arrangements are made with the instructor in advance (see detailed policy below).

Missed Exam Policy

If you have a legitimate reason for missing an exam, you must contact your instructor in advance to make arrangements. If it's not possible to contact your instructor in advance, then you must do so as soon as possible. No makeup exam will be scheduled without your instructor's approval.

In fairness to all students in class, you must have a justifiable and verifiable reason for missing the exam.

    Example: Missed exam due to illness. If you think you might miss the exam, telephone or e-mail your instructor in advance. In fairness to the other students in class, you must be able to provide a note from the Student Health Center or other health professional.

   Example: Missed exam due to travel with your sports team. If you're track team is traveling to the Nationals, that's great. Contact your instructor in advance and bring a note from your coach.

Late Project Policy

Projects are due on the assigned due date, and are late thereafter.  Late projects are not graded and receive a grade of zero unless arrangements have been made in advance.  Legitimate reasons include illness or major family problems, in which case contact the instructor as soon as possible before the due date. 

Programming Team Policy

It is ok to discuss course material with other students, but the hands-on work required in the projects is critical for student learning.  You must work alone on the projects or with one partner (in a "programmer team").  Groups of three or more are not an option.

If you work as a team each team member must submit the project separately in Blackboard.  Blackboard uses a content type called "Assignment" to support project submission. The Blackboard Assignment dialog includes a Comments section. In this Comments section, you must state the name of your programming team partner.  Also, each partner should maintain copies of all project files and documents. 

Avoid Plagiarism

 

When you turn in a paper with your name(s) on it, you are stating that it is your work exclusively, so please make sure that it is.

To turn in another's work under your name is plagiarism, and qualifies as academic dishonesty. The results can be quite serious.

No program you turn in should contain sections identical to another student's (or team's) program.

Basing your assignment on work done in a previous term is also prohibited, as is using the work of students not presently enrolled in the course.

    Example: Imagine you are in a philosophy class.  If you submit a paper that contains a paragraph (or paragraphs) written by someone else, that would clearly be plagiarism. The same situation holds in computer science—if you submit a block (or blocks) of code written by someone else, that is plagiarism.

You are responsible for knowing the university’s policy on academic dishonesty.

Double-Check the Files you Submit for Grading

 

When you turn in a multi-file program consisting of a C++ source file, an input file, and an output file you are effectively saying, "When my program executes on this input file, it generates this output file."

If you turn in an output file that could not have been generated by the source file submitted with it, you appear to be falsifying your results (academic dishonesty).

Therefore, double-check all your files for accuracy before submitting them for grading. The output files you submit must be generated by the program you submit.

Things All 122 Students Must Know

  • Projects. If you want to pass the course, you must do the projects. To help resolve any confusion about your grade, you should keep copies of all your projects on uoregon.edu until your final grade is completely resolved.
  • Blackboard gradebook. Please monitor your scores in the gradebook carefully. Maintaining the gradebook is a collaborative effort and you must notify your instructor of any errors in a timely fashion.
  • Office Hours (instructor’s and GTFs’) are an essential part of the course, and you're encouraged to use them for help with the course. Note, however, that it is your job to keep up with class, and that office hours may not be used to fill in what you miss if you skip class frequently.
  • Email. Email works best for short questions.  You must include "CIS122" in the subject line, otherwise it is often difficult to distinguish spam from student e-mails.  For longer questions and debugging assistance, please use the lab sections and/or office hours.
  • Attend class regularly for best results—your active participation is both invited and welcome.

CIS 110 Background for CIS 122

 

Prior to taking CIS 122 it is recommended that you have taken a course (or courses) in which you studied the following topics covered in CIS 110: You know basic Information Technology (IT) concepts: hardware, software, data representation, networks and protocols (SFTP, HTTP).