General Info
- CIS 122 Intro to Programming and Algorithms, Spring
2009
MonWed 2:00pm-3:20pm, 125 McKenzie
Prerequisites: CIS 110 or equivalent and MATH 111
Credits: 4
CRN: 31719
Han Qin
Office:
227 Deschutes
Office
hours: Mon 10:00am-Noon and
Wed 10:00am-11:00am, or by appointment
Phone:
541-346-1381
qinhan@cs.uoregon.edu
Suzanne Millstein
Office:
241 Deschutes
Office
Hours: Tue 10:00am-Noon, or by appointment
Phone:
541-346-1398
smillst@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 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.
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/09S/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:
|
15%
|
Midterm Exam:
|
25%
|
Final Exam:
|
25%
|
Participation:
|
5%
|
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).
Participation includes such things as attendance and interaction in
class in the lecture section.
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 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.
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:
- 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.
- You know basic Information Technology (IT) concepts:
hardware, software, data representation, networks and protocols (SFTP,
HTTP).
|