Advanced Programming Concepts - City University Of New York

Transcription

Advanced ProgrammingConceptsCIS 15 : Spring 2007

Mondays and Thursdays 12:15 pm to 1:30 pm232 Ingersoll Extension Instructor: Chipp Jansen (not Tennenbaum as listed)E-mail: chipp@sci.brooklyn.cuny.eduOffice: 4412 Ingersoll (Educational Robotics Lab)Office Hours: Mondays AND Thursdays 2:00 pm to 3:00 pmVirtual Office: AIM username : chippbotVirtual Office Hours: Tuesdays 9 pm to 11 pm

ObjectivesThis course builds upon basic programming concepts to provide a solidprogramming framework for the student to proceed to Data Structures,Advanced Algorithms, Topical Computer Science Courses, and to be ableto apply the concepts across language boundaries. Unix Environment (fundamentals and scripting) Review of C pointers, structures, arrays and string operations Software Engineering Concepts: coding style, programming process, modularity C/C Preprocessor – macros, header files, conditional compilation I/O, working with files/streams, piping Recursion and QuickSort Pointers, Memory, Dynamic Storage Allocation, Strings Introduction to Classes and Objects Introduction to Data Structure: Stacks / Linked Lists Advanced Topics (if time): Network Programming, System Programming (fork())

Your Contribution Homework will be applied exercises of the courses programmingconcepts 6 Homework Exercises / Quizzes (30%) 2 Midterms (40%) 1 Final (30%)

Materials and Resources( your dependency should be in this order )1. lectures2. required text:Starting out with C : From Control Structrures through Objects by TonyGaddis, published by: Addison-Wesley (5th Edition)3. recommended texts on UNIX:Just Enough UNIX by Paul Anderson, published by: McGraw Hill (5thEdition)ORUnix in a Nutshell by Arnold Robbins, published by: O’Reilly (4th Edition)3. lecture notes /and/ handouts4. Web: http://www.sci.brooklyn.cuny.edu/ chipp/cis15/

Office Hours Generous Office Hours (4412 Ingersoll) Mondays and Thursdays (2 pm - 3pm)Questions After class can segue into Office HoursVirtual Office Hours Tuesday evenings 9pm to 11pmAIM: chippbot

Homeworks 6 Homework Assignments Comprised mostly of programming exercises. Develope your solutions in the UNIX.(All Homeworks will be graded on a UNIX machine) Homework submission will be discussed in class. Late homework will not be graded.and QuizzesThere may be 1-2 quizzes during the semester. They willcontribute to your Homework Grade.

Exceptions Exceptions and extensions are possible, primarily based on MEDICALEMERGENCIES. Circumstances must be documented and suitable arrangements will bemade. You must consult me via email on an individual basis. You must consult me BEFORE you need the exception/extension, notafterwards.

Regrade Policy If you feel that there was an error in grading your homework, projector exam, then you need to write on a piece of paper a description of theerror. STAPLE the paper to your homework, project or exam and leave itwith me to be regraded. Know that I mark with a list of expectations for each homeworkassignment, project and exam problem, knowing where to take off points— so if your complaint is that too many points were taken off for onekind of mistake or another in your program, then generally those typesof things will not change in a regrade.(Do Not Submit Every Homework for a regrade!)

Regrade EvaluationPolicyIf there is a genuine error in the marking, like I thoughtsomething was missing, but it is really there, then you will likelyget points restored. HOWEVER, a regrade means that the entire assignment orexam will be remarked, so be aware that your mark can goDOWN as well as up. Regrades take a while to process, so be patient — if you needthe work to study from, then make a copy of it before you turn itin for a regrade.

Back It UpYou all know that: You should save early and save often! Disk drives crash. (MINE DID!) Floppies have bad sectors. Power supplies fail. Monitors die, and Paper print-outs are the best form of backup storageknown to mankind.So, you’ll know that problems resulting from ignoring theabove are not acceptable excuses for late submission ofprojects or homework.

LecturesBrief lecture notes will be placed on the web page after everylecture. These will be linked to the syllabus page. But they are NOT A SUBSTITUTE FOR COMING TOCLASS. I know, I used to skip classes too. If you must miss a class, YOU are responsible for gettingnotes from someone who did come to class. I will be taking attendance, and while not part of yourcumulative grade, I may consult attendance for borderline cases.

Lecture NotesI will try to post lecture notes on the web before class BUT:– you learn better when you actually have to write things down yourself.– just reading along with my notes makes you sleepy.– everything I say is NOT in the lecture notes, but anything I say MIGHTbe on an exam or in a homework, so you need to take notes on what Isay– sometimes there are mistakes in the lecture notes which get caughtduring class; so you will only get the incorrect version if you come toclass and take notes.

ExamsExams are not a great way of assessing what people know (especially with programming), but they: Are the only way I know you are doing your own work. Are the only way YOU know you are doing your own work. Are not hard if you really know the material. Exam weighting scheme:1. 2 MID-TERMs: 20% each (NOT cumulative)2. FINAL exam: 30% (cumulative)MID-TERM 1: IN-CLASS Thursday, March 8thMID-TERM 2: IN-CLASS Monday, April 16thFINAL is set for Monday, May 21th 10:30 am to 12:30 am

Academic IntegrityThe work you submit for assessment should be completed ON YOUR OWN. Discussion of course concepts with your friend and with me is ok. But when you sit down to program, all of your work must be your own! You must not download material from the web and submit it as your own work. You must not copy files (work) from others and submit it as your own work. If someone asks you to do this, “NO”! Google will catch you!

Feedback Homework and exams let me know how you are doing. In a way, they let me know how I am doing, as a reflection of how youare doing. But, I welcome feedback from you in any of these forms:– email,– anonymous written notes,– instant messages,– comments during office hours.

Programming Language Which language? AdvancedProgrammingConcepts areuniversally applicable Particulars aboutMemory Managementare important whenmoving to higher-levellanguages and scriptinglanguages (Perl,Python)BASICCC C#PASCALJava

Characteristics of C C has: low-level capabilities (like C) standardization (ANSI-ISO1998) libraries (Standard Template Library) portability (device independent) classes (object-oriented qualities)

C Applications According to Bjarne Stroustrup (C inventor)(http://www.research.att.com/ bs/applications.html) Adobe Products (Photoshop, Illustrator) Mozilla Firefox Surge Barrier Control for the Netherlands

UNIX UNIX is an OS Utilizes a Command Line Interface Multi-User / Time Sharing System Remote Access as well as Console Access

Reading for Thursday In the Beginning Was The Command LineBy Neil Stephenson (amusing author)Two Sections: “The Hole Hawg of Operating Systems”“The Oral ngWasTheCommandLine

Thursday WEB Building Thursdays Class Will Meet in the UNIX Lab at the WEB Building(make sure your UNIX account works for the Lab you show up) WEB Building (No 8):

Need a C Refresher? Starting out with C Chapter 2 (Introduction to C )Chapter 3.1 to 3.9 (Expressions and Interactivity)Chapter 4 (Making Decisions)Chapter 5 (Looping)Chapter 6 (Functions)Chapter 7.1 to 7.7 (Arrays)

About Me Undergrad and Graduate Studies at University of Michigan in:Electrical Engineering, Computer Science, and Fine Arts Previously Taught at University of Michigan and at Pratt InstituteResearch / Teaching Interests:- Intersections of Computers in Art, Design, and Architecture- Educational Robotics (LEGO Robots)- Physical Computing and Design- GeoComputation: Spatial Uses of AI (in Geography)

About YouPlease take out a piece of paper and write down.1.Your name.2.Your email address (the one you’ll check most often).3.Your class and major OR if you are a non-matriculating student,categorize yourself.4. Why you are taking this course?5. What you hope to get out of this course?6. What do you want to use programming for?7. Tell me about one fun thing you did over break.and give it to me before you leave.

Starting out with C : From Control Structrures through Objects by Tony Gaddis, published by: Addison-Wesley (5th Edition) 3. recommended texts on UNIX: Just Enough UNIX by Paul Anderson, published by: McGraw Hill (5th Edition) OR Unix in a Nutshell by Arnold Robbins, published by: O'Reilly (4th Edition) 3. lecture notes /and/ handouts 4.