Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Object-Oriented Programming: 01-Mahoney F ...   Pages
Syllabus
CSC 2910
Object Oriented Programming
Dr. Mark Mahoney
Fall 2021
TR 12:30 PM - 2:10 PM
o!ce: (262)551-5869
mmahoney@carthage.edu
O!ce Hours:
DSC192
TR 2:30 PM-4:00 PM
W 1:30 PM - 3:30 PM
Prerequisites: CSC 1820
Required Books:
OOP in Java with Design Patterns (Mahoney)
OOP Videos (Mahoney)
Optional Books and Resources: 
 - Head First Design Patterns: A Brain-Friendly Guide (Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra)
 - Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, and Vlissides)
Grading Criteria:
Homework Assignments: 70%
Final Project: 10%
Exams: 20%
Course Description: This course is an introduction to object oriented programming. We will discuss the three key features of an object oriented language-
encapsulation, inheritance, and polymorphism. We will also discuss common object oriented design techniques and patterns.
The language we will be using is Java. We will also be learning about the Java runtime environment. Java is a very popular language in industry. It is ideal for
client/server computing, web applications, mobile apps, standalone applications, embedded applications and a host of other applications. Java is a pure object
oriented language, almost everything in Java is a object. Objects are speci#ed by de#ning classes.
The Java language comes with an incredibly rich library of classes. This is called the Java API. This library includes many useful classes that can be reused for free.
One of the capabilities that Java provides in the library is a method for building complex GUI's. This is quite a bit di$erent from C++ where each vendor has its own
set of GUI classes. Java's API also provides networking functionality that makes it easy to build distributed applications. The Java environment provides
multithreading capabilities regardless of the OS.
The student is required to have C++ programming experience. I am expecting everyone to be familiar with basic object orientation, and have experience
programming in an OO environment. The Java language is very similar to the C++ and the SmallTalk languages. C++ is not a pure object oriented language. One
can claim to be a C++ programmer and not use objects. The syntax of Java resembles C++ and the semantics resemble SmallTalk. As such, I am assuming that you
can write sequential statements, selection statements, loops and functions in Java before you come to class. If you cannot, drop the class immediately.
Java is one of the most well documented programming languages in existence. There are countless resources available on the internet. I am assuming that you
are able to search the internet for answers to questions you have about Java. I am also assuming everyone can work with a text editor and debugger. We will be
using two methods to write and debug Java programs in this class. We will use a simple text editor like VS Code to write code and the Java compiler and JVM from
the command line. We will also use an integrated development environment (IDE). Although the IDE will do a lot of the work for us, it is important that you learn
the command line interface as well.
There is an incredible demand for professionals in software development. After taking this course one should be able to write applications in the Java language.
There are many more capabilities of the Java language that will not be discussed in class, if you are interested I can recommend several resources for you to look
at.
Objectives:
• Develop an understanding of the object oriented concepts of encapsulation, inheritance and polymorphism
• Learn about the Java Language and the Java Runtime Environment
• Learn how to build Graphical User Interfaces (GUI)
• Develop an understanding of how event handling works in Java
• Learn basic UML notation (class diagrams, sequence diagrams, state machine diagrams)
• Introduction to object oriented design patterns
Class/General: We have a lot of information to cover. It is vitally important that every student watch every assigned video at least once before they get to class.
This is a di!cult subject that requires reading and practice. If you do not do both, you will not pass this course. I expect the student to come fully prepared to
participate in class discussions, ask questions and see me outside of class for help if necessary.
This will be a '%ipped classroom'. In a normal classroom, students come to class to hear lectures from the professor and work on homework outside of class. In a
COURSES GROUPS RESOURCES Mark Mahoney
Syllabus | Schoology https://lms.carthage.edu/page/5205476278
1 of 2 9/8/21, 2:32 PM
%ipped classroom, the professor posts video recordings of the lectures that students watch outside of class and class time is used for hands on lab time. I will be
providing links to youtube videos and I will expect every student to watch the required videos before class.
Youtube has a great feature where you can speed up a video by 1.5 to 2 times its original speed. I highly suggest you speed up my videos (I am a slow talker). Click
on the settings (gear icon) in any video and select 'speed' to choose a new speed. I would suggest 1.5 to begin with but you may want to re-watch a video at 2X
speed.
Computer Lab: I encourage you to bring a laptop computer into class if you have one. However, do not surf the web when you should be working on
labs/assignments. The lab machines will have the software needed to write programs but I strongly encourage you to install the software on your personal
machine.
Class Web Site: I have created a website for this class to better distribute information. The website will provide each student with access to his or her grades, class
announcements and other resources. The website can be accessed by going to my.carthage and selecting eLearning.
Homework Assignments:
I will not accept late homework but I will give partial credit for incomplete work. Zip your entire project folder and send it using the digital drop box. This semester
every student will get one 'no questions asked' three day extension and one 'no questions asked' seven day extension for the assignments.
Your code must be well commented before I accept it. I will deduct points for uncommented code.
Read the requirements for each assignment carefully. Ask questions on any portion that is not clear.
Students are encouraged to help each other while learning the material. The exchange of ideas enhances the learning process. However, the #nal product must be
your own. Plagiarism of assignments and cheating on exams are not permitted. Any student caught doing so will automatically receive a failing grade. You can #nd
the academic honesty guidelines here (https://www.carthage.edu/community-code/academic-concerns/academic-honesty-guidelines/) and the consequences for
violating them here (https://www.carthage.edu/community-code/academic-concerns/penalties/).
Carthage College strives to make all learning experiences as accessible as possible. If you anticipate or experience academic barriers due to your disability
(including mental health, learning disorders and chronic medical conditions), please let me know immediately so that we can privately discuss options.  To
establish reasonable accommodations, you also need to register with Diane Schowalter in Learning Accessibility Services (dschowalter1@carthage.edu).
Syllabus | Schoology https://lms.carthage.edu/page/5205476278
2 of 2 9/8/21, 2:32 PM