Advanced Programming with Java & Python

CSCI 3920: Advanced Programming using Java and Python

Department of Computer Science and Engineering - College of Engineering, Design and Computing - University of Colorado Denver

Term:Fall 2019

Course Overview:

Welcome to Advanced Programming using Java and Python. There are quite a lot different programming languages for you to learn out there. In this course we will focus on two similar but different languages that are widely used in industry and academia. Moreover, we will focus on a different style on developing application to solve data-intensive problems. We will cover distributed processing and client/server architectures, as well as multithreading and multi-process design. If you want to learn the most innovative and broadly used languages, if you are interested in topics like Data Science, Big Data, if you want to learn how to build programs that can give service not to only one but many users at the same time, this course is for you. I hope that this class is not only informative for you, but also fun!

University Course Catalog Description: This course introduces the fundamental concepts to develop programs and projects using modern software engineering techniques using two different programming languages (Java and Python). It will cover and apply pattern design approaches, reusable components driven by everyday needs within many software developments, the relationships between object-oriented programming concepts and software design concepts. It will dig deeper into techniques to program single threaded applications as well as advanced techniques to construct concurrent and distributed applications.

Expected Knowledge at the Start of the Course: Students are expected to understand the basic concepts of Object-Oriented Programming and the basic concepts behind Data Structures and Algorithms. Students are expected to understand the basic concepts of Program Construction.

Expected Knowledge Gained at the end of the Course: Students are expected to understand

  • Java Programming Concepts and Constructs,
  • Python Programming Concepts and Constructs,
  • the use of recursion and lambdas and anonymous functions,
  • multithreading and concurrency issues on parallel programs.


  • Introduction Java and Python. A deep look to Classes and Objects: Inheritance and Polymorphism. Exception Handling. Collections, Lists and Dictionaries.
  • Recursion, data structures and algorithms.
  • Multi-threading, Concurrency and Networking. Lambdas and anonymous functions.

Course Prerequisites: CSCI2421 – Data Structures & Program Design.


Two textbooks are required for this course:

  • How to program Java. Early Objects. By P. Deitel and H. Deitel. Pearson. ISBN13: 978-0-13-474335-6. (Required)
  • Programming in Python 3. A complete introduction to the Python language. 2nd Edition. Mark Summerfield. Addison Wesley. ISBN13: 978-0-321-68056-3

Other books, for deepening knowledge, are recommended:

  • Programming Python: Powerful Object-Oriented Programming. 4th edition. By M. Lutz. O’Reilly. ISBN13: 978-0-59-615810-1
  • Introduction to Computation and Programming Using Python: With Application to Understanding Data. 2nd Edition. John Guttag. The MIT Press. ISBN13: 978-0262529624.
  • Python 3 Object-oriented Programming Second Edition. By Dusty Phillips. Packt. ISBN13: 978-1784398781.

Course Schedule

To Be Announced


To Be Announced