CSE 12: Survey of Computer Science
Professor: Glenn David Blank
Phone: 758-4867 E-mail:
"glennblank at google dot
com"
Hours: TWF 2:
Prerequisites: none (that=s
right, none!)
Textbooks: • Glenn D. Blank, Robert F. Barnes and Edwin J. Kay,
The Universal Computer:
A Multimedia
Introduction to Computer Science (McGraw-Hill/Primis,
2004), UC
• Plus supplemental chapters on Java by Profs. Kay and
Blank, Java
Objectives. By the end of this course, you should be able to:
• Understand and converse intelligently about great ideas and issues in computer science, such as virtual machines, virtual memory, and virtual reality; what a programming langauge translator does how it works; what a modern operating system or computer network does, how it works, and how to make effective use of it; how computing affects our privacy, security, job prospects, copyrights, or ethics; the potential and limits of artificial intelligence, etc.
• Understand how software developers solve problems, well enough to analyze, design and implement solutions to simple problems, with use cases, UML and Java.
• Critique a software user interface and create a web page with Flash animation.
• Work in pairs or teams when analyzing or developing software.
• Decide whether you want to learn more about computer science in other courses.
Requirements:
Class
and lab attendance, quizzes and participation: 15%
Homework/software
development assignments:
40%
6-weeks & final exams:
15% and 30%
Date Topic
M 8/29 Objectives; introducing the universal computer; misconceptions
W 8/31 Turing machines, virtual machines
Read UC chapter 1
Fr 9/2 Bits and bytes
M 9/5 Lab: Knobby's World and Turing machines; Problem solving
#1 due 9/6 (UC 1)
W 9/7 Problem solving strategies Read UC chapter 2
F 9/9 Knobby's World
M 9/12 Lab: Knobby's World; Programming language translators #2 due 9/13 (UC 2)
W 9/14 How translators (compilers and interpeters) work Read UC chapter 3
Fr 9/16 Big Picture of Software Development Read Java,
chapter 1
M 9/19 Lab: Java objects and classes in Eclipse #3
due 9/20 (UC 3, Java 0)
W 9/21 Objects and classes
Fr 9/23 Gathering requirements
M 9/26 Lab: Designing a class in Eclipse and Java
W 9/28 Review
F 9/30 6-weeks
exam in class (UC 1-3, Java 1)
M 10/3 Lab: Java method programming (Software
engineering multimedia) Read
Java, chapter 2
W 10/5 Extreme Programming
Read UC chapter
4 #4 due: 10/5 (Java 1-2)
F 10/7
M
10/10 Pacing break
W
10/12
F
10/14
M 10/17 Computer architecture multimedia
W 10/19
From
batch to multitasking operating systems Read UC chapter 6,
sections 1-3
F 10/21 How the Internet works; encryption; viruses Read UC chapter 6, sections 4-5
M
10/24 Operating systems
W 10/26 Analyzing algorithms Read UC chapter 7, section 1
F 10/28 Orders of magnitude and efficicency of algrithms Read UC chapter 7, section 3
W 11/2
F 11/4 HTML
Read UC chapter 8, section 2.1
M 11/7
W 11/9 Graphics
F
11/11 Animation
M 11/14
W 11/16 Present critique of user interface
F
11/18 Action Script Read UC chapter 8, section
M 11/21 Flash and dynamic web design
M
11/28
W 11/30 JavaScript and Dynamic HTML Read UC chapter 8, section 2.3
F
12/2
M
12/5 Artificial Intelligence
W
12/7 Artificial Intelligence
Read UC chapter 10
F 12/9 Wrap-up and review #8 due 12/9 (UC 8.3,9-10)
Final exam