Computer Science
110/L - Fall 2009
Introduction to
Algorithms and Programming
Instructor: Bob Lingard
Office: JD 4417
Office
Phone: 677-3825
Email
Address: rlingard@csun.edu
Web
URL: http://www.ecs.csun.edu/~rlingard
Office
Hours: Monday 2 - 3 PM, Wednesday
2 – 3 PM & 5 – 6 PM, and by appointment
Prerequisites: Grade of C or better in Math 102
or 104 or 105 or Math 150A or MPT I score of at
least 27 or passing score
on or exemption from the ELM
Corequisites: Comp
110L, Math 104 or 105 or 150A
Text: Introduction to
JAVA™ Programming, Seventh
Edition, by Y. Daniel Liang,
Pearson/Prentice Hall, 2009 (ISBN 10:13-604258-9, ISBN 13:
978-0-13-604258-7)
Ticket#
14539 Lecture meets MW 11:00 AM – 12:15
PM in JD 2210
Ticket#
14540 Lab meets MW 12:30 PM – 1:45 PM
in JD 2210
Course
Description
Introduction to algorithms, their representation, design,
structuring, analysis and optimization.
Implementation of algorithms as structured programs in
a high level language.
Course
Objectives
A
successful student will be able to:
1.
Demonstrate
knowledge of computers and operating systems, including the editing and
compilation processes.
2.
Translate
human-readable algorithms represented by pseudo code, flowcharts or flow block
diagrams into Java.
3.
Write
and test Java programs using the 4 fundamentals of programming: sequence,
choice, loop, and methods.
4.
Construct
programs that require several methods and good knowledge of passing parameters.
5.
Demonstrate
the knowledge of the basic steps of software development: problem statement,
program development, testing and documentation.
6.
Solve
problems with one and two dimensional arrays.
7.
Use
basic sorting and searching methods.
8.
Apply
the class String.
9.
Read
and write text files. Demonstrate
practical use of Exception Handling.
10. Recognize the role of
Object Oriented Programming in software development. Run the examples and
exercises studied in the course.
11. Understand the ideas
of Polymorphism and Inheritance.
SPECIAL
NOTE
For
the past 10 years the CSU system has suffered chronic under-funding. This
year, because of the state economic crisis, the budget cuts ($584 million) are
the worst in decades. The CSU administration is attempting to manage
these cuts by dramatically increasing student fees and by furloughing almost
all University employees, including faculty, staff, and administrators.
A furlough means mandatory un-paid days off for employees; there
are 18 of these this year for the faculty, nine per semester. As a professor, I will give you advance notice
of the days when class will be canceled because of furloughs.
For
students this means that on some days the campus may be closed. The
library may have shorter hours and many campus support services are likely to
be decreased or eliminated. It will, for example, be more difficult to get
signatures to meet deadlines. Additionally, some classes you need may have been
cut from the class schedule or are full. These cuts have consequences,
especially for you.
Grading
The
same grade will be given for both the lecture and laboratory portions of the
course. An absolute grading system will
be used, where 90% is required for an A, 80% for a B, 70% for a C, 60% for a D,
and anything below 60% is failing.
Pluses and minuses will be given for grades within 3 percentage points
of the dividing marks. For example, a
final total which is 80% or more but less than 83% would correspond to a letter
grade of B-, a total of 77% or more but less than 80% would correspond to a C+,
etc. The final grade will be based on
the following:
Quizzes (11) 10%
Midterm Exams (2) 20%
Final Exam 20%
Lab Programming
Projects 40%
Homework 10%
Late
work will be accepted without penalty only if some compelling reason is
provided (preferably in advance) justifying the lateness. Without such a justifiable excuse, late work
will be penalized 5% for each calendar day that it is late.
Plagiarism
and Academic Dishonesty
Plagiarism
(intentionally or knowingly representing the words, ideas, or work of another
as one’s own) or any other form of academic dishonesty will not be tolerated. Students who are guilty of such dishonesty
will receive no credit for the given assignment or exam and will not be allowed
the opportunity to redo the work in question.
Quizzes will consist of several multiple choice questions on the reading material. There will be a quiz nearly every week. The lowest quiz grade will be dropped. The quizzes will be given during the lab sessions. The exams may be open book or closed book, or a combination of the two.
Lab projects are an important part of the
course and will be given to apply and reinforce the material discussed in the
lectures. Discussion and collaboration
with other class members on individual assignments is permitted, and even
encouraged, to the extent that said collaboration is a fair and equitable
exchange of ideas. That is, one
individual should not be doing all the work and sharing it with others. It is permissible to ask other students for
help, but it is not permissible to copy the results of others. If several students collectively solve a
problem, each should write up the results in his or her own words.
Tentative
Outline
1.
Introduction
to computing
What is programming?
Computer architecture
and operating systems
Java and The World Wide Web
2.
Basic
programming concepts
Identifiers and variables
Assignment statements
Constants, data types, and numeric operations
Programming style
Debugging
3.
Selections
Boolean data type and operations
if statements
switch statements
Conditional expressions
4.
Loops
The while
loop
The do-while
loop
The for
loop
5.
Methods
Defining a method
Invoking (calling) a method
Passing parameters
6.
Arrays
Declaring arrays
Passing/returning arrays to/from methods
Searching and sorting arrays
Two-dimensional and multidimensional arrays
7.
Introduction
to Objects and Classes
Defining classes for objects
Constructors
Reference variables
Passing objects to methods
8.
Strings
and Text I/O
The String
Class
The Character
Class
The
File Class
File input and output
9.
The
Object-Oriented Paradigm
The scope of variables
The this
reference
Class abstraction and encapsulation
Object-oriented thinking
Inheritance and polymorphism
10.
Exception
Handling
Overview of exception handling
Advantages of exception handling
11.
Binary
I/O
How I/O is handled in Java
Text I/O vs. binary I/O
12.
Recursion
Problem solving using recursion
Recursion vs. iteration