21-Jun-15Advanced Programming Spring 2002 Advanced Programming Henning Schulzrinne Dept. of Computer Science Columbia University.

Slides:



Advertisements
Similar presentations
Carnegie Mellon Communications, Organizations & Technology Course Organization Syllabus Prithvi N. Rao H. John Heinz III School of Public Policy.
Advertisements

General information CSE 230 : Introduction to Software Engineering
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
Welcome to CS680! Tue Thu 7pm - 8:15pm :-(
CS 447 Distributed Objects Instructor: Shangping Ren.
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
Databases and Database Management System. 2 Goals comprehensive introduction to –the design of databases –database transaction processing –the use of.
CS 898N Advanced World Wide Web Technologies Lecture 1: Introduction Chin-Chih Chang
Slide 1 Instructor: Dr. Hong Jiang Teaching Assistant: Mr. Sheng Zhang Department of Computer Science & Engineering University of Nebraska-Lincoln Classroom:
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Welcome to EECS 340 Introduction to Computer Networking.
INE2720 Web Application Software Development General Information.
Topic 1: Class Logistics. Outline Class Web site Class policies Overview References Software Background Reading.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Website Development & Management Introduction & Overview CIT Fall Instructor: John Seydel, Ph.D.
CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
MCS 270 Spring 2014 Object-Oriented Software Development.
Software Engineering II (Spring 2008) Instructor: Instructor:Dr. Damla Turgut Office: Office:450 ENGR 1 Bldg Office Phone: Office Phone:(407)
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
Computer Science 2211b Software Tools and Systems Programming.
EECE 310 Software Engineering Lecture 0: Course Orientation.
1 Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
M1G Introduction to Database Development 6. Building Applications.
Course Introduction Software Engineering
Advanced Internet Services Henning Schulzrinne Dept. of Computer Science Columbia University Fall 2003.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
CSC 171 – FALL 2001 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
Course Information Sarah Diesburg Operating Systems COP 4610.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
LINUX System : Lecture 1 Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
1 ISEC0511 Programming for Information System Security Lecture Notes #1 Introduction.
Introduction to Computer Programming (FIT-I pro) J. H. Wang Sep. 17, 2007.
January 16, 2007 COMS 4118 (Operating Systems I) Henning Schulzrinne Dept. of Computer Science Columbia University
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
CSCI 330 UNIX and Network Programming Unit I Introduction.
Department of Computer Science, Florida State University CGS 3066: Web Programming and Design Spring
Summary CGS 3460, Lecture 43 April 26, 2006 Hen-I Yang.
Data Structures and Algorithms in Java AlaaEddin 2012.
系統程式 System Programming 羅習五 國立中正大學資訊工程學系 Class: EA-001 (05) ext.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Advanced Programing practices
CSc 020: Programming Concepts and Methodology II
Advanced Programming Dr. Sadi Seker.
Henning Schulzrinne Dept. of Computer Science Columbia University
Course Information Mark Stanovich Principles of Operating Systems
Department of Computer Science, Florida State University
Andy Wang Operating Systems COP 4610 / CGS 5765
EECE 310 Software Engineering
Programming Languages
CSCD 330 Network Programming Spring
Andy Wang Operating Systems COP 4610 / CGS 5765
CGS 3763 Operating Systems Concepts Spring 2013
Andy Wang Operating Systems COP 4610 / CGS 5765
CSCD 330 Network Programming Spring
Systems Programming Intro
Andy Wang Operating Systems COP 4610 / CGS 5765
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
CS 425 / CS 625 Software Engineering
Andy Wang Operating Systems COP 4610 / CGS 5765
CSCD 330 Network Programming Spring
Course Overview CS 4640 Programming Languages for Web Applications
Programming Languages
Andy Wang Operating Systems COP 4610 / CGS 5765
CSCE156: Introduction to Computer Science II
Course Introduction Data Visualization & Exploration – COMPSCI 590
CS201 – Course Expectations
CSCI 1730: C++ and System Programming
Presentation transcript:

21-Jun-15Advanced Programming Spring 2002 Advanced Programming Henning Schulzrinne Dept. of Computer Science Columbia University

21-Jun-15Advanced Programming Spring Overview  Background  What is Advanced Programming?  Differences to “old” Software Engineering  Who should be here?  Syllabus  Logistics  Grading

21-Jun-15Advanced Programming Spring Background  Experimental course – trial run for replacement for traditional CS 3156 (Software Engineering)  Sequence:  Intro: modules, few dozen lines  DS: few hundred lines, stand-alone  AP: larger programs, different languages and styles  OS, networking, ISP, …: specialized knowledge

21-Jun-15Advanced Programming Spring What is Advanced Programming?  Become comfortable with multiple languages  Multiple programming styles  Professional programming:  program building  multi-person code development  systematic debugging  performance tuning  Goal: robust, performing, industrial-strength code

21-Jun-15Advanced Programming Spring Differences to Software Engineering  Less emphasis on software engineering principles  more on tools and techniques  some SE is best read, rather than lectured  hopefully, SE will make more sense afterwards…  CS4156 will remain  Group programming project?

21-Jun-15Advanced Programming Spring Who should be here?  Know Java (and 313x), but no or little C/C++  Likely doing systems or general track  Want to do well in OS, DB, Networks, …  Interested in how real systems work  Affinity for programming, not complexity theory

21-Jun-15Advanced Programming Spring Syllabus  C programming language for Java programmers (2 weeks, 2 assignments)  summary of differences  pre-processor  strings  stdio  pointers and pointer arithmetic  malloc/free  unions  function pointers

21-Jun-15Advanced Programming Spring Syllabus  Software development models, including open source  Software development tools:  Unix  make  automake  autoconf -- cross-platform development  CVS  doc++ and other documentation tools OxygenOxygen  gdb and DDD  purify, ElectricFence  truss

21-Jun-15Advanced Programming Spring Syllabus  profiling: gprof  Windows  Visual C  Code Warrior  Program models: data driven, event driven, cgi, RPC,...  UML  Data interchange  classical Unix style  serialization  XML

21-Jun-15Advanced Programming Spring Syllabus  Scripting languages  sh  awk, sed  Tcl, expect  Perl  Python  Standard Unix system call interface:  file access  time and date manipulation  system files  process management  signals  getopt  syslog

21-Jun-15Advanced Programming Spring Syllabus  Internationalization  secure programming  design patterns  web programming models (servlets, cgi, JavaScript, PHP,...)  web database interfaces (JDBC, mySQL,...)  Time permitting (these topics are also covered in CS 4118):  threads and concurrency  shared memory

21-Jun-15Advanced Programming Spring Logistics  Web page: p/ p/  Mailing list:   Mailman (lists.cs.columbia.edu)  As-written or digest once a day  Web archive ~ newsgroup  Office hours: Th, pm, 815 CEPSR  TA: Nikil Tiwari

21-Jun-15Advanced Programming Spring Books - required  Advanced Programming in the Unix Environment, by W. Richard Stevens, Addison-Wesley. ISBN ISBN  Code Complete : A Practical Handbook of Software Construction, by Steve C McConnell, Microsoft Press. ISBN ISBN

21-Jun-15Advanced Programming Spring Books – useful reading  Mythical Man Month, by Frederick P. Brooks, Addison-Wesley. ISBN ISBN  Building Secure Software, by John Viega and Gary McGraw, Addison Wesley. ISBN XISBN X  Software Project Survival Guide, by Steve C McConnell, Microsoft Press. ISBN ISBN

21-Jun-15Advanced Programming Spring Grading  Midterm 30%, final exam 40%, homework assignments 30%  Group project(s) - NO

21-Jun-15Advanced Programming Spring Assignments  Weekly programming assignments  To be done individually.  Conform to coding style guidelines.coding style  You will lose points if you don't follow the guidelines.

21-Jun-15Advanced Programming Spring Ombudsperson  New course – new problems  Designated, random individual  Act as relay for “issues”  Assumed to speak for (subsection of) class, not themselves  Quicker than mid-term review