Site MapDirectoryCalendarSearchColumbia Home
Columbia University Continuing Education

Return to Home Pag

May 16 2025

Calendar

Program Information

Program Tracks

Courses

Admission & Application

Tuition & Fees

Financial Aid

Instructors

Equipment

Preparatory Course

Computer Labs & Resources

CTA Seminars

Corporate Services

Student Services

Current Students

Auditing

Official Regulations

Safety & Security

Open Houses

William Street

CTA Home Page

Other IT Programs

 

For general information:

Information Center

303 Lewisohn

 

(116th & Broadway)

(212) 854-9699

 

(attended 9 a.m.–6 p.m.)

[email protected]


If you have already submitted an application:

Admissions and Student Affairs Office

 

(formerly the Student Services Center)

Columbia University
203 Lewisohn
M.C. 4119, 2970 Broadway
New York, NY 10027-6902

   

(212) 854-9666
Fax: (212) 854-7400

   

Hours: Monday–Thursday, 9 a.m.–7 p.m.; Friday, 9 a.m.–5 p.m.


Counselor:
Peter Jamieson

Program Director: Dennis Green
Director's open-door hours: Tuesday–Thursday, 5–6:15 p.m.

   

 

 

Privacy Policy

Webmaster

 

     
 

Quick search

 

Computer Technology and Applications

The Courses

  • Course days and times are subject to change at any time prior to the beginning of the term. Select here for a current course schedule. CTA courses are listed under "Computing Systems (Continuing Education)."
  • The computer technology field is evolving constantly. The curriculum specified on this Web site is subject to change without notice depending on conditions in the industry.
  • The following curriculum is effective for students entering their first term of study in fall 2000 or later.
  • Please contact the CTA Office at [email protected] or (212) 854-2820 if you have any questions or concerns about this curriculum.

View Courses Within Program Tracks


Key to Track Abbreviations

PROG: C++ and Java: Programming and Software Development
DADD: Database Application Development and Design
NAAD: Network Administration and Design
ADIS: Analysis and Design of Information Systems
ECOM: Software Development for E-Commerce


Course Descriptions

QC1101. Introduction to Programming with C/C++
A thorough introduction to programming constructs and C/C++ syntax, with an emphasis on C++. C/C++ language vocabulary, fundamental algorithms, program development, analysis, and design. C datatypes, operators, functions, expressions, aggregate datatypes, control flow, the use of standard library routines, debugging techniques, I/O, pointers, pointer arithmetic, pointers to functions, and memory allocation. ANSI-standard C/C++ is discussed throughout the course. Emphasis on structured design, program readability, and procedural problem solving.
Track: PROG.

QC1103. Object-Oriented Programming and Software Architecture
The course consists of 2 distinct parts: Introduction to System Architecture, and Introduction to Object Oriented Analysis & Design (OOAD). The system architecture portion provides a survey of computer-based hardware architecture and operating systems, with presentation geared towards those topics most relevant to the programmer. The OOAD portion provides a comprehensive overview and exploration of the object oriented paradigm. Students will learn to develop and use the following primary elements of UML (Unified Modeling Language, now the industry standard): use case diagrams, sequence diagrams, class diagrams, and state transition diagrams. Other OOAD methodologies, including CRC Cards, will also be presented, providing the student with a well-rounded set of analysis and design approaches. Work in the course includes actual modeling of several systems, with the student work individually and in a group setting. Other topics include software development lifecycle, testing, COM/DCOM, and CORBA.
Track: PROG.

QC1201. Data Structures and Object Design
Continuation of the study of C/C++ programming. A full range of programming constructs is presented, with particular emphasis on reusability, portability, data structures and algorithms for manipulating them. Stacks, queues, linked lists, binary trees, and other practical-use structures are discussed and implemented. ANSI-standard C/C++ is discussed throughout the course.
Track: PROG.

QC1301. UNIX for C/C++ Programmers
A comprehensive overview of the UNIX environment with particular emphasis on application development tools for C/C++ programmers. The evolution of UNIX and the differences among major implementations such as Solaris, Linux, and FreeBSD. Participants acquire working familiarity with end-user features such as session initiation, file management, mail, and on-line documentation. The focus of the course is on the use of the C/C++ compilers and system toolbox.
Track: PROG.

QC1302. GUI and C/C++ Applications
An introduction to graphic user interfaces (GUIs), covering the theory and practice of event-driven windowing interfaces. Techniques for exploiting the capabilities of the GUIs now having dominance in the market. Exercises in the use of the API of Microsoft Windows. Assigned projects include device handling, icons, resource management, menus, and bit-mapped graphics. Applications of these techniques to other GUIs such as the Java AWT (Abstract Window Toolkit), X Window System, and the Macintosh interface are discussed and contrasted.
Track: PROG.

QC1303. Advanced Object-Oriented Programming
Object-oriented programs provide features that reduce the cost of development and are easier to modify and maintain. Students learn the basic principles of object-oriented programming as well as the syntax and use of C++ as an object-oriented language. Some of the topics discussed are C versus C++, object-oriented programs, improving reusability, new features of C++ versus C, classes, call and return by reference versus value, friend functions, overloaded functions and operators, derived classes and inheritance, constructors and destructors, templates, and the Standard C++ Library. This course requires an advanced knowledge of the ANSI C language.
Track: PROG.

QC1401. Application Development Lab in C/C++
Students select, propose, design, analyze, and program a complete application using C/C++ in the Windows environment. Topics include application design and analysis, user interface design, object use and inheritance, Microsoft's MFC (Microsoft Foundation Class), The C++ STL (Standard Template Library), and database design and access. Students choose application projects with instructor's permission and review. Current technologies such as COM, DCOM, CORBA, are discussed. The student is left with full-cycle project experience, as well as a "portfolio piece", demonstrating their abilities. This course requires a knowledge of GUI programming.
Track: PROG.

QC1404. Advanced Graphic User Interface and C++ Applications
An in depth look at a systems-level approach for software development under the Microsoft Windows environment. Topics include how to create, implement and exploit the most current technologies such as the Internet, ActiveX controls, OLE Automation, COM/DCOM, and a variety of dedicated APIs such as the MAPI (e-mail). An emphasis is placed on the technologies that make reusable components, by both creating and using those components.
Track: PROG.

QC1405. Application Development Lab in Java

QC1510. Java for C++ Programmers
"Java for C++ Programmers" provides a working knowledge to the Java programming language and the new opportunities it represents for Intranet/Internet developers with its powerful "write once, run everywhere" philosophy. Java language features will be compared to those in C++. Students learn the fundamentals of Java , its run-time environment, the "core" Java classes, the most recent enhancements to the language in the Sun Java Development Kit (JDK) 1.1/1.2, including the JavaBeans component model, Swing interface classes, database connectivity through JDBC and servlets. Other recent advances, such as the Microsoft Windows Foundations Classes (WFC), will also be introduced.
Track: PROG.

QC2101. Object and Structured Analysis
A comprehensive exploration of the System Development Life Cycle (SDLC) and the concepts, strategies and methodologies used in structured systems analysis and design. Throughout the course, students use various modeling tools, analysis techniques and Computer-Aided Software Engineering (CASE) tools to develop data flow diagrams, data dictionaries, entity relationship diagrams and process specifications for assigned case studies. Other topics include: interviewing techniques; prototyping; installation; testing; training; maintenance; object-oriented approaches to analysis; the role of CASE tools in the SDLC. Prerequisite: none.
Track: DADD, ADIS.

QC2102. Introduction to SQL and the Oracle Database Server
One focus of this course is a thorough introduction to the industry-standard Structured Query Language (SQL) and its use as a data access and manipulation language for relational databases--specifically, the Oracle database system. Students will apply SQL concepts by developing statements to access data in a sample database and define data structures. The other focus of the course is the database server (RDBMS) itself and how the developer uses it to produce efficient applications on the client side. To this end, the students further their experience with SQL by exploring Oracle database architecture through regular exercises in querying the Oracle data dictionary. Prerequisite: none.
Track: DADD.

QC2203. Embedded SQL and PL/SQL
This course emphasizes programming using Structured Query Language (SQL) within another structured procedural language, specifically Oracle Corporation's extension to SQL—the PL/SQL language. Students will be introduced to the practical application of calling SQL within a "host" language including structured programming constructs and object-like capabilities. Topics discussed will prepare the student for work in the third- and fourth-term PL/SQL application-oriented classes as well as for work in typical real-world database development environments: stored procedures and functions; packages; standard server packages; database triggers; code partitioning. This course is intended for students who elect to pursue the PL/SQL or the Java fork of the DADD track. Prerequisite: SQL (QC2102).
Track: DADD.

QC2204. Database Specification and Design
A comprehensive approach to the development of full-scale relational database systems for all hardware platforms and the wide range of data modeling techniques available to system designers today. Work in this course consists of developing a complete set of design documentation for a case-study which the student chooses. Other topics discussed are: entity relationship diagramming; the data catalog; data integrity; the use of normalization to eliminate data redundancy; the relational database model; object-oriented database design techniques; denormalization; physical database design. Prerequisite: System Development/Structured Analysis.
Track: DADD, ADIS.

QC2205. Embedded SQL and Java
This course emphasizes programming using Structured Query Language (SQL) within a structured procedural language, specifically Java. Students will be introduced to the Java programming language and the practical application of calling SQL within a "host" language. Topics include structured and object oriented concepts and constructs, and database connectivity. This course will serve as a preparatory class to the third and fourth semester Java application oriented courses. This course is intended for students who elect to pursue the PL/SQL or the Java fork of the DADD track. Prerequisite: SQL (QC2102).
Track: DADD.

QC2300. Application Design Lab: PL/SQL
This class acts as a bridge between the Database Specification and Design class and the Application Development Labs. In Database Specification and Design, the student created a logical data model in support of their final project's application. Here, the student transforms the logical into a physical model, writes necessary DDL to produce the schema and implements processes identified in the Database Specification and Design class as Packages, Functions and Procedures using Oracle's PL/SQL. This work moves with the student and becomes part of their final project. In addition, the student learns techniques specific to Oracle to assist in common tasks such as loading data and SQL tuning. Prerequisite: Embedded SQL and PL/SQL (QC2203); Database Specification and Design (QC2204).
Track: DADD.

QC2301. Application Design Lab: Java
This class acts as a bridge between the Database Specification and Design class and the Application Development Labs. In Database Specification and Design, the student created a logical data model and other specifications in support of their final project application. Here, the student transforms the logical into a physical model, writes necessary DDL to produce the schema and implements processes identified in the Database Specification and Design class as stored Java code the Oracle database. This work moves with the student and becomes part of their final project. In addition, the student learns techniques specific to Oracle to assist in common tasks such as loading data and SQL tuning. Prerequisite: Embedded SQL and Java (QC2205); Database Specification and Design (QC2204).

QC2304. Introduction to Oracle Developer
This course presents a practical overview of the current Oracle software used to create user-interface programs for relational database systems. The course explores the Fourth Generation Language environment provided by Oracle for implementing database client/server applications focusing on the screen and report development tools Oracle Forms and Oracle Reports. Students will practice topics from the lectures by developing a working application that manipulates a sample database. Other subjects are: Oracle Developer's implementation of object-orientation, inheritance and encapsulation; generic coding strategies; and connectivity issues. Prerequisite: Embedded SQL and PL/SQL (QC2203).
Track: DADD.

QC2307. Introduction to Oracle JDeveloper
This course presents a practical overview of Oracle's AppBuilder Suite used to create user-interface programs for relational database systems. The course explores the AppBuilder IDE including its several wizards. Students will practice topics from the lectures by developing a working application, which manipulates a sample database; other subjects are: object-orientation; inheritance and encapsulation; generic coding strategies; and network software requirements. Prerequisite: Embedded SQL and Java (QC2205).
Track: DADD.

QC2400. Application Development Lab: Oracle Developer
An intensive experience in the programming of a complete client/server relational database application for a business environment using design documentation and development skills acquired in previous courses. Advanced techniques and strategies for using development tools in a real production environment are explored and individual assistance is provided as students progress toward delivery of the full system. Other topics discussed are: program specifications; prototyping; code partitioning; program templates; and code sharing. Prerequisites: Application Design Lab: PL/SQL (QC2300); Introduction to Oracle Developer (QC2304).
Track: DADD.

QC2404. Application Development Lab: JDeveloper
An intensive experience in the programming of a complete client/server relational database application for a business environment using design documentation and development skills acquired in previous courses. Advanced techniques and strategies for using development tools in a real production environment are explored and individual assistance is provided as students progress toward delivery of the full system. Other topics discussed are: program specifications; prototyping; code partitioning; program templates; and code sharing. Prerequisites: Application Design Lab: Java (QC2301); Introduction to Oracle JDeveloper (QC2307).

QC2502. Oracle Case Tools: Oracle Designer
This course fully explores the Oracle suite of Computer-Aided Software Engineering products (Oracle Designer) using a case study that demonstrates each aspect of data modeling including Business Process Re-engineering and Process Modeling. It introduces all major logical and physical diagrammers and utilities provided for all phases in the software development life cycle including the design modelers and generators for server code, Oracle forms, Oracle reports WebServer, and Visual Basic applications. Other topics will be: Forms templates, Repository Administration, Generator Preferences, cross-checking the design and use of the Repository Object Navigator to manipulate application meta-data. Prerequisites: PL/SQL (QC2203), Database Design/Spec (QC2204); and Oracle Developer (QC2304) or JDeveloper (QC2307) Tools course.
Track: DADD.

QC2504. Data Warehousing in the Oracle Server Environment
This course uses lecture and hands-on work to give a full overview of the technology and strategies involved with building data warehouses. One key topic is how to fulfill the need for aggregated data in online analytical processing (OLAP) to provide the basis for decision support systems (DSS). Other topics include: drill-across and drill-down access to data; multidimensional, star-schema and data mining concepts; data loading; programming for the data warehouse using PL/SQL; and DSS front-end needs using Oracle's user-interface tools. Prerequisite: Embedded SQL and PL/SQL (QC2203), Database Specification and Design (QC2204).

QC2506. Introduction to Oracle Database Administration
This course provides an overview of the most common tasks performed by and responsibilities assigned to an Oracle database administrator. This encompasses topics such as database security, connectivity, database/data integrity, data storage, stored PL/SQL, database availability (backup and recovery), database performance. The course will be part lecture and part hands-on. It focuses on many of the issues tested in the Oracle DBA Certification Exam and assists in preparation for students to take and pass this industry-recognized exam. Prerequisite: SQL (QC2102).
Track: DADD.

QC5100. Introduction to Networking Technology
An in depth overview of LANs, MANs, WANs, and GANs, exploring hardware and software issues. System hardware, media and cabling, network topologies, media access methods (Ethernet, Token-Ring, and others), network operating system concepts, peer-to-peer and client-server architectures.
Track: NAAD.

QC5201. Network Protocols and Architectures
The functionality and structure of the software that governs computer communication across networks, focusing on local area networks. Introduction to wide area protocols. Topics include Ethernet; token ring; RS232; IEEE 802 protocols; SNAP; X.25; TCP/IP; NetBios; network routing strategies such as static, dynamic and source routing; and congestion control issues. The ISO Open Systems Interconnection reference model is presented as a frame of reference for internetworking issue discussions.
Track: NAAD.

QC5203. Introduction to Windows NT Administration-Workstation
In-depth coverage of Microsoft's Windows NT environment. Windows NT architecture, including multiple threads, multiple processes, multiple users, and symmetrical multiprocess(oring); the paging and scheduling subsystems and the NT environment; the NT file systems: FAT, HPFS, NTFS, and CDFS; installing, configuring, and maintaining the Windows NT Workstation and monitoring the boot process; establishing NT security; NT printing and system backups; executing 16- and 32-bit MS Windows applications; executing DOS, OS/2, and POSIX applications; interoperating with other supported networks; and troubleshooting strategies and selected utilities. Prerequisites: successful completion of QC5100 and a strong command of MS DOS; or permission of the instructor.
Track: NAAD.

QC5300. Cases in Network Design
Survey of several network designs and different types of networks in operation. Requirement analysis, the logical design process, the physical design process, client server vs. historical networks, and an introduction to enterprise concepts. Students solve specific problems and research and design their own network.
Track: NAAD.

QC5303. Advanced Windows NT Server Administration
Installing, configuring, and supporting the NT server operating system in LAN and WAN environments; upgrading the Windows NT Server from earlier versions of NT, OS/2, and Netware; browsing for network resources; creating and managing user and group resources; establishing trust relationships; utilizing NT's remote access service; implementing the four domain models using domain management utilities; establishing system-fault tolerance features; utilizing disk mirroring and stripping and other levels of RAID to insure data integrity; implementing directory replication between servers; internetworking NT with DNS, the hosts file, and IP routing; implementing TCP/IP services; integrating Novell Netware with NT server using Gateway Services for Netware; optimizing NT server performance with MS SNMP; and NT troubleshooting techniques. Prerequisites: QC5203 and a strong command of MS DOS or instructor's permission.
Track: NAAD.

QC5403. Internet and Web Server Development Using Windows NT
Using the Microsoft Internet Information Server running on NT Server, students will learn to design and build an Internet/Intranet presence. Topics include creating and implementing a security site plan, security tools and firewall construction, filtering firewall hosts, dual protocol stack firewalls, installing and configuring the Internet Information Server, establishing Internet names and addresses, selecting an Internet service provider, determining what Internet services are appropriate, and troubleshooting an Internet Information Server installation, examining and implementing HTML, HTTP, CGI, FTP and GOPHER services.
Track: NAAD.

QC5405 UNIX Administration and Integration
This course covers basic and extended topics needed for a successful administration on a UNIX platform, presented in a comprehensive and pragmatic way. It offers a sufficient knowledge and skills to perform successfully most of administration tasks on a networked UNIX computer system, providing a number of real-life examples. Topics include: UNIX systems and networks overview; system startup and shutdown; UNIX filesystems; user accounts management; UNIX kernels configuration; UNIX security; peripherals handling; UNIX backup and restore; basic network administration; domain name service; network information service - NIS; network filesystems - NFS, e-mail, X windows, and a number of other network applications.
Prerequisite: QC6100, Intensive Introduction to UNIX.
Track: NAAD.

QC5504. Network Design Development Lab
The network design development lab guides students through the actual analysis and design of a comprehensive network infrastructure. Fourth-term students will build upon their experience in prior courses to develop a network solution that demonstrates their knowledge of UNIX, Windows NT, Internet/Intranet, and communications. The project requires submission of a proposal based on the requirements to be presented by the instructor. The final submission will include fhe following deliverables:

1. Executive Overview
2. Specific Requirements of the Network
3. Hardware Analysis and Cost Breakdown of Equipment and Software
4. Comprehensive Network Design Showing all Network Components
5. Fail Over Capabilities of the Network
6. Performance Indicators and Scaling Factors
Track: NAAD.

QC6100. Intensive Introduction to UNIX
A comprehensive introduction to the UNIX operating system. UNIX system access, navigating the UNIX file system, controlling file access, UNIX environmental variables, redirection and pipelining, introductory shell programming, basic utility commands and tools, vi and emacs editors, UNIX filters, printing file and directory content, and customizing the Bourne, C, and Korn shells.
Track: NAAD.

QC6202. UNIX System Administration
This course covers basic and extended topics needed for a successful administration on a UNIX platform, presented in a comprehensive, and pragmatic way. It offers a sufficient knowledge and skills to perform successfully most of administration tasks on a networked UNIX computer system. The course provides a number of real-life examples. Topics include: UNIX systems and networks overview; system startup and shutdown; UNIX filesystems; user accounts management; UNIX kernels configuration; UNIX security; peripherals handling; UNIX backup and restore; basic network administration; domain name service; network information service - NIS; network filesystems - NFS, e-mail, X windows, and a number of other network applications. Prerequisite: QC6100. Intensive Introduction to UNIX.
Track: NAAD.

QC7101. Computer Hardware and Software
A thorough survey of computer-based hardware architecture and its related operating systems, from the earliest to the latest versions. Hardware capabilities and features; system configuration; file and memory management; security; LANs and WANs; MS Windows, Windows 95, UNIX, OS/2, and Windows NT; data structures; logic and algorithms; and compiler design. Please note: RDSD students will attend track-specific breakout sessions during the second half of this course to learn and practice structured programming for database applications.
Track: ADIS.

QC7103. Introduction to Graphic User Interface Design
This class acts as a bridge between the Database Specification and Design class and the Application Development Labs. In Data Specification and Design, the student created a logical data model in support of their final project's application. Here, the student transforms the logical into a physical model, writes necessary DDL to produce the schema and implements processes identified in the Database Specification and Design class as Packages, Functions and Procedures using Oracle's PL/SQL. This work moves with the student and becomes part of their final project. In addition, the student learns techniques specific to Oracle to assist in commom tasks such as loading data and SQL tuning. Prerequisite: QC2102
Track: ADIS.

QC7302. Communications and Networking
Students are provided with a thorough understanding of the role of communications and networking in today's IS environment. Voice and data transmission alternatives, large scale communication networks design, video conferencing, and e-mail. Includes a six-week intensive lab focused on the role of the Internet in the IS world.
Track: ADIS.

QC7303. Web, Internet, and E-Commerce This course focuses on the analysis, design, and management of Internet Technology in today s businesses and organizations. Topics include issues surrounding the techniques of using Web and Internet applications and its impact on the desktop PC, database and application servers, existing legacy systems, and electronic commerce transactions. Students will gain familiarity with web technology, business models, application tools, analysis methods, and network and communication design strategy. An emphasis is placed on the daily Web & Internet activities that are necessary to effectively manage projects, information technology organizations and complex communications systems, including electronic commerce operations. Prerequisites: QC7101. Computer Hardware and Software, QC7302. Communications and Networking.
Track: ADIS.

QC7401. Information Systems Development Lab
Students develop a corporate case study for which they must provide a comprehensive IS solution that will meet the present and foreseeable future management needs. The case study includes a thorough evaluation of an entire IS department including Return On Investments (ROI), budgeting projects, and scheduling resources. Students work with the instructor in both classroom and mentor environments.
Track: ADIS.

QC7503. Principles of Project Management
The latest techniques used by IS managers to budget, plan and evaluate system projects. Methods for identifying the tasks of typical IS project, determining realistic schedules, creating human resource models, and evaluating true percentage of completion of the project. Project life cycles, change control, organization, work-in-process, and ISO 9000.
Track: ADIS.

QC8100. Introduction to E-Commerce
This course introduces students to the Internet, Intranet, and Extranet. It also presents a comprehensive study on how these networks are applied to business. Students will have a firm understanding of how to apply the new technology to business upon completion of this course.
Track: ECOM.

QC8101. Software Engineering for E-Commerce
This course provides students with an understanding of how to do the analysis, design, and development of e-commerce systems. Students learn how to create specifications that can be used to develop complex e-commerce systems.
Track: ECOM.

QC8200. Web Site Design and Development
This course provides students with hands-on experience on how to develop professional Web sites and e-commerce transaction-based systems. Students learn how to create on-line catalogs and shopping carts; process on-line transactions; and create sites that download files, play audio, run video, and provide live radio/video broadcast.
Track: ECOM.

QC8201. Java Programming for E-Commerce
This course shows students how to create applications using Java. Students learn how to develop Java applets to enhance the portability and performance of Web pages. Students also learn how to create Java applications for Web-browser clients and workstations.
Track: ECOM.

QC8300. Common Gateway Interface Development
This course shows students how to connect the server-side to a Web site. Students learn how to create dynamic Web pages, receive and process information from a Web page, and save and read information to and from databases and files. Students also learn the intricacies of how to develop e-commerce transaction systems such as credit card processing.
Track: ECOM.

QC8301. SQL Programming for Web Development
This course shows students how to interface e-commerce systems with complex back-end databases. Students learn SQL and how to integrate SQL within a web-based application.
Track: ECOM.

QC8400. Application Development Lab in E-Commerce
In this course, students develop an instructor-approved application that demonstrates their mastery of e-commerce development systems.
Track: ECOM.

QC8401. Advanced Development and Programming in Java for E-Commerce
This course provides students with advanced techniques for developing corporate-wide applications using Java and other Web-based tools. Students focus on how to integrate advanced programming capabilities into enterprise level software products.
Track: ECOM.

Return to Home PageLogo