Java for C++ Programmers


Java for C++ Programmers

This tutorial is intended for students who are already familiar with C++ and with data structures, and are interested in learning Java. 
There are 5 "self-guided" lessons that include:
  • reading notes
  • answering multiple-choice questions about the material (coming soon...)
  • writing Java programs
Each set of on-line notes includes some "self-study" questions. The answers are also included in the notes; however, the best way to learn the material is to try to answer the questions yourself when you get to them in the notes. When the questions involve writing code, it is important to try to compile and run the code as well as writing it -- this will give you practice using the Java compiler and interpreter, and it will help you find errors in your code that you otherwise might miss

Lessons( in HTML Format)

  1. Java vs C++
  2. Java Classes
  3. Packages and Exceptions
  4. Introduction to Inheritance
  5. Inheritance, Interfaces, and I/O

Programming Assignments

  1. Program 1: List Class
  2. Program 2: List Class Using Linked Lists
  3. Program 3: Packages and Exceptions

FAQs

Java Debugger

JDK Doc


Analysis of Algorithms (with audio lecture)


Book
Lecutres (in HTML format)(audio file link with each lecture)

Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne

Algorithms, 4th Edition.: essential information that every serious programmer
needs to know about algorithms and data structures

Textbook.

 The textbook Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne [ Amazon · Addison-Wesley ] surveys the most important algorithms and data structures in use today. The textbook is organized into six chapters:
  • Chapter 1: Fundamentals introduces a scientific and engineering basis for comparing algorithms and making predictions. It also includes our programming model.
  • Chapter 2: Sorting considers several classic sorting algorithms, including insertion sort, mergesort, and quicksort. It also includes a binary heap implementation of a priority queue.
  • Chapter 3: Searching describes several classic symbol table implementations, including binary search trees, red-black trees, and hash tables.
  • Chapter 4: Graphs surveys the most important graph processing problems, including depth-first search, breadth-first search, minimum spanning trees, and shortest paths.
  • Chapter 5: Strings investigates specialized algorithms for string processing, including string sorting, substring search, tries, regular expressions, and data compression.
  • Chapter 6: Context highlights connections to systems programming, scientific computing, commercial applications, operations research, and intractability.
Applications to science, engineering, and industry are a key feature of the text. We motivate each algorithm that we address by examining its impact on specific applications.

Booksite.

 Reading a book and surfing the web are two different activities: This booksite is intended for your use while online (for example, while programming and while browsing the web); the textbook is for your use when initially learning new material and when reinforcing your understanding of that material (for example, when reviewing for an exam). The booksite consists of the following elements:
  • Excerpts. A condensed version of the text narrative for reference while online.
  • Java code. Here is a list of the algorithms and clients in this textbook.
  • Exercise solutions. Solutions to selected exercises.

General Computer Science

 Course description.  An introduction to computer science in the context of scientific, engineering, and commercial applications. The goal of the course is to teach basic principles and practical issues, while at the same time preparing students to use computers effectively for applications in computer science, physics, biology, chemistry, engineering, and other disciplines. Topics include: programming in Java; hardware and software systems; algorithms and data structures; fundamental principles of computation; and scientific computing, including simulation, optimization, and data analysis.


Required readings.   R. Sedgewick and K. Wayne, Introduction to Programming in Java: An Interdisciplinary Approach, Addison-Wesley, 2007. ISBN 0-321-49805-4. Available at Labyrinth Bookstore, 122 Nassau Street, or online. Also on reserve at Friend library.

Recommended readings.  D. Harel, Computers Ltd.: What They Really Can't Do, Oxford, 2003. ISBN 0-19-860442-4. Available at the Labyrinth Bookstore, 122 Nassau Street. Also on reserve at Friend library.

Lec#
TOPIC in PDF
INTRO CS
1
1
2
1.1-1.2
3
1.3
4
1.4
5
1.5
6
2.1-2.2
7
2.3
8
4.1, 9.6
9
5.1-5.3 (booksite)
10
5.4-5.5 (booksite)
11
Exam 1
-
12
3.1
13
3.2
14
3.3 (book), 3.5 (booksite)
15
4.2
16
4.3
17
4.4
18
7.1-7.3 (booksite and online chapter)
19
7.4-7.6 (booksite), Harel 1-2 (optional)
20
7.7 (booksite), Harel 3-5 (optional)
21
22
-
23
-
24
Exam 2
-
free counters