About Registrar
Home
Mission Statement
Contact Information

 Course Publications
Fall 2009
 
Course and Room Roster
Final Exam Information
Spring 2009
 
Postponed Exams

2009-2010 Course Register
Course Search & Schedule
Planning Tool
Academic Bulletin
3 Year Academic Calendar

Student / Alumni Services
 

Faculty / Staff Resources
 

 Additional Sites & Resources
Visit Penn's Website
Classroom Finder
Penn Portal
Penn Course Review
Penn In Touch
Student Financial Services
U@Penn Staff Portal
Division of Finance
Inside Finance
Division of Finance Access Only
 
 
2009-2010 University of Pennsylvania Course Register
pdf icon Download as PDF
 
COMPUTER & INFORMATION TECHNOLOGY (CIT)
L/R 591. Programming Languages and Techniques I. (C) Introduction to fundamental concepts of programming and computer science. Principles of modern object-oriented programming languages: abstraction, types, polymorphism, encapsulation, and inheritance. Basic algorithmic techniques and informal complexity analysis. Substantial programming assignments in Java.
L/R 592. Mathematical Foundations of Computer Science. (C) Foundations: Sets, Functions, Summations, and Sequences. Introduction to algorithms. Counting techniques: The pigeonhole principle, permutations and combinations. Discrete probability. Selected topics from Number theory and/or Graph theory.
593. Introduction to Computer Architecture. (C) Introduction to fundamental concepts of computer architecture. Programming in C and at least one assembly language as a basis for understanding machine instructions and subroutine linkage conventions. Representation of numbers, characters and other information at machine level, including on virtual machines. Features of current operating systems.

594. Programming Languages and Techniques II. (C) Prerequisite(s): CIT 591 or consent of the instructor. Basic data structures, including lists, stacks, queues, hash tables, trees, priority queues, and Java Collections. Algorithms, algorithm types, and simple complexity analysis. Development and implementation of program specifications. Software architecture and design methods, including modular program development, correctness arguments, and testing techniques. Concepts illustrated through extensive programming assignments in Java.

L/R 595. Digital System Organization and Design. (C) Prerequisite(s): CIT 593 or equivalent. Introduction to fundamental building blocks of digital computer hardware such as transistors, logic gates and components built from them, as a basis for understanding how a computer operates at the hardware level. Basic networking, security, and other "under the hood" topics. Use of virtual machines to simulate hardware.

L/R 596. Theory of Computation. (C) Prerequisite(s): CIT 592 or equivalent. Relations. Finite automata, regular languages, regular grammars, and applications. Pushdown automatia, trees, context-free grammars, and applications. Turing machines. Introduction to computability and complexity theory.

597. Programming Languages and Techniques III. (C) Prerequisite(s): CIT 591 or equivalent. Advanced Java programming and programming tools, with emphasis on developing for the Internet. Java topics will include serialization, synchronization, reflection, advanced I/O, and servlets. This course will cover current Internet-related technologies such as XML and JavaScript, and may include JDBC,UML, PHP, SOAP, and others. Substantial programming assignments, many in Java. May be taken by MCIT and CIS graduate students.

 

 

 

 

 
Penn Home Penn A-Z Directories Calendar Maps
Advanced Search
COMPUTER & INFORMATION TECHNOLOGY (CIT)
 
 About Registrar
Home
Mission Statement
Contact Information

 Course Publications
Spring 2010
 
Course Timetable
Fall 2009
 
Course and Room Roster
Final Exam Information

2009-2010 Course Register
Course Search & Schedule
Planning Tool
Academic Bulletin
3 Year Academic Calendar

Student / Alumni Services
 

Faculty / Staff Resources
 

 Additional Sites & Resources
Visit Penn's Website
Classroom Finder
Penn Portal
Penn Course Review
Penn In Touch
Student Financial Services
U@Penn Staff Portal
Division of Finance
Inside Finance
Division of Finance Access Only
 
 
2009-2010 University of Pennsylvania Course Register
pdf icon Download as PDF
 
COMPUTER & INFORMATION TECHNOLOGY (CIT)
L/R 591. Programming Languages and Techniques I. (C) Introduction to fundamental concepts of programming and computer science. Principles of modern object-oriented programming languages: abstraction, types, polymorphism, encapsulation, and inheritance. Basic algorithmic techniques and informal complexity analysis. Substantial programming assignments in Java.
L/R 592. Mathematical Foundations of Computer Science. (C) Foundations: Sets, Functions, Summations, and Sequences. Introduction to algorithms. Counting techniques: The pigeonhole principle, permutations and combinations. Discrete probability. Selected topics from Number theory and/or Graph theory.
593. Introduction to Computer Architecture. (C) Introduction to fundamental concepts of computer architecture. Programming in C and at least one assembly language as a basis for understanding machine instructions and subroutine linkage conventions. Representation of numbers, characters and other information at machine level, including on virtual machines. Features of current operating systems.

594. Programming Languages and Techniques II. (C) Prerequisite(s): CIT 591 or consent of the instructor. Basic data structures, including lists, stacks, queues, hash tables, trees, priority queues, and Java Collections. Algorithms, algorithm types, and simple complexity analysis. Development and implementation of program specifications. Software architecture and design methods, including modular program development, correctness arguments, and testing techniques. Concepts illustrated through extensive programming assignments in Java.

L/R 595. Digital System Organization and Design. (C) Prerequisite(s): CIT 593 or equivalent. Introduction to fundamental building blocks of digital computer hardware such as transistors, logic gates and components built from them, as a basis for understanding how a computer operates at the hardware level. Basic networking, security, and other "under the hood" topics. Use of virtual machines to simulate hardware.

L/R 596. Theory of Computation. (C) Prerequisite(s): CIT 592 or equivalent. Relations. Finite automata, regular languages, regular grammars, and applications. Pushdown automatia, trees, context-free grammars, and applications. Turing machines. Introduction to computability and complexity theory.

597. Programming Languages and Techniques III. (C) Prerequisite(s): CIT 591 or equivalent. Advanced Java programming and programming tools, with emphasis on developing for the Internet. Java topics will include serialization, synchronization, reflection, advanced I/O, and servlets. This course will cover current Internet-related technologies such as XML and JavaScript, and may include JDBC,UML, PHP, SOAP, and others. Substantial programming assignments, many in Java. May be taken by MCIT and CIS graduate students.

 

 

 

 

 
Penn Home Penn A-Z Directories Calendar Maps
Advanced Search