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
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.
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).
|