CS105: Introduction to Computer Programming: C++

When: Wednesdays 3:00-4:30pm, January 21st to April 1st
Where: CBA 4.328
Instructor: Nate Kohl
Email: nate@cs.utexas.edu
Office Hours: Mondays and Tuesdays 4:00-5:00pm, in the new ENS Intel lab (located in the basement of the ENS building, right across from the elevators, room 1), or by appointment
Prerequisites: CS307, CS313E, or EE322C with a grade of at least C, or permission of the instructor
Books:
(recommended, not required)
Mailing List: Class Mailing List

Course Announcements

Schedule

This is an ambitious schedule -- we may have to shift some content around as the semester progresses.

Date Book Chapter(s) Material Assignments
1/21 1, 4 Introduction, history of C++, basic syntax
1/28 5, 6 Data types, bit-twiddling, casting Assignment #1: How Big is Big?
2/4 3, 9, 10 Defining types Assignment #2: Defining BigInt
2/11 7, 8 References, const and a few pointers Assignment #3: On Being Correct
2/18 15, 17, 18 Stream I/O Assignment #4: File I/O
2/25 11 Overloading, friends Assignment #5: Hello, operator
3/4 8 Pointers Assignment #6: Adding (and displaying)
3/11 10 Memory management Assignment #7: Memory Management
3/18 Spring Break
3/25 14, 22 Templates and the STL Assignment #8: Super Freqs
4/1 12, 13 Inheritance & Polymorphism

Resources

Course Overview

This purpose of this course is to provide some exposure to the C++ programming language. We'll attempt to cover basic syntax, defining classes, I/O, overloading, pointers, references, and arrays, memory management, templates and the Standard Template Library (STL), inheritance and polymorphism...and anything else that we have time for.

Prerequisites

The course prerequisites are listed above. If you're unsure if you've programmed enough to take this course, talk to me after class or via email.

Grading

The only work that you'll have to do for this course consists of 8 assignments. Each assignment will be worth 1/8th of your grade. There will be no tests or quizzes.

You should work on the assignments by yourself, i.e. no pair programming.

Your assignments will be evaluated on correctness, clarity, and style.

Late Work Policy

Assignments are typically due on Tuesday nights before class at 11:59pm. If you miss this midnight deadline, but can still get something turned in before class at 3:00pm the next day (Wednesday), you can get half credit. Anything turned in after 3:00pm on Wednesday will receive no credit.

Cheating

Don't copy code. It's okay to talk about coding and the concepts involving coding, but don't blindly use someone else's code.

It's impossible to completely define what constitutes cheating, so let's just say that if you wouldn't feel comfortable telling me what you're doing, don't do it.

Think about it -- it's a 1-credit class. Any cheating that I catch I have to report to the university. It's totally not worth it for a tiny little class like this. If you find yourself in a bind, email me and we'll work something out.

Acknowledgements

Parts of this course were adapted from or inspired by the CS105 courses of Kurt Dresner, Maria Jump, Shimon Whiteson, and Greg Kuhlmann.