ABDULLAH GUL UNIVERSITY DEPARTMENT OF COMPUTER

advertisement
ABDULLAH GUL UNIVERSITY
DEPARTMENT OF COMPUTER ENGINEERING
CENG101 ART OF COMPUTING
Course
Description
This course is far more than just learning to program. It focuses on some of
the "Big Ideas" of computing, such as recursion, abstraction, and design.
During this course students will learn beautiful applications of computing
that have changed the world and where it will go in the future. The course
will introduce the fundamental concepts and techniques of computing using
a graphical programming language SNAP and the application-oriented
programming language Java.
Course
Objectives
The course aims to teach the essentials of computing to students who have
little or no background in programming. The students will learn how to
write basic computer programs using SNAP and Java.
.
The students who finish this course will be able to
 Define fundamental concepts of computing
 Describe variables, assignment statements, data types, type
conversions, conditionals, loops, and arrays
 Describe elements of modular programming and design issues for
functions and methods
 Develop graphical programs with SNAP
 Develop computer programs with Java
 Demonstrate the ability to solve a computing problem by applying
the concepts learned in class
 Design a simple computer game
Learning
Outcomes
Textbooks


Other
References





Meeting Times
SNAP Reference Manual, Brian Harvey and Jens Mönig
http://snap.berkeley.edu/SnapManual.pdf
Java How to Program (early objects), Paul Deitel and Harvey
Deitel, 9th Edition, Prentice Hall, 2011.
CS10 Beauty and Joy of Computing
https://inst.eecs.berkeley.edu/~cs10/fa14/
Introduction to Programming in Java, MIT OpenCourseWare
http://ocw.mit.edu/courses/electrical-engineering-and-computerscience/6-092-introduction-to-programming-in-java-january-iap2010/index.htm
Eclipse and Java for Total Beginners
http://eclipsetutorial.sourceforge.net/totalbeginnerlessons.html
Introduction to Programming in Java: An Interdisciplinary
Approach, Robert Sedgewick and Kevin Wayne, Addison Wesley,
2007 http://introcs.cs.princeton.edu/java/home/
Think Java, How to Think Like a Computer Scientist, Allen B.
Downey http://www.greenteapress.com/thinkapjava/thinkapjava.pdf
Lecture Hours:
Laboratory Hours:
Recitation Hours:
Evaluation
Criteria
Quizzes
Labs
Homework
Project
Midterm 1
Midterm 2
Final
5%
15%
10%
20%
15%
15%
20%
Attendance
Policy
You should attend at least 80% of the lectures and labs. Otherwise you will
not to be able to take the final exam will automatically fail the course.
Classwork
Quizzes
The quizzes will occur during the first hour of the week. They will cover
reading materials that are made available during the class.
Labs
Each week you will work on a self-paced lab exercise. At the end of each
lab session you must show your work to the TA and get checked-off. For
SNAP
assignments
we
will
follow
the
material
from
https://inst.eecs.berkeley.edu/~cs10/labs/course/berkeley_bjc.html?
Java labs will be announced later during the course.
Homework
Homework assignments can be more involved than the labs. You can
discuss the homework with other students but your final solution should be
developed alone.
Project
You will work on a SNAP or Java project together with one partner or
alone. Projects mainly include developing a computer program that solves a
given problem. There can be many project topics such as designing a
computer game or programming a robot.
Midterms
The first midterm will cover SNAP related material and the second midterm
will mainly focus on concepts learned about Java. The exams will require
you to write a program on lab computers and solve problems on a paper.
Final Exam
The final exam will cover everything learned during the class. Similar to the
midterms, it will include a programming portion and a written portion.
Lectures
The first hour of the lectures will be allocated to quizzes and powerpoint
presentations. In the second and third hours, we will apply the concepts
learned during class by doing programming exercises.
Weekly
Schedule
Week 1: Introduction to SNAP
Lab 1: Kaleidoscope
Week 2: Abstraction, Repeating Commands, Making Your Own Blocks
Lab 2: Draw a Flower, Using Randomness
Week 3: Conditionals, Practice with Predicates
Lab 3: Number Guessing
Week 4: Functions, Innovation and Abstraction, The Max Block, Input
Types, Testing Your Code
Lab 4: Programs With Multiple Stripes, The GO Team
Week 5: Lists, Programming Paradigms
Lab 5: Hangman, Tic-Tac-Toe
Week 6: Algorithms, Algorithmic Complexity, Timing Experiments
Lab 6: Trash or Treasure, Improving Number Finder, Evil Hangman
Week 7: Introduction to Computers
Lab 7: Finch Robot Lab
Week 8: Introduction to Classes, Objects, and Methods
Lab 8: Introduction to Java Applications and Elementary Programming
Week 9: Control Statements: Selections
Lab 9: Dialog Boxes
Week 10: Control Statements: Repetitions
Lab 10: Making Simple Drawings
Week 11: Control Statements: Formulating Algorithms
Lab 11: Colors and Filled Shapes
Week 12: Methods and Modules
Lab 12: Graphics
Week 13: Methods and Java API Packages
Lab 13: Simulation in Science, Climate Change, Global Warming
Week 14: Arrays
Lab 14: Simulation in Bioinformatics
Instructor
Assist. Prof. Zafer Aydın
Phone:
Email: zafer.aydin@agu.edu.tr
Office:
Office hours:
Assistants
Ahmet Özdil
Phone:
Email: ahmet.ozdil@agu.edu.tr
Office:
Serkan Seven
Phone:
Email: serkan.seven@agu.edu.tr
Office:
Oğuzhan Ayyıldız
Phone:
Email: oguzhan.ayyildiz@agu.edu.tr
Office:
Academic
Cheating is strictly prohibited and is not allowed in quizzes, homework
Honesty
assignments, labs, midterms and final exam. You and your project partner(s)
are allowed to return a single project report. You will automatically get a
zero grade as a penalty for cheating and for a second offense you will be
dismissed from the university.
Download