syllabus_effective c

syllabus_effective c - CS 15-123 Effective Programming in C...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
CS 15-123 Effective Programming in C and UNIX Spring 2010 Course Syllabus Instructor Ananda Gunawardena (guna) Office Location Gates 6005 Phone (412) 268-1559 E-mail guna@cs.cmu.edu Office Hours T,TR 10:30AM-12:00PM Section CA’s Email Office Hrs A TBD B Joe Burgess joemburgess@gmail.com E Meng Hu mengh@andrew F Leo Lung ylung@andrew G Alex Reece areece@andrew Course Description: 15-123 Effective Programming in C and UNIX All Semesters: 9 units This course is designed to provide a substantial exposure to the C programming language and the Unix programming environment for students with some prior programming experience but minimal exposure to C. Features of the C language that are emphasized include arrays, structs and unions, dynamic memory allocation (malloc and free), pointers, pointer arithmetic, and casting. Data structures that are emphasized include dynamic lists and hash tables. Students will develop a sense of proper programming style in the C idiom, and will be exposed to cross-platform portability issues. Students will learn to use tools such as emacs/vi, make, and gdb to assist them in the design, testing and debugging of their programs. Students will also learn about regular expressions and will be able to use scripting languages such as Perl and Shell scripting to solve simple problems. This course serves as the prerequisite for 15-213. Prerequisites: 15-100 Course Objectives: This primary objective of this course is to prepare students on how to use C, Unix, scripting tools to manage development projects. The course also emphasizes the preparation for 15-213, Systems Programming course, which in turn prepares them for operating systems and distributed systems and other systems courses. We will use the C language (old fashioned C not C++) to teach the basics of pointers, memory addressing, copying and moving memory, and other fundamental system tasks. We move off the Windows platform to the AFS (Andrew File System) . On AFS we will use the gcc compiler and it's debugger gbd. The use of simple make files will also be emphasized. We assume that you have taken at least one programming course and you are comfortable working with a compiler and also debugging programs. As such the depth and rigor of the course will be more than a typical intro course. You are expected to devote a considerable amount of time to plan, develop, test and debug your code.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Primary Course Text Books: All course textbooks are optional. Lecture notes are available from (1) http://www.cs.cmu.edu/~guna/15-123S10/lectures AND YOU MAY WANT TO CONSIDER PURCHASING THE TEXTBOOK (2) C Programming Language (2nd Edition) by Brian W. Kernighan (Author), Dennis Ritchie (Author) Other Recommended Text Books are: (3) " C for Java Programmers" by Thomasz Muldner " ISBN: 0-201-70279-7 - Addison Wesley Longman 2000 (4) ANSI C on UNIX by Paul Wang http://www.sofpower.com/pub_bk01.html (5) Learning Perl, Fourth Edition by Randal L. Schwartz , Tom Phoenix , brian d foy Fourth Edition July 2005
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 08/26/2010 for the course CS 15121 taught by Professor Scott during the Spring '10 term at Carnegie Mellon.

Page1 / 6

syllabus_effective c - CS 15-123 Effective Programming in C...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online