Fall 2016 CS210 Syllabus


Course Outcomes

Students successfully completing this course will:

Breaking News:

You must apply for a Linux account in the CS department and a link to the course directory for this course. Please read the instructions at: How do I get a UNIX account for my course?. If you have any questions about the apply process, please contact the operators in the CS Dept. Linux/PC Lab.

After you have an account, you can login using any Linux system in the Linux/PC lab room with your account ID and the password you selected during the apply process. You will also be able to login on the PC's in the lab with your Linux account ID and a default password that your instructor will provide to the class. When you are logged in on a PC in the lab or using your own PC, you can use the SSH communication package to remotely login to the Linux system "users.cs.umb.edu".

Your email address will be your accountname@cs.umb.edu and it will be included in the course email broadcast list. You are responsible for receiving any email the grader or I broadcast to the list. You will need to be able to use your Linux account for two things. Follow these instructions: Introduction to Linux Use

With funding from the Student Success Center, we will make supplemental Instruction (SI) study sessions available this semester. Wes Drew (wesdrew@gmail.com) will lead these sessions on Tuesdays and Thursdays at 11:00AM-12:15PM in W-01-0052. You may attend as many or as few sessions as you need. However, the SI leader will take attendance and I will be including a small amount of extra credit towards final grades for attendance at SI sessions.

Since I am retired and only teaching part time now, I don't have a permanent office. Check my home page for each week's office hours schedule and location.

Course Sections

Days Lecture Time Location Lecture Instructor Lab Day/Time Lab Location Lab Teaching Assistant
3 T-Th 12:30-1:45PM M03-0430 Bob Wilson Tues 11:00AM-12:15PM Healey Purple Lab (H-UL-0042) Ting Zhang (ting@cs.umb.edu)
4 T-Th 12:30-1:45PM M03-0430 Bob Wilson Thurs 11:00AM-12:15PM Healey Purple Lab (H-UL-0042) Ting Zhang (ting@cs.umb.edu)

Textbook

Lab Supplies and Development Tools

To use Dr Java and the Oracle JDK on the PCs in the Healey Labs, you need your own USB memory stick to save your lab and project files. Please bring it to your lab sessions starting in the second week.

To do your lab and project homework on your own Windows PC, download the Java Run-time Environment and the Dr Java IDE as soon as possible. Here are some instructions that may be helpful for your installation on your own PC: Software Tools Installation Tips

Access to our Linux Systems

To access our Linux systems for either an interactive terminal or file transfer window, you must use a secure login process on your PC.

For a Windows system, you can download, install, and use this software: SSH Communications Software Download. Once you get the program installed, open it and select either a terminal session or a file transfer session. In the initial popup dialog box, enter the Linux host name "users.cs.umb.edu", your Linux account ID, and leave the rest of the field's default values. In the second popup dialog box, enter your password. Use the program's Help menu to get more detailed instructions for use.

If you have a MacIntosh OS/X, you do not need to download a program. To open a terminal window and use the command "ssh -2 -l newname users.cs.umb.edu", where newname is your UMB Linux username, and "-l" uses a lowercase L. Another useful program is a FREE program to transfer files via secure ftp (SFTP) called Fugu, a Mac OS X compatible program, available for free download as a universal binary, which means it will work on the older IBM/PowerPC processors as well as the latest Intel processors found in Mac computers. The program is made available by the University of Michigan, Research Systems Linux Group.

Other Useful References


Class Schedules, Reading Assignments, and Lecture Notes

Class T-Th Text 4th Ed. Lecture Notes File
01 09/06 1.1-1.2 Welcome, Introduction to Java and Software Development Tools .ppt
02 09/08 App A Introduction to OOP and UML .ppt
03 09/13 App B
Project 1
Java for Python Programmers (Basics), Intro to Project 1 .ppt
04 09/15 App B Java for Python Programmers (OOP), JUnit Testing .ppt
05 09/20 2.1-2.4
HTML Tutorial
Algorithm Efficiency, Big O Notation, and Javadoc .ppt
06 09/22 3.1-3.5, 7.1-7.2 Abstract Data Types, Collections/Generics, and Iterators .ppt
07 09/27 3.6-3.8, 7.3 Stack ADT, Stack Data Storage Strategies: Static Array .ppt
08 09/29 4.1-4.3, 4.6,7.4 Stack Data Storage Strategies: Dynamic Linked List .ppt
09 10/04 Practice Exam Study of Project 1 Solution, Review for Exam .ppt
10 10/06 Exam #1: Covers up through Class 9
11 10/11 3.4, 4.4-4.5
Project 2
Stack Applications, Intro to Project 2 .ppt
12 10/13 5.1-5.8
9.3
Queues, Queue Applications, Ticket Counter Simulation Code .ppt
13 10/18 5.1-5.8
9.3
Queue ADT, Queue Storage Strategies: Dynamic Linked List, Static Array, Deque .ppt
14 10/20 8.1-8.2 Recursion, More on Project 2 .ppt
15 10/25 8.3-8.4 Recursion (Continued), Example Code .ppt
16 10/27 6.1-6.7 Lists Tournament Maker, Josephus Problem: Josephus Demonstration Code .ppt
17 11/01 Practice Exam Study of Project 2 Solution, Review for Exam .ppt
18 11/03 Exam #2: Covers Classes 11 through 17
19 11/08 9.1-9.2
Project 3
In-Place Searching and Sorting, Intro to Project 3
Demonstrations: Sorting Algorithms Visualized
Sorting Algorithms as Folk Dances
Another Animated Sorting Demonstration
.ppt
20 11/10 10.1-10.7 Trees, Demonstration: Tree Traversal .ppt
21 11/15 11.1-11.4 Trees and Binary Search Trees .ppt
22 11/17 11.1-11.4
Project 4
Study of Project 3 Solution, Binary Search Trees (Continued)
Introduction to Project 4
.ppt
23 11/22 11.5-11.6 AVL Trees, Red/Black Trees, Hash Tables .ppt
11/24 Thanksgiving
24 11/29 12.1-12.3 Heaps and Priority Queueing, Demonstration: Priority Queue .ppt
25 12/01 12.4-12.5 Heaps and Sorting, Demonstration: Heap Sort .ppt
26 12/06 13.1-13.6
Practice Exam
Sets and Maps, Review for Exam .ppt
27 12/08 Exam #3: Covers Classes 19 through 26
28 12/13 Practice Final Study of Project 4 Solution, Review for Final Exam, Course Evaluation .ppt
Finals Week - Optional Final Exam: Covering the Entire Course

Homework: Labs and Projects

Schedules and Assignments

Each lab consists of a pre-lab written assignment, a Java programming project, and a lab report due at the beginning of the following lab session. Each homework project will be a more extensive Java programing project with a written report.

A description of the work required for each homework project is available via the links below.

Week T-Th Project Assignment Due
09/05 No Lab
09/12 Lab 1
09/19 Lab 2
09/26 Lab 3
10/03 No Labs
(Exam Week)
Project 1 Due by 10:00AM on 10/04
10/10 Lab 4
10/17 Lab 5
10/24 Lab 6
10/31 No Labs
(Exam Week)
Project 2 Due by 10:00AM on 11/01
11/07 Lab 7
11/14 Lab 8
11/21 Tues: Lab 9
Thurs: No Labs (Holiday)
Project 3 Due by 10:00AM on 11/17
11/28 Tues: Lab 10
Thurs: Lab 9
12/05 Tues: Lab 10
(for Section 4)
Thurs: No Labs
(Exam Day)
12/12 No Labs Project 4 Due by 10:00AM on 12/13

Project Turn-in

To turn in your project assignments, FOLLOW THESE DIRECTIONS EXACTLY. Use Secure File Transfer to open a file transfer window to your Linux account. You should see a cs210 folder (sub-directory) in your home directory. (If you do not see a cs210 folder in your home directory, please notify your instructor immediately.) Double click on and open your cs210 folder. Drag and drop your entire project folder from your PC hard drive or your memory stick to your cs210 sub-directory. Be sure to keep your project folder name the same as it was in the ZIP file you downloaded at the beginning of the project.

Please note that for all projects, the memo.txt file in the project folder that you upload to the Linux system MUST BE NAMED memo.txt (lower case) AND BE A PLAIN TEXT FILE NOT A WORD OR RTF FILE. On a Windows PC, I recommend that you use Notepad to create this file. On a MAC, you must use a suitable program for creating a plain text file.

Note: You turn-in your lab reports as hard copy at the following lab session - not via the Linux system.

Project Graders


Grading Policy:

Exams, Labs, and Projects

Course Withdrawal and Pass/Fail Deadline: Weds, 11/23/2016

You will get grades back for two exams and the first few homework assignments before the Registrar's withdrawal and pass/fail deadline so that you will know where you stand in time to make that decision.

Incompletes

Incompletes are at your instructor's sole discretion and only for passing students with a good, well-documented reason for not being able to complete the work! Missing exams or homework with an otherwise failing grade will NOT result in an incomplete!


Accomodations:

Section 504 of the Americans with Disabilities Act of 1990 offers guidelines for curriculum modifications and adaptations for students with documented disabilities. If applicable, students may obtain adaptation recommendations from the Ross Center for Disability Services in the Campus Center (617-287-7430). The student must present these recommendations and discuss them with each professor within a reasonable period, preferably by the end of Drop/Add period.

Student Conduct:

Students are required to adhere to the University Policy on Academic Standards and Cheating, to the University Statement on Plagiarism and the Documentation of Written Work, and to the Code of Student Conduct as delineated in the catalog of Undergraduate Programs. The Code is also available online at: Code of Student Conduct

In particular, some students have been caught posting their lab/project assignments or solutions on public websites requesting or offering to pay for outside assistance. This is unauthorized collaboration which is academic dishonesty. In addition, because it is publicly posted, it allows other students to find their code - enabling them to copy it - which is also academic dishonesty. I consider any public posting by students of any homework assignments or solutions on the internet to be prima facie evidence of academic dishonesty. I will identify the students involved and sanction them.