syllabus_effectivec - 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 Office Hours T,TR 10:30AM-12:00PM Section CA’s ATBD B Joe Burgess EMeng Hu FLeo Lung G Alex Reece Email Office Hrs mengh@andrew ylung@andrew 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 data structures like linked lists, sparse matrices, stacks, queues, heaps, trees and graphs and sorting techniques, 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 for the first half of the course and data structures and algorithms in C for second half of the course . 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) AND YOU MAY WANT TO CONSIDER PURCHASING THE TEXTBOOKS (2) C Programming Language (2nd Edition) by Brian W. Kernighan (Author), Dennis Ritchie (Author) (3) Java Software Structures: Designing and Using Data Structures , by Lewis and Chase. Other Recommended Text Books are:
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.

Page1 / 6

syllabus_effectivec - 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