CIS 122 Algorithms and Programs in C++
Syllabus
Instructor: Michael Hennessy
michaelh@cs.uoregon.edu,
145 Deschutes Hall, 346-3487.
Instructor and GTF Office Hours.
Course Description
What is the central core of the subject [computer science]? What is it that
distinguishes it from the separate subjects with which it is related? What is
the linking thread which gathers these disparate branches into a single discipline.
My answer to these questions is simple -it is the art of programming a computer.
It is the art of designing efficient and elegant methods of getting a computer
to solve problems, theoretical or practical, small or large, simple or complex.
It is the art of translating this design into an effective and accurate computer
program. - C.A.R. Hoare
Computer Science is no more about computers than astronomy is about telescopes.- E. Dijkstra
|
An algorithm is
a step-by-step problem-solving procedure. A program is
a series of instructions that a computer can
interpret and execute. Computer Science is the
study of algorithms and programs, including principles, practices, and engineering.
Algorithms are, therefore, a unifying theme for Computer Sciene, just as energy
is a unifying theme for the study of Physics.
CIS 122 is a second course in Information Technolgy (IT) and applies the principles
of algorithmic problem-solving. You will learn "How to Solve
it by Computer"
by writing algorithms and programs in an object-oriented language (C++), in
a Unix environment. CIS 122 builds upon the core IT concepts presented in CIS
110.
You will need your username and password for your uoregon.edu account in your week 1 lab.
See MicroHelp (151 McK) for questions about your account.
The course is intended for students with
no prior programming experience in any language. Prerequisites: Mth 111, CIS 110.
For students who did not take CIS 110 at the University of Oregon,
please see CIS 110 Course-Equivalency for CIS 122, below.
122 labs start week 1 and meet in the PC-lab, 101 Mckenzie. You can also work
in 013 Kla, 026 Kla, the ITCs, and any other microlab on campus, as well as
at home (if you have a computer with web access; pick up the Duckware CD at
151 Mck and install the network applications including SSH).
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++ applications on uoregon.edu using the Unix development
environment
Required Text
Cannon, Scott. Understanding Programming: An Introduction Using C++, 2ed. (Brooks/Cole
2001)
The text will arrive at the Bookstore week 4. Until then, we will use online
materials. It's a
good idea to write some coded identifier in your textbooks, as it is their free
telephone call home when they get lost.
C/C++ Development Environments
The 122 labs meet once a week in the PC-lab. There you will
learn how to use the Unix/C++/Emacs environment on uoregon.edu. You must
have an active uoregon.edu account and a
working username and password before you go to your first 122 lab in
week
1. Note that the same development environment can be accessed
from your home computer using modem, DSL, etc., so you can work on your 122
projects from home.
Course Requirements
Programming Projects ... 50%
Quizzes ................ 50%
Note that the quizzes replace both the midterm and the final exam. Dates of quizzes are on the 122 home page; mark them on your calendar and set your alarms-- a missed quiz is zero points.
The formula to compute your final percentage for the course:
pct = 100 * (0.5 * YourProjPts/TtlProjPts + 0.5 * YourQuizPts/TtlQuizPts)
Keep backup 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.
Quiz dates are on the 122 home page.
Please mark your calendar now, as a missed quiz is a zero.
Things You Need to Know
-
122 COURSE POLICIES.
Questions on the exams may be taken from these documents.
- PROJECTS. If you want to pass the course, you must do the
projects. Students who do not do the projects do not pass the
course.
To help resolve any confusion about your grade, you
must keep both the project grade reports and backup copies of the projects
until such time as your final grade is resolved.
- ONLINE GRADEBOOK. Please monitor your scores in the
gradebook. Maintaining the gradebook is a collaborative effort: you have two
weeks from the time a score is first posted in the gradebook to notify your
instructor of any errors.
- OFFICE HOURS. Office hours are an essential part of the course,
and you're encouraged to use them for help with the course, or for
academic advising (CIS, CIT). Note, however, that it is your job to
keep up with class, and that office hours may not be used for skipped
classes. If you have a legitimate reason for missing a class, you are
very welcome to come to office hours to fill in what you missed.
You are not limited to seeing just your GTF; you can see any of us during our office hours and if that does not fit your schedule, just make an appointment to see one of us.
- EMAIL. You are welcome to use email for short questions. Please
include "122" in the subject line. For longer questions
and debugging assistance, please use office hours.
- ANNOUNCEMENTS are sent to you by e-mail. Use DuckWeb to verify your Primary
Email Account is the one you use.
- ATTENDANCE: Attend class regularly for best results; your 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 all of the following topics covered in CIS 110.
- Unix for Web Development: basic Unix commands, as covered in sections 1-6 of this
UNIX Tutorial for Beginners from the University of Surrey, UK. (ls, cd, rm, mv, mkdir, chmod, ...)
- Information Technology (IT) Concepts: hardware, software, data representation, networks and protocols (TCP/IP, HTTP).