CS 110: Introduction to Computer Science

Spring 2009 Course Syllabus

Northern Arizona University • College of Engineering and Natural Sciences • Department of Computer Science

Course Information

Catalog Description: Introduction to algorithmic thinking and object-oriented programming for students with little or no prior programming experience. Emphasis on graphical programming, object-oriented problem solving, and basic Java concepts.
Broad Topics: Intro to Computer Science, algorithms, object-oriented and structured programming, Alice, and Java with Greenfoot and BlueJ
Prerequisites: None
Corequisites: MAT 125 or better
Skill Level: Introductory
Credit Hours: 3
Meeting Times: (LEC 9855) 9:10-10:00 MWF, Engineering Bldg Room 120
Final Exam: Wednesay, May 6, 7:30-9:30
Required Text:
  • Dann, Cooper, & Pausch, "Learning to Program with Alice", 2nd. Ed. Prentice Hall. ISBN-13: 978-0-13-208519-9
Web Page: http://www.cefns.nau.edu/~ap27/cs110

Instructor Information

Instructor: Abe Pralle (Prah-lee), M.Eng. CSE
Office Hours:
Engineering Bldg. Rm 322-L
MWF 3:00-4:00
TuTh 10:00-11:30
Other times by appointment.
Email: Abe.Pralle (at) nau.edu
Phone: 523-8882 (email preferred)
NAU Address: Box 15600
Flagstaff, AZ 86011

Course Description

Computer Science is no more about computers than astronomy is about telescopes.
--Edsger Dijkstra

Computers are - without a doubt - one of the most important, most pervasive, and yet least understood and grossly underutilized inventions of the human race. Their raw power is staggering - they have the ability to perform billions of calculations on billions of numbers per second.

What do you do with that kind of power? You solve problems. Math problems, including physics, chemistry, biology, and astronomy. Data management problems, including data storage, retrieval, and transmission. Analysis problems, including statistics, data mining, projections, and simulations.

Few people know how to take advantage of that computation power directly, instead relying on software that others have written - that computer scientists have written, to be exact. Computer scientists aren't interested in computers per se - we're interested in using computers as tools to solve mathematical, organizational, and analytical problems. Computer scientists are problem solvers.

Being a computer scientist requires thought and imagination. You must be able to comprehend the logical implications of every programming decision, to anticipate what the structure of a data model will be like after every step of a long sequence of operations, and to develop new techniques to solve new problems. These are skills that anyone can learn. Developing and honing these skills is an important part of becoming a Computer Scientist.

This course exposes you to the modern object-oriented programming languages of today and teaches you how to use them. At the same time it cultivates the critical thinking skills that can be used to understand and solve problems of all kinds. All of this is set in a context of digital animation, gaming, and simulation.

By the end of the semester you should be able to:

Liberal Studies

The mission of the Liberal Studies Program at Northern Arizona University is to prepare students to live responsible, productive, and creative lives as citizens of a dramatically changing world. To accomplish the mission of Liberal Studies, Northern Arizona University provides a program that challenges students to gain a deeper understanding of the natural environment and the world's peoples, to explore the traditions and legacies that have created the dynamics and tensions that shape the world, to examine their potential contributions to society, and thus to better determine their own places in that world.

CS 110 supports this mission by helping you:

CS 110 is a course in the Science Distribution Block and supports the intent of that block by:

Through the program students acquire a broad range of knowledge and develop essential skills for professional success and life beyond graduation. In addition to discipline-specific skills, this course will emphasize critical thinking, an essential skill defined in the University's Liberal Studies Program. By completing all the coursework in the class, you will meet all three learning outcomes specifically linked to critical thinking:

Schedule

Week 1Computer concepts
Week 2Algorithmic thinking
(no class Jan 19)
Week 3Alice - objects and methods
Week 4Alice - control structures and functions
Test 1 (Feb 6)
Week 5Alice - properties and techniques
Week 6Alice - custom methods
Week 7Alice - object-oriented thinking
Week 8Alice - object state
Test 2 (Mar 6)
Week 9Greenfoot - Java syntax

Spring Break: March 16-20
Week 10Greenfoot - Java programming
Week 11Greenfoot - tile game framework
Week 12Greenfoot - tile game framework
Test 3 (Apr 10)
Week 13BlueJ - basic objects
Week 14BlueJ - advanced objects
Week 15BlueJ and wrap-up
Week 16 Final Exam (May 6, 7:30am)

Coursework

The coursework includes the following assignments and tests:

Your class grade is based on the standard scale of points earned: 90%=A, 80%=B, 70%=C, 60%=D, below 60%=F. No grades are curved or dropped, though there are opportunities for extra credit. Projects are individual effort.

Assignments are due in-class on the due date. Graded assignments and tests are handed back during class.

Extra Credit

There will be a number of extra credit possibilities that involve doing extra work on assignments. Besides that, you can also get +4 points on any project by turning it during class in at least a full class period early.

Late Policy

Project and homework assignments are accepted up to a week late at a 40% point penalty.

If you miss a test or know you will miss a test, discuss the matter with me as soon as possible.

Attendance & Absentee Point Reductions

Regular attendance is expected. Don't be late, and don't leave until class is dismissed. Roll isn't taken, but if you are not present to receive a graded assignment or test, your score will be reduced by 10% of the points possible on the work. Notify me ahead of time if you know you're going to have to miss class to avoid the point penalty.

Failed Final and Easy Final Policies

Lectures and the Book

The lecture topics follow the same general outline as the book. However, the lecture complements the book rather than being a mirror of it. If you only read the book or only pay attention to the lecture you're likely to end up missing some key concepts. To get the most from the class, read each chapter before we discuss the corresponding topic in the lecture, then use the lecture as an opportunity to reconsider the key points of the material and ask questions on anything you're confused on.

Plagiarism and Cheating

Grades are a way to motivate students and to evaluate students' mastery of a subject and their ability to get work done. The grades you get are not themselves truly important, but instead are representative of your knowledge, capabilities, and work ethic, and those are the things that matter.

If you plagiarize source code, fabricate results, make fraudulent claims, or attempt to cheat in any way, you are misrepresenting yourself, your level of understanding, your capabilities, and your ability to accomplish things. It is dishonest and unethical.

Anyone who plagiarizes, copies, fabricates, or cheats will at the least receive a zero on that assignment or test.

Consulting with others and using their advice on projects is fine. However, the work you submit should be your own work that you thoroughly understand and are entirely responsible for.

Web Page

Most assignments and handouts will only be available on the class web page at http://www.cefns.nau.edu/~ap27/cs110 - they will not be handed out in class. Projects will be posted at least a week before they're due - usually the next project will be posted on the same day as the old project is due. Homework assignments will be posted by the Friday of the week before they're due. Any clarifications, corrections, and announcements will be posted on the web page.

Computer Access

The projects and many of the homework assignments are programming problems requiring a computer to solve. You can use your NAU computer account to access lab computers and our Unix computer remotely.

We will not be spending any class time in the computer lab. You are responsible for going to the lab on your own time or working from home to complete the assignments. You can use the general lab in room 106, the PC lab in room 317, the computers in the building's Internet Cafe, or any of the various PC labs around campus.

The Engineering Building's computer lab hours are as follows: M-Th 10am-8pm, F 10am-5pm, Sun 4pm-10pm. The Internet Cafe is open 24/7 with keypad access from the outside. If you are an Engineering student you can get a keycode at the Engineering front desk - I'm afraid this option isn't available to non-Engineering majors.

Most of your questions on general computer setup can be answered at the following web pages:

University Policies

There are a number of university policies that govern your education and safety that all students should be aware of. These are:

You will find a complete description of each policy here:

http://www.cefns.nau.edu/~ap27/policies.html