| 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: | |
| |
| Web Page: | http://www.cefns.nau.edu/~ap27/cs110 |
| Instructor: | Abe Pralle (Prah-lee), M.Eng. CSE |
| Office Hours: |
|
| Email: | Abe.Pralle (at) nau.edu |
| Phone: | 523-8882 (email preferred) |
| NAU Address: | Box 15600 Flagstaff, AZ 86011 |
| 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:
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:
| Week 1 | Computer concepts |
| Week 2 | Algorithmic thinking (no class Jan 19) |
| Week 3 | Alice - objects and methods |
| Week 4 | Alice - control structures and functions Test 1 (Feb 6) |
| Week 5 | Alice - properties and techniques |
| Week 6 | Alice - custom methods |
| Week 7 | Alice - object-oriented thinking |
| Week 8 | Alice - object state Test 2 (Mar 6) |
| Week 9 | Greenfoot - Java syntax |
| Spring Break: March 16-20 | |
| Week 10 | Greenfoot - Java programming |
| Week 11 | Greenfoot - tile game framework |
| Week 12 | Greenfoot - tile game framework Test 3 (Apr 10) |
| Week 13 | BlueJ - basic objects |
| Week 14 | BlueJ - advanced objects |
| Week 15 | BlueJ and wrap-up |
| Week 16 | Final Exam (May 6, 7:30am) |
Homework assignments involve research using book and online resources to answer specific questions. They help to fully prepare you for and familiarize you with the current lecture topics. Points are awarded for correct answers.
Programming projects are where you put your knowledge you've learned into practice, transitioning from the theoretical to the practical with hands-on experience. Points are awarded based on the completeness and quality of your work and the thoroughness of your project report.
The tests and the final are an incentive for you to ensure you fully understand the topics being covered - as well as demonstrating that fact to the instructor. Points are awarded for correct answers.
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.
If you miss a test or know you will miss a test, discuss the matter with me as soon as possible.
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.
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:
You will find a complete description of each policy here: