Select Topics in Computer Science Software Development CSC 295
Select Topics in Computer Science Software Development CSC 295
Introduction to Programming Using Java
CSU Instructor Open Textbook Adoption Portrait
Abstract: This open textbook is being utilized in a Computer Science course for undergraduate students by Liudong Zuo, Ph.D., at California State University, Dominguez Hills. The open textbook provides an introduction to computers and programming using Java. The main motivation to adopt an open textbook was to offer affordable and accessible course materials to students while maintaining high quality of the class. Most students access the open textbook for free online.
About the Textbook
Introduction to Programming Using Java, Seventh Edition
Description:
The textbook provides an introduction to computers and programming using Java, a high-level structured language. Main topics covered include control structures, methods, objects and classes, GUI programming, arrays and arraylists, linked data structures and recursion, and threads and multiprocessing.
The textbook has an excellent topics design and distribution. The objective of the textbook is clear through the entire textbook: learn how to program through real examples. The topics are illustrated and explained clearly though the examples, and are very easy to understand. The exercises are well designed for the topics covered in each chapter, and their objectives are clean and simple: learn and practice programming through real programming.
Some exercises are very interesting and challenging, and ask students to finish through team work. There is a quiz after each chapter, which gives students an opportunity to check how well they understand the topics of that chapter. Also, the textbook provides the source code for the examples used to show the topics in each chapter and end-of-chapter exercises. The programs are well designed and written with lots of comments to improve the readability. It is free to students to download the source code for reference.
Author:
- David J. Eck - Hobart and William Smith Colleges
Formats:
The book can be accessed for free online, PDF and E-book in two formats (mobi fomat for Kindle and epub format for most other ebook readers.) Print copy of the textbook can be purchased online from $23.57.
Supplemental resources:
Source code for the examples used in the textbook and the end-of-chapter exercises can be downloaded for free online.
Cost savings:
I previously used Java Programming: From The Ground Up (1st Edition) by Ralph Bravaco and Shai Simonson for this course. It sells for $131 in our bookstore. The course enrolls about 45 students per year, so the total cost savings for students is around $5,895.
License:
This text is licensed under a Creative Commons Attribution-Noncommercial-ShareAlike 3.0 License. This license allows you to redistribute this book in unmodified form for non-commercial purposes. You can make and distribute modified versions for non-commercial purposes, as long as you include an attribution to the original author, clearly describe the modifications that you made, and distribute the modified work under the same license as the original.

About the Course

CSC 295: Select Topics in Computer Science: Software Development
Description: Content varies. Topics in computer science not covered by current course offerings. May be used for elective credit in departmental programs. Subject to approval.
This is an advanced Java programming course. Through extensive programming exercises and projects, students are expected to have a much deeper understanding about major aspects of object-oriented programming and significantly enhance their programming and problem solving ability. Real programmer interview question will be shown to students. Eclipse and Netbeans will be used as the Java IDEs. Several data structures and algorithms will be introduced.
Prerequisites: CSC 123 Introduction to Computer Science and Programming II
GE credit: 4.0
Learning outcomes:
Upon completion of the course the students will be able to:
- Have a much deeper understanding about Java and object-oriented programming principles.
- Know several other topics of Java, such as Multithread Programming and Socket Programming.
- Create complicated Java programs using object-oriented programming principles to solve actual programs.
- Do research on their own to solve relative difficult problems they meet in the class.
- Build a solid programming foundation for future computer courses.
Teaching and learning impacts:
Collaborate more with other faculty: No
Use wider range of teaching materials: Yes
Student learning improved: Yes
Student retention improved: Unsure
Any unexpected results: No
Sample syllabus and assignment:
Syllabus
This is the syllabus I used for Fall 2016.
Sample Assignment
This is a homework assignment I used for Fall 2016,
Textbook Adoption
OER Adoption Process
Spring 2016 was the first semester that this course has been offered. The course is designed as an advanced Java programming course and an extended course of CSC 121 Introduction to Computer Science and Programming I and CSC 123 Introduction to Computer Science and Programming II. Through extensive programming exercises and projects, students are expected to have a much deeper understanding about major aspects of object-oriented programming and significantly enhance their programming and problem solving ability.
After Spring 2016 semester, I wanted to improve the course, mainly the course textbook, to give students a clearer idea of where to find the topics that are important Java topics but are not included in the textbook. I did a lot of research online, trying to find a cheaper book with solid Java topics and good book design. After overall comparison, I decided to adopt this open textbook. The textbook is free to access in various forms and will save our students a lot of money. The website is very well designed in a real textbook format. Lots of references can be found on the website to give students further and advanced study opportunities.
Examples with detailed step-by-step explanations and illustrations are provided, making the key points very easy to understand. The author also provides real Java programs that students can download, read through, and execute. Detailed comments are provided to help students understand the programs. The exercise pool is large enough to give students high quality exercises to practice the key points.
Student access:
The textbook is provided in several forms that students can read directly online. A PDF version is also available.
Student feedback or participation:
A survey was conducted in class and 95.7% of the students liked the textbook (22 out of 23). I also received lots of verbal positive feedback from students about the textbook. I will keep using this open textbook in the future courses to save students money and give them a better learning experience.

I am a Computer Science assistant professor at the California State University, Dominguez Hills. I usually teach the following courses:
- CSC 121 Intr. to CSC and Prog. I
- CSC 221 Asmbly And Intro. To Org
- CSC 295-01 Sel. Topics in Computer Sci.: Software Development
- CSC 295-02 Sel. Topics in Computer Sci.: Discrete Structures
My teaching philosophy can be summarized as follows:
- Introduce new concepts by using everyday examples students can easily relate to.
- Constantly update my courses materials to enhance the quality of my teaching.
- Use various strategies to encourage active participation and engagement in class, and make learning an enjoyable experience.
- Create an inclusive learning environment for students with different learning styles.
My research interests include Computer Networks, Algorithm Design and Application, and Big Data Management. My current research emphasizes big data transfer with guaranteed performance by using the bandwidth reservation service in dedicated high-performance networks. I plan to extend his research areas to Machine Learning, Pattern Recognition and Data Mining in the near future.