330 likes | 550 Views
CS 2130. Lecture 1 Course Introduction. Agenda. Course Mechanics Prerequisites Instructors Textbooks Course Components Assignments Policies Evaluation Course Overview Syllabus Languages & Translation Programming Environment Friendly/Fatherly Advice. Course Mechanics.
E N D
CS 2130 Lecture 1 Course Introduction
Agenda • Course Mechanics • Prerequisites • Instructors • Textbooks • Course Components • Assignments • Policies • Evaluation • Course Overview • Syllabus • Languages & Translation • Programming Environment • Friendly/Fatherly Advice
Prerequisites • CS 1501/1311/1321 Introduction to Computing • Pseudocode • Scheme • Intro to OO • Equivalent • CS 1502/1312/1322 Introduction to Object Oriented Programming • Java • Intro to C
Instructors • Bill Leahy • Email: bleahy@cc.gatech.edu (Don't duplicate) • Office Hours: Tuesday/Thursday 4:30 - 6:00 and by appointment • Jim Greenlee • Email: jkg@cc.gatech.edu • Office Hours: Tuesday/Thursday 9:30 - 11:00 and by appointment
Textbooks • Languages and Translation • Pearson Custom Publishing Available from Engineer’s Bookstore • Notes taken from • Efficient C Programming • Mark Allen Weiss • Advanced Unix Programming • Warren Gay Note: There are two indexes
Textbooks • Compiler Construction Principles and Practice by Kenneth C. Louden • PWS Publishing Company, 1997 (now a part of Brooks/Cole) ISBN 0-534-93972-4 If this is not available don’t worry. We won’t use it for a while.
Optional Book • lex & yacc (2nd Edition) • Levine, et al • O’Reilly & Associates • Probably not worth buying just for this class - borrow it if you can
Course Components • Lecture: Tuesday, Thursday • Jim Greenlee 8:05 - 9:25 • Bill Leahy 12:05 - 1:25 • Theory, big picture • Questions always welcome • Recitation: Per Oscar Schedule • Contact time with TA's • TA's review common mistakes • Ungraded quiz • Lab: Per Oscar Schedule STARTS THIS WEEK!!! • Coding Questions • Hands on Oscar says next weekbut go to a lab this week!!! Preferably your own.
Policies • You are expected to attend lecture, recitation and lab • Students scheduled for lecture have priority for seating • Must attend scheduled recitation and lab unless prior arrangements have been made (see Administrative Information document posted on-line) • Courtesy • No cell phones • No beepers • Be on time • No whispering • No alarms
Resources • Newsgroups git.cc.class.cs2130.announce git.cc.class.cs2130.questions git.cc.class.cs2130.homeworks git.cc.class.cs2130.labs • Useful Documentation Files (On Acme) ~cs2130/pub/docs • Course Management Software (On Acme) workon cs2130 printdoc
Co-Web • http://swiki.cc.gatech.edu:8080/cs2130 • Lots of stuff there from previous semesters • This semester's stuff available "soon“ • Diary: akbar@cc
Evaluation • Homework (Collaboration) 5% • Labs 20% • Project 15% • Tests (2 @ 15%) 30% • Final 30% • Total 100%
Course Overview • C Programming • Language Translators & Interpreters: Introduction • Language Translators & Interpreters: Advanced
SyllabusPreliminary: Subject to Change • C PROGRAMMING: • Expressions and Operators • C Programming Structures • C Preprocessor • Storage Classes • Pointers and Arrays • Stack Frames • Dynamic Allocation • Strings • Structs and Unions • C Data Structures
SyllabusPreliminary: Subject to Change • LANGUAGE TRANSLATORS & INTERPRETERS - INTRODUCTION: • Formal Language Concepts • Regular Expressions • Finite State Automata • Scanner Generators • Top-Down Parsing • Bottom-Up Parsing • Attribute Grammars • Symbol Tables • Parser Generators • Optimization
SyllabusPreliminary: Subject to Change • LANGUAGE TRANSLATORS & INTERPRETERS - ADVANCED TOPICS: • Data Types • Functional Programming • Functional Optimizations • Floating Point Implementation • Heap Implementation • Garbage Collection • Class & Object Implementation
SyllabusPreliminary: Subject to Change • Additional Possibilities • Variable arguments to functions • Adding/subtracting/multiplying/dividing of floats • Implementation of polymorphism and inheritance
Official Syllabus • Will be posted to .announce newsgroup: git.cc.class.cs2130.announce • Also on the Co-Web
Languages & Translation • Learn C Programming Language • Portability • Systems programming capable • Widely used in Ga Tech CoC • Gets close to machine • Translation & Interpretation • Heart of computer science • Key concept • Widely used
Programming Environment All programs written and tested in a "UNIX-like" programming environment • UNIX written "by programmers, for programmers" • Support for C programming • Good software tools • Crash-resistant • 100% DOJ-approved! • UNIX never the subject in anti-trust lawsuit
What flavors of UNIX? • Officially supported platforms (programs will be tested and graded here) • Solaris • Red Hat 7.1 Linux • Available in CoC labs, or install at home
What flavors of UNIX? • Unofficially supported (may be used for some development work, but test it on an "official" platform before turning in!) • Mac OS X • Cygwin on Win 9x/NT/2000 • Install at home
Installing Software • Installing Solaris • Intel version (x86) can be downloaded free http://www.sun.com/software/solaris/binaries/ • Not recommended unless you enjoy pain • Installing Redhat 7.1 • Most accurately duplicates lab environment • Requires separate disk drive or partition (back up your hard disk!) • Free CDs available from Linux Users Group (LUG) http://www.lugatgt.org/ • Or download from Georgia Tech Linux FTP site ftp://ftp-linux.cc.gatech.edu/pub/Linux/index.html
Installing Software (cont) • Installing Mac OS X • Easiest to install for Mac users (uses existing disk partition) • Greenlee likes it (good for brownie points) • If you are a Mac user, you will have to get it eventually anyway, so why not start now? • Disadvantage: only one that's not free :-( • Installing Cygwin • Easiest to install for Windows users (uses existing disk partition) • Two versions: Command Line http://sources.redhat.com/cygwin/ X Windows http://sources.redhat.com/cygwin/xfree • Disadvantage: Greenlee will make fun of you for using Windows
Why Linux and Solaris • Installing and running Linux (i.e being the system administrator) is a very valuable experience • Solaris will find errors that Linux will not find • Good practice for real world
Requirements for Assignments • All programming assignments must • compile cleanly (i.e. no warnings or errors) with gcc -Wall -O2 -ansi -pedantic • lint cleanly where appropriate (Solaris) • exit gracefully • produce useful output where applicable • Capital crimes (== automatic 0) • non-compiling or non-linting programs • core dumps (or any ungraceful exit) • infinite loops • excessive spurious output • More details in Administrative Information document
Course Philosophy • Self-reliance • CS 1/CS2 offer certain amount of hand-holding • This is the first "real" CS/CmpE Course • Preparation for real world • Figure it out!
Chain of Command • Textbook • Online Manuals (RTFMP) • Web Search Engine • Newsgroups • TA • Jim Greenlee • Textbook • Online Manuals (RTFMP) • Web Search Engine • Newsgroups • TA • Bill Leahy
Keys to Success • Do all assigned work • Slackware is just a catchy name • Start early • Use the resources • Remember: This is Computer Science not Rocket Science • Debugging is 90% psychological
Origins • War and Ballistics • Stored Program Computer • Mechanizing Program Translation
PDP - 11 LDA EXM CONT HLT STRT DEP ENB