Advanced Programming Concepts. CIS 15 : Spring 2007

Similar documents
Compilers. Computer Science 431

(0) introduction to the course. how to learn a programming language. (0) course structure

CS 375 UNIX System Programming Spring 2014 Syllabus

Introduction to Computer Systems

CS 241 Data Organization using C

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

CS240: Programming in C

Introduction to Computing using C++ Biomedical applications WELCOME TO CIS 1.5. Introduction to the course. Course structure

VIS II: Design Communication Graphic Design Basics, Photoshop and InDesign Spring 2018

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18

Object-Oriented Programming CSCI-UA

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

CS503 Advanced Programming I CS305 Computer Algorithms I

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Computer Science 1321 Course Syllabus

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Introduction to Data Structures

CS 241 Data Organization. August 21, 2018

CIS* Programming

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Memory Organization Intro to Pointers. CIS 15 : Spring 2007

CMSC 132: Object-Oriented Programming II. Administrivia

CMSC433 - Programming Language Technologies and Paradigms. Introduction

Web Programming Fall 2011

CMPE 152 Compiler Design

Econometrics Economics 345

Announcements. 1. Forms to return today after class:

INFS 2150 (Section A) Fall 2018

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

CPS352 Database Systems Syllabus Fall 2012

Advanced Relational Database Management MISM Course S A3 Spring 2019 Carnegie Mellon University

ECE Object-Oriented Programming using C++ and Java

Course Administration

INF 315E Introduction to Databases School of Information Fall 2015

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

CMPE 152 Compiler Design

CMPE 180A Data Structures and Algorithms in C++

CIT110 A+ Hardware Spring 2015

CSCE 206: Structured Programming in C

You must pass the final exam to pass the course.

Database Management System Implementation. Who am I? Who is the teaching assistant? TR, 10:00am-11:20am NTRP B 140 Instructor: Dr.

CSc 2310 Principles of Programming (Java) Jyoti Islam

TTh 9.25 AM AM Strain 322

CS 0449 Intro to Systems Software Fall Term: 2181

CIS 101 Orientation Document Fall 2017

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

Welcome to CS 241 Systems Programming at Illinois

CISC 3130 Data Structures Spring 2018

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design

Introduction to Web Design & Computer Principles

CMSC Introduction to Database Systems

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

manaba+r Report Examination Manual [For Students]

CS 471 Networking and Distributed Operating Systems

COSC 115A: Introduction to Web Authoring Fall 2014

Credit: The lecture slides are created based on previous lecture slides by Dan Zingaro.

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

Course and Unix Intro

EECE.2160: ECE Application Programming Spring 2019

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

Database Management Systems CS Spring 2017

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

CPSC 2380 Data Structures and Algorithms

Introduction to UNIX

CS 470G Introduction to Operating Systems

Instructor: Anna Miller

Object-Oriented Programming for Managers

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

CIS Computer Concepts & Programming

CMPE 152 Compiler Design

Database Systems (INFR10070) Dr Paolo Guagliardo. University of Edinburgh. Fall 2016

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

Internet Web Technologies ITP 104 (2 Units)

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

Section 1 (10724): Tuesday & Thursday, 2:00pm- 3:15pm, Harrison Hall, Lab 0101

ISM 324: Information Systems Security Spring 2014

Computer Science Technology Department

CONTENTS... 1 OVERVIEW OF SIMNET...

CIS*1500 Introduction to Programming

Advanced Relational Database Management MISM Course F A Fall 2017 Carnegie Mellon University

San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

ITE 205 Software Design and Programming I

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

PC Applications IT102 estart Fall 2014

Announcements. Course syllabus Tutorial/lab signup form (due 4pm today) Lecture 1 notes Homework 1 Initial assessment

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

Welcome to Solving Problems with Computers I

CS157a Fall 2018 Sec3 Home Page/Syllabus

TEACHING & ASSESSMENT PLAN

CS 3110 Lecture 1 Course Overview

Title of Resource Introduction to SPSS 22.0: Assignment and Grading Rubric Kimberly A. Barchard. Author(s)

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, PILANI PILANI CAMPUS Instruction Division

ISATI 231: Windows Client (4 credits) Spring 2018 Mon, Tue, Wed, Thu, 13:10-14:40, MTB 105

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

Course and Contact Information. Course Description. Course Objectives

Transcription:

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: chipp@sci.brooklyn.cuny.edu Office: 4412 Ingersoll (Educational Robotics Lab) Virtual Office: AIM username : chippbot Virtual Office Hours: Tuesdays 9 pm to 11 pm Office Hours: Mondays AND Thursdays 2:00 pm to 3:00 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: OR Just Enough UNIX by Paul Anderson, published by: McGraw Hill (5th Edition) 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.

You all know that: Back It Up 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? BASIC C C++ C# PASCAL Java Advanced Programming Concepts are universally applicable Particulars about Memory Management are important when moving to higher-level languages and scripting languages (Perl, Python)

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.