CIS 122
Alg. & Pgmg

Spring 2008

Instructor:

Gary Bricher


Home

Syllabus

Schedule

Assignments

Announce

Links

Notes


 

General Info

  • CIS 122 Algorithms and Programming, Spring 2008
      MonWed 2:00pm-3:20pm, 142 Straub
      Prerequisites: CIS 110 or equivalent and MATH 111
      Credits: 4
      CRN: 31371

 

 

  • GTFs:

       Brad Pitcher
       Office: 224 Deschutes
       Tue & Thu & Fri 11:00am-noon, or by appointment
       Phone: 346-3935
       brad@cs.uoregon.edu

 

       Han Qin
       Office: 227 Deschutes
       Office hours: Wed 10:00am-noon and Thu 2:00-3:00pm,

          or by appointment
       Phone: 541-346-1380
       qinhan@cs.uoregon.edu

Course Description

This course is a hands-on introduction to the principles of algorithmic problem-solving.  The course is intended for students with no prior programming experience in any language.  Students will learn how to solve problems by writing algorithms and programs in an object-oriented language (C++) in an integrated development environment (IDE).   CIS 122 is a second course in Information Technolgy and builds on the core IT concepts presented in CIS 110.  Prereq: CIS 110 or equivalent (see below), and MATH 111.  Requires computer-laboratory work in addition to regularly scheduled hours.

Textbook

Introduction to C++ Programming, Brief Version, Y. Daniel Liang, Pearson Prentice Hall, 2007, ISBN 0-13-232049-5.

Software

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

This software is not available for OS X. Technically sophisticated OS X users have the option of using 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.

Also, you are asked to archive all your projects on uoregon.edu using SSH, a remote login/SFTP client.  If you are working at home pick up the Duckware CD at Micro Services, 151 McKenzie and install the network applicatons including SSH.

Online Materials

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

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

 

Course Objectives

Upon completion of this course, a student will:

  • Understand the development and philosophy of the C++ language
  • Design and develop programs in the C++ language using procedural programming techniques
  • Understand the use of C++ as an object-oriented programming language
  • Create, test, and debug C++ programs using an integrated development environment
  • Understand the Unix file system on the remote server uoregon.edu, and know how to use an SFTP client to archive C++ programs on uoregon.edu

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.
  • Students may use the Klamath or McKenzie labs to do their assignments.  These labs have the software you need.

Grading Policy

Grading will be based on projects, a midterm exam, and a final exam.  The final 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).  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 arragements have been made in advance.  Legitimate reasons include illness or major family problems, in which case contact the instructor or GTF 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 must 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 must 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 Equivalency for CIS 122

 

You have satisfied the 110 pre-req if you have taken a course (or courses) in which you studied the following topics and skills covered in CIS 110:

  1. You know how to use SSH Secure Shell for Windows to transfer files between your local computer and uoregon.edu. With SSH, you can upload and download files by using an intuitive, graphical user interface similar in functionality to Windows Explorer.

    SSH is available on all campus computers and may be installed on your Windows PC using the Duckware CD.

    For OS X, Fugu is an open source SFTP (SSH Secure File Transfer) client. Fugu features secure drag-and-drop file transfers with OS X user interface. Fugu is also on the DuckWare CD.
  2. You know basic Information Technology (IT) concepts: hardware, software, data representation, networks and protocols (SFTP, HTTP).