DOC PREVIEW
Princeton COS 217 - Programming Systems

This preview shows page 1-2-19-20 out of 20 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

COS 217 Introduction to Programming Systems 1 Goals for Today s Class Course overview Introductions Course goals Resources Grading Policies Getting started with C C programming language overview 2 1 Introductions Instructor of Record Jaswinder Pal Singh jps cs princeton edu Preceptors in alphabetical order Robert Dondero Ph D Lead Preceptor rdondero cs princeton edu Christopher Moretti Ph D cmoretti cs princeton edu Vivek Pai Ph D former Instructor of Record vivek cs princeton edu Cole Schlesinger cschlesi princeton edu Richard Wang rwthree princeton edu 3 Course Goal 1 Programming in the Large Learn how to write large programs Specifically help you learn how to Write modular code Hide information Manage resources Handle errors Write portable code Test and debug your code Improve your code s performance and when to do so Use tools to support those activities 4 2 Course Goal 2 Under the Hood Learn what happens under the hood of computer systems Specifically two downward tours C Language Assembly Language Application Program language levels tour Machine Language Operating System service levels tour Hardware Goal 2 supports Goal 1 Reveals many examples of effective abstractions 5 Course Goals Why C Q Why C instead of Java A C supports Goal 1 better C is a lower level language Provides more opportunities to create abstractions C has some flaws The flaws motivate discussions of software engineering principles A C supports Goal 2 better Facilitates language levels tour C is closely related to assembly language Facilitates service levels tour Linux is written in C 6 3 Course Goals Why Linux Q Why Linux instead of Microsoft Windows A Linux is good for education and research Linux is open source and well specified A Linux has good open source programming tools Linux is a variant of Unix Unix has GNU a rich open source programming environment 7 Course Goals Summary Help you to become a Power Programmer 8 4 Resources Lectures and Precepts Lectures Describe concepts at a high level Slides available online at course Web site Precepts Support lectures by describing concepts at a lower level Support your work on assignments Note Precepts begin on Monday 9 Resources Website and Listserv Website Access from http www cs princeton edu Academics Course Schedule COS 217 Listserv cos217 lists cs princeton edu Subscription is required Instructions provided in first precept 10 5 Resources Books Required book C Programming A Modern Approach 2nd Edition King 2008 Covers the C programming language and standard libraries Highly recommended books The Practice of Programming Kernighan and Pike 1999 Covers programming in the large Required for COS 333 Computer Systems A Programmer s Perspective Second Edition Bryant and O Hallaron 2010 Covers under the hood Some key sections are on electronic reserve First edition is sufficient Programming with GNU Software Loukides and Oram 1997 Covers tools All books are on reserve in Engineering Library 11 Resources Manuals Manuals for reference only available online IA32 Intel Architecture Software Developer s Manual Volumes 1 3 Tool Interface Standard Executable and Linking Format Using as the GNU Assembler See also Linux man command man is short for manual For more help type man man 12 6 Resources Programming Environment Option 1 hats princeton edu Friend Center 016 or 017 Computer SSH Linux GNU Your Pgm fez fedora Lab TAs 13 Resources Programming Environment Option 2 hats princeton edu Linux Your PC Mac Linux Computer SSH GNU Your Pgm fez fedora 14 7 Resources Programming Environment Other options Use your own PC Mac Linux computer run GNU tools locally run your programs locally Use your own PC Mac Linux computer run a non GNU development environment locally run your programs locally Etc Notes Other options cannot be used for some assignments esp timing studies Instructors cannot promise support of other options Strong recommendation Use Option 1 or 2 for all assignments First precept provides setup instructions 15 Grading Seven programming assignments 50 Working code Clean readable maintainable code On time penalties for late submission Final assignment counts double 12 5 Exams 40 Midterm 15 Final 25 Class participation 10 Lecture and precept attendance is mandatory Sign up sheets will be used for both Attendance is a key part of class participation 16 8 Programming Assignments Programming assignments 1 2 3 4 5 6 7 A de comment program A string module A symbol table module IA 32 assembly language programs A buffer overrun attack A heap manager module A Unix shell Key part of the course See course Schedule web page for due dates times First assignment is available now Advice Start early to ensure you understand the assignment fully and to allow time for debugging 17 Why Debugging is Necessary 18 9 Policies Study the course Policies web page Especially the assignment collaboration policies Violation involves trial by Committee on Discipline Typical penalty is suspension from University for 1 academic year Some highlights Don t view anyone else s work during before or after the assignment time period Don t allow anyone to view your work during before or after the assignment time period In your assignment readme file acknowledge all resources used Ask your preceptor for clarifications if necessary Study the course Policies web page 19 Course Schedule Very generally Weeks Lectures Precepts 1 2 Intro to C conceptual Intro to Linux GNU Intro to C mechanical 3 6 Pgmming in the Large Advanced C 6 Midterm Exam 7 Recess 8 13 Under the Hood Assembly Language assignments Reading Period Final Exam See course Schedule web page for details 20 10 Any questions before we start 21 C vs Java History We will use 1960 BCPL LISP Not yet popular our compiler supports only partially 1970 1972 1978 1989 1999 B C K R C ANSI C89 ISO C90 ISO ANSI C99 Smalltalk C Java 22 11 C vs Java Design Goals Java design goals Support object oriented programming Allow same program to be executed on multiple operating systems Support using computer networks Execute code from remote sources securely Adopt the good parts of other languages esp C and C Implications Good for application level programming High level Virtual machine insulates programmer from underlying assembly language machine language hardware Portability over efficiency Security over efficiency Security over flexibility 23 C vs Java Design Goals C design goals Support structured programming Support development of the Unix OS and Unix tools As


View Full Document

Princeton COS 217 - Programming Systems

Documents in this Course
Summary

Summary

4 pages

Lecture

Lecture

4 pages

Generics

Generics

14 pages

Generics

Generics

16 pages

Lecture

Lecture

20 pages

Debugging

Debugging

35 pages

Types

Types

7 pages

Lecture

Lecture

21 pages

Assembler

Assembler

16 pages

Lecture

Lecture

20 pages

Lecture

Lecture

39 pages

Testing

Testing

44 pages

Pipeline

Pipeline

19 pages

Lecture

Lecture

6 pages

Signals

Signals

67 pages

Building

Building

17 pages

Lecture

Lecture

7 pages

Modules

Modules

12 pages

Generics

Generics

16 pages

Testing

Testing

22 pages

Signals

Signals

34 pages

Lecture

Lecture

19 pages

Load more
Download Programming Systems
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Programming Systems and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Programming Systems 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?