Vous êtes sur la page 1sur 10

Introduction to Systems Programming

234122
http://webcourse.cs.technion.ac.il/234122

Chaim Gotsman Ron Rubinstein


With thanks to Omer Strulovich

Course Objectives
Learn to develop large-scale software (not programs).
Learn about object-oriented programming. Meet C++. Extend knowledge of C. Learn to work in Unix environment.

What This Course Is Not

Just a C/C++ language course. A data structures course. A programming tricks / hacks course.

General Info
14 lectures, 14 tutorials Grading policy
30% - HW assignments 70% - final exam Must get at least 55 in the final exam

HW assignments
4 HW assignments, all are mandatory No postponements No code-sharing with students, other than your partner.

Exams
Moed A: Jul 22, 2011. Moed B: Oct 3, 2011.

Program
Typically 10-1,000 lines.

Software
Typically at least 10,000 lines.

Consequences
Developed by an individual. Used by programmer. Developed by a team. Used by customer.

Might run first time.


Can be coded immediately. Might have flaws Requires debugging. Easy !! Example: A sorting program.

Never runs first time.


Requires analysis/design. Must be robust.

Requires long-term maintenance.


Difficult !! Example: An accounting system.

Why OOP ?
An intuitive concept. Enables modularity and information hiding. Makes maintenance easier.

Why C / C++ ?
De-facto industrial standard. Mother tongue of Unix systems. Structured language. C++ is object-oriented syntactic extension of C.

Why Unix/Linux ?
Multi-user/multi-tasking operating system. De-facto standard across multiple platforms. Powerful procedural user-interface. Stable.
The Unix System

Why Unix/Linux (Cont.)


Can run on a variety of hardware. Good programming tools (e.g. text manipulation programs). The open systems philosophy

Bibliography
C:
The C Programming Language (2nd Edition, ANSI-C) B. Kernighan and D. Ritchie, Prentice-Hall, 1988 A Book on C: Programming in C (4th Edition) A. Kelley and I. Pohl, Addison-Wesley Professional, 1998

C++:

The C++ Programming Language (3rd Edition) B. Stroustrup, Addison-Wesley Longman, 1997
C++ Primer (4th Edition) S. Lippman, J. Lajoie, B. Moo, Addison-Wesley Professional, 2005 Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) S. Meyers, Addison-Wesley Professional, 2005

Unix:

Unix in a Nutshell (4th Edition) A. Robbins, O'Reilly Media, Inc, 2005

Vous aimerez peut-être aussi