0% found this document useful (0 votes)
3 views

Lecture 1

The document outlines the syllabus for the Advanced Programming Concepts course (CIS 15) taught by Chipp Jansen in Spring 2007, detailing course objectives, materials, grading policies, and office hours. Key topics include Unix fundamentals, C++ programming, software engineering concepts, and data structures, with a focus on hands-on homework and exams. The instructor emphasizes academic integrity and encourages student feedback throughout the course.

Uploaded by

sadwumble
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Lecture 1

The document outlines the syllabus for the Advanced Programming Concepts course (CIS 15) taught by Chipp Jansen in Spring 2007, detailing course objectives, materials, grading policies, and office hours. Key topics include Unix fundamentals, C++ programming, software engineering concepts, and data structures, with a focus on hands-on homework and exams. The instructor emphasizes academic integrity and encourages student feedback throughout the course.

Uploaded by

sadwumble
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Advanced Programming

Concepts
CIS 15 : Spring 2007
Mondays and Thursdays 12:15 pm to 1:30 pm
232 Ingersoll Extension

• Instructor: Chipp Jansen (not Tennenbaum as listed)


• E-mail: [email protected]
• Office: 4412 Ingersoll (Educational Robotics Lab)
• Office Hours: Mondays AND Thursdays 2:00 pm to 3:00 pm
• Virtual Office: AIM username : chippbot
• Virtual Office Hours: Tuesdays 9 pm to 11 pm
Objectives
This course builds upon basic programming concepts to provide a solid
programming framework for the student to proceed to Data Structures,
Advanced Algorithms, Topical Computer Science Courses, and to be able
to 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 programming
concepts

• 6 Homework Exercises / Quizzes (30%)

• 2 Midterms (40%)

• 1 Final (30%)
Materials and Resources
( your dependency should be in this order )

1. lectures

2. required text:

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. 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 Hours

• Virtual Office Hours

• Tuesday evenings 9pm to 11pm

• AIM: 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 Quizzes
There may be 1-2 quizzes during the semester. They will
contribute to your Homework Grade.
Exceptions
• Exceptions and extensions are possible, primarily based on MEDICAL
EMERGENCIES.
• Circumstances must be documented and suitable arrangements will be
made.
• You must consult me via email on an individual basis.
• You must consult me BEFORE you need the exception/extension, not
afterwards.
Regrade Policy
• If you feel that there was an error in grading your homework, project
or exam, then you need to write on a piece of paper a description of the
error.

• STAPLE the paper to your homework, project or exam and leave it


with me to be regraded.

• Know that I mark with a list of expectations for each homework


assignment, project and exam problem, knowing where to take off points
— so if your complaint is that too many points were taken off for one
kind of mistake or another in your program, then generally those types
of things will not change in a regrade.

(Do Not Submit Every Homework for a regrade!)


Regrade Evaluation
Policy
If there is a genuine error in the marking, like I thought
something was missing, but it is really there, then you will likely
get points restored.
• HOWEVER, a regrade means that the entire assignment or
exam will be remarked, so be aware that your mark can go
DOWN as well as up.
• Regrades take a while to process, so be patient — if you need
the work to study from, then make a copy of it before you turn it
in for a regrade.
Back It Up
You 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 storage
known to mankind.
So, you’ll know that problems resulting from ignoring the
above are not acceptable excuses for late submission of
projects or homework.
Lectures
Brief lecture notes will be placed on the web page after every
lecture.
• These will be linked to the syllabus page.
• But they are NOT A SUBSTITUTE FOR COMING TO
CLASS.
• I know, I used to skip classes too.
• If you must miss a class, YOU are responsible for getting
notes from someone who did come to class.
• I will be taking attendance, and while not part of your
cumulative grade, I may consult attendance for borderline cases.
Lecture Notes
I 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 MIGHT
be on an exam or in a homework, so you need to take notes on what I
say
– sometimes there are mistakes in the lecture notes which get caught
during class; so you will only get the incorrect version if you come to
class and take notes.
Exams
Exams 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 8th

MID-TERM 2: IN-CLASS Monday, April 16th

FINAL is set for Monday, May 21th 10:30 am to 12:30 am


Academic Integrity
The 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 you


are 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? • Advanced
Programming
• BASIC Concepts are
universally applicable
• C
• Particulars about
• C++ Memory Management
are important when
• C# moving to higher-level
languages and scripting
• PASCAL languages (Perl,
Python)
• Java
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 Line

• By Neil Stephenson (amusing author)

• Two Sections:

• “The Hole Hawg of Operating Systems”

• “The Oral Tradition”


http://www.spack.org/wiki/InTheBeginningWasTheCommandLine
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 Institute

• Research / 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 You
Please 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.

You might also like