cos 160/170 grader/tutor - university of southern maine€¦ · lab submittal (cos 170) labs are...
TRANSCRIPT
Syllabus
COS160 : Structured Problem Solving
Spring 2020
Professor: Bruce MacLeod (www.cs.usm.maine.edu/~macleod)
Room 222 Science Bldg.
email : macleod at maine.edu
Tel: 780-4285
Office Hours: M 10:00 AM - 11:30 PM
W 9:15 AM - 10:00 AM or by app\ointment
COS 160/170 Grader/Tutor:
Nickolas Littlefield
email: nickolas.littlefield at maine.edu
Office: 103 Science (upper level) : Monday : 11:15-2:30
Wednesday : 12:00-2:30
Other student office hours: See All Tutor Hours
Course Objectives:
In this course, the student will demonstrate
significant problem solving skills.
considerable expertise in Java
the ability to apply appropriate mathematics to computer programs
the ability to analyze a problem, and identify and define the computing requirements
appropriate to its solution
the ability to communicate well with others using written communication.
All of these outcomes will be evaluated during the course.
Textbook:
zyBooks: USM COS 160 MacLeod Spring 2020 Programming in Java, This is an interactive online
textbook that you subscribe to at zybooks.com. You can begin subscribing on 1/6 and will have access
through 6/2.
1. Sign in or create an account at learn.zybooks.com
2. Enter zyBook code MAINECOS160Spring2020
3. Click Subscribe
DRAFT
Computer Labs:
· The software for this course is installed in all USM computer labs. You will be using a Java
Development Kit (JDK) and the Eclipse Integrated Development Environment.
· When you work in the labs, a USB flash drive to store your work can be helpful. Alternatively, you can
use email to transfer your code from the lab machines.
· For convenience you will want to have your own computer. Any Windows, Mac, or Linux computer is
fine.
· The software is available for free. Instructions for downloading and installing the software are
available at: Setting up Eclipse on Home computer
Tutoring:
Tutoring will be available on the upper deck in room 103 Science. Here is the tutor schedule.
Grading:
Class attendance, participation, in class quizzes (10%)
Programming Assignments (45%)
Midterm (20%)
Final (25%)
You will receive a separate grade for the COS 170 Labs (10% for each lab)
Preparation before each class:
The readings for each lecture are listed on the syllabus. You are expected to do the readings before the
lecture and to complete at least 80% of the Participation Activities and Challenge Activities before class.
The purpose of these activities is to reinforce the concepts you have been learning and to help you
assess if you understand the lesson or if you need to review it further. We will have periodic in-class
quizzes to assess your understanding of the material.
Program Submittal.
Homeworks are due at the beginning of class on the day the homework is due. Grading
guidelines
The homework grade will be reduced by 10% for each class meeting it is late.
Emailed assignments will not be accepted
Programs must be the work of one student, see Class Policies.
DRAFT
Lab submittal (COS 170)
Labs are due one week after the lab is scheduled in the COS 170 class.
Students should hand in the lab at the beginning of the COS 170 lab on the day it is due.
Labs are marked down 10% for each 170 lab meeting they are late.
Lab partners may hand in either just one lab write up or two.
Lab solutions submitted by email will not be graded.
Software:
The free Java and the Eclipse system will be used. Instructions for installing the course software on your
personal computer are at Setting up Eclipse on Home computer
Other Resources
Online Java Documentation
Java tutorial videos on youtube
Oracle’s Java Tutorial on Learning the Java Language is
at http://docs.oracle.com/javase/tutorial/java/.
An article about paired programming
Book used in older version of class (used in COS 161) . Many students prefer this text:
Reges and Steppe, Building Java Programs: A Back to Basics Approach, Fourth Edition, Addison-
Wesley Pub
Teamwork on Programs
It is acceptable to work with other students in the analysis, design, and debugging phases of your
programming assignments. However, unless it is a team project, do not write code as a team. Do not
copy your code from or for another student. Please list the students with whom you collaborated, and
the type of help you gave or received in a comment at the top of your program. Plagiarism will result in
disciplinary action that may involve failure of the course.
Electronic devices : are not allowed (computers, phones, etc) in our class time. They are a significant
distraction for you, your classmates, and myself. Multitasking does not work and there is considerable
body of research to support this (starting links from a spectrum of sources: Multitasking damages your
brain and your career, Multitasking does not work, Modern World is bad for the Brain, The Distracted
DRAFT
Mind ) BTW, it is quite easy for an instructor to see the head dip & look into the lap holding the cell
phone.
Reading, assignment, and exam schedule
January
1/22
Introduction : Computing, People, Work, Questions, and Course
Reading : Using Zybooks
Optional lab ! Eclipse on laptop, Lab 1:
Java, keyboard/screen I/O, commenting
Reading : Sections 1.1-1.6
Lab 1 & help putting Eclipse on laptops
1/29
Algorithms, example programs
Reading : 1.7-1.12
Lab 1 and help putting Eclipse on laptops
February
2/3 Variables, Expressions, Types
Reading : Sec. 2.1-2.7
Assignment #1 Due
Lab 2
2/5 Floating Point, Constants, Math methods
Reading : Sec. 2.8-2.15
Lab 2
2/10 Graphics (taught in lecture & lab)
Lab 3
2/12 Characters, strings, random numbers
Reading : Sec. 2.16-2.23
Assignment #2 Due
Lab 3
2/17 No Class : President's day 2/19
if/else, relational operators, switch
Reading : Sec. 3.1-3.10
No lab
2/24
Boolean, expr alternatives & nuances
Reading : Sec. 3.11-3.15
Assignment #3 Due
Lab 4
2/26
String and char comparisons
Reading : Sec. 3.16-3.20
Lab 4
March
DRAFT
3/2 Midterm Review video
Class attendance optional : Nick will
answer questions and collect Assignment
4.
Assignment #4 Due
Lab 5
3/4 Midterm Sample Questions are in the
content section of Blackboard
Lab 5
3/9 While loops
Reading : Sec. 4.1-4.4
Lab 6
3/11 For loops, nested loops
Reading : Sec. 4.5-4.9
Lab 6
3/16 Spring Break 3/18 Spring Break
3/23
break, continue, examples
Reading : Sec. 4.10-4.14
Lab 7
Assignment #5 Due
3/25
Arrays
Reading : Sec. 5.1-5.4
Lab 7
3/30 Array algorithms
Reading : Sec 5.5-5.9
Lab 8
Assignment #6 Due
April
4/1
Two-dimensional arrays, examples
Reading : Sec. 5.10-5.12
Lab 8
4/6 Methods, parameters, return
Reading : Secs 6.1-6.6
Assignment 7 Due
Lab 9
4/8 Methods with branches & loops
Reading : 6.7-6.11
Lab 9
4/13 Method array parameters, scope
Reading : Secs 6.12-6.17
Lab 10
Assignment 8 Due
4/15 Method name overloading, examples
Reading : Secs 6.18-6.22
Lab 10
4/20
I/O streams, formatting
Sections 7.1-7.5
Lab 11
4/22 File I/O
Reading : Section 7.1-7.5
DRAFT
Assignment 9 Due
Lab 11
4/27 Objects and Classes
Reading : Sections 8.1-8.4
no formal lab (will be available to help
with Assignment #10)
4/29 Constructors, overloading, references, this
Reading Sections 8.5-8.10
no formal lab (will be available to help
with Assignment #10)
Assignment #10 due
May
5/4
1:30-3:30
Final :
Sample Questions: Sample Questions
are in the content section of Blackboard
Summer
Explorations
HTML, Javascript, Web at
www.freecodecamp.org
DRAFT