CIS 122 Algorithms and Programs in C++
Syllabus 07F

Instructor: Michael Hennessy
michaelh@cs.uoregon.edu, 145 Deschutes Hall, 346-3487.
Office Hours: Click on Staff Information in the Blackboard course menu to see all instructor and gtf office hours.

Course Description

What is the central core of Computing? 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 and programs, therefore, will be our unifying theme in 122, 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 an integrated development environment (IDE). Unix/C++, Visual C++ and CodeWarrior are three examples of IDEs utilized in the course. CIS 122 builds upon the core IT concepts presented in CIS 110.

A Duck ID is a username and password, and you will need your Duck ID in class and lab. If you cannot connect to DuckWeb using your Duck ID, get assistance at MicroHelp 151 Mckenzie.

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, 026 Klamath. You can also work in 013 Kla, 101 Mck, 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:

  1. Understand the development and philosophy of the C++ language
  2. Design and develop programs in the C++ language using procedural programming techniques
  3. Understand the use of C++ as an object-oriented programming language
  4. Create, test, and debug C++ programs using an integrated development environment
  5. 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

Course Text and Software

Liang, Y. Daniel. Introduction to Programming with C++, Brief Version. (Prentice Hall). Write a coded identifier in your textbook, as it is your book's free phone call home when it gets lost.

Software: Our textbook includes a CD containing Visual C++ Express Edition. The same software is available for free download from Microsoft. The same software is installed on the computers in the Klamath pc labs, but not elsewhere on campus.

This software is not available for OS X. Ttechnically 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.

Course Requirements

2 Exams (midterm & final) ..  50%
Programming Projects .......  30%
Final Project ..............  20%
Dates of the exams are on the class schedule; mark them on your calendar and set your alarms-- a missed exam is zero points. Required reading: Policy on Missed Exams.

The formula to compute your final grade for the course:

pct = 100 * (0.5 * YourProjPts/TtlProjPts + 0.5 * YourExamPts/TtlExamPts)

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.


C/C++ Development Environments

The 122 labs meet once a week in the PC-lab, where you will learn how to use our IDE (integrated development environment) to write, test and debug programs. You must have a working Duck ID for both class and lab.

The same development environment can used on your home computer.

You will archive all your 122 projects on uoregon.edu using SSH, a remote login/SFTP client available on the DuckWare CD (pick one up at Micro Services, 151 Mckenzie),


Things All 122 Students Must Know


CIS 110 Equivalency for 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 (from 151 Mck).

  2. You know basic Information Technology (IT) Concepts: hardware, software, data representation, networks and protocols (TCP/IP, HTTP).