CIS 330: C/C++ and Unix

Lecture Time: Mon/Weds 10:00-11:20
Lecture Location: 125 McKenzie Hall
Lab Time: Fri 10:00-11:00
Lab Location: 125 McKenzie Hall

Instructor: Hank Childs
Instructor Office Hours: Tuesday 2pm-3pm, Friday 11am-noon
Office Hours Location: 301 Deschutes Hall

Teaching Assistant: Brenton Lessley
Brent's Office Hours: Monday 4pm-5pm, Wednesday 4pm-5pm, Thursday 4pm-5pm
TA OH Location: 100 Deschutes Hall


This is a projects-driven class. The projects will help prepare you for the 400-level classes, and also for professional employment. I ask you put a lot of time into this course, and I believe the payoff will be significant for each of you.

The projects in this class will be hard work. It is difficult to quote exactly how much time, since there is variation in background and programming skill. I expect those who have less developed programming skills will find this class to be a considerable effort, but also that they will have significant improvement by the end of the course.

Course Materials

In previous terms, I have not used a textbook. But this term we will incorporate the textbook by Prof. Sventek: C and Data Structures -- A Well Structured Approach. We will use chapters 2 and 3, which cover Unix and C. The textbook is being provided for free (in electronic form) for students of this course, and has been uploaded to Canvas. Please note the legal statements on the first page of the textbook. In particular, you may not post or reproduce the electronic version.
Quoting from the book:


There will be 4 projects, and each project will contain multiple sub-parts. In total, you will turn in about 18 assignments this quarter.


Note: the projects will be adapted to the pace of the class. As a result, these percentages may be changed slightly. No project will change by more than 5% in total. Further, the Final will stay fixed at 30%. Up to 5% of extra credit is possible for participation in the forum.

Project 1: Learning Unix

Project 2: C/C++ primer

Project 3: Large System + Object Oriented Programming

Project 4: Debugging and Profiling

Academic Misconduct

Form from the first day of class.


I have set up a forum on Piazza. Brent and I will monitor (and respond) to the forum and encourage you all to do the same. I may award extra credit to students who are particularly helpful on the forum. The amount of credit will vary based on involvement, with a maximum of 5%.

Late Policy

You have 2 "late passes." Late passes allow you to turn in your project (specifically a sub-project, i.e., project 1A) two days after the due date for full credit. You may also use two late passes on one assignment and get a four day extension. For example, you submit a project that was due on a Wednesday on Friday (i.e., two days later) and get full credit if you use one late pass.

If you run out of late passes, then you may continue to earn half credit on any project up until we take the Final. Once we get to the Final (Tuesday June 12th, 2018 at 10:15am), I will no longer accept homeworks.

Note that projects will initially be marked as late and scored half credit. At the end of the term, you will tell me which projects you want to apply your late passes to, and the scores for those projects will be increased. There is no need to indicate your desire to use a late pass as you submit; I find it often changes as the term goes on. If you miss the Final exam period, you may take the Final afterwards for half-credit. Exceptions for full credit will be granted in appropriate situations. These situations include medical emergencies, etc, and do not include oversleeping, forgetting the day of the final, etc.


Contact Information

Email: hank at
Phone: (541) 346-3414 (terrible way to get in touch with me!)
Fax: (541) 346-5373

301 Deschutes Hall
1202 University of Oregon
Eugene, OR 97403-1212 USA