CSCI 140 Course Schedule and Homework
WEEK 1: 1/17 - 1/21
Content: History of Computer Science, Number Systems (chapters 1 and 2).Homework: Read pp. 3-46. Send at least three questions about CS to me by Thursday the 20th.
* Course overview, the "onion" metaphor.
* Binary numbers and their importance in computing, "be a byte" game.
* Other number systems, converting between them, and arithmetic (worksheet?).
* 10's complement and 2's complement.
WEEK 2: 1/24 - 1/28
Last day to drop without a "W": Friday, January 28thContent: Data Representation (chapter 3).
Homework: Read pp. 54-82. Problems from Chapter 2: 6-11, 23, 28, 33, 34, 38, 39 due Tuesday 2/1.
* Analog and digital data * Text: ASCII, Unicode; writing names in binary.
* Data Compression and Entropy, Shannon experiment.
WEEK 3: 1/31 - 2/4
Content: Gates and circuits (chapter 4).Homework: Read pp. 91-111. Problems from Chapter 3: 1-20, 38, 40, 47, 51, 53. Write the name of a famous person you admire in binary, Unicode-encoded (a person whose name uses a non-Latin script). Due Thursday 2/10.
* Multimedia file formats: "MP3 lecture"
* Gates: NOT, AND, OR, XOR, etc.
WEEK 4: 2/7 - 2/11
Content: More on circuits (ch. 4), Computing components (chapter 5).Homework: Read pp. 119-144. Problems from Chapter 4: 1-17, 43, 50, 55, 57, 59, 61 due Thursday 2/17.
* Circuits: adders, multiplexers, etc.
* von Neumann architecture.
* Fetch-execute cycle.
WEEK 5: 2/14 - 2/18
Content: Low-Level Programming Languages and Pseudocode (chapter 6).Homework: Read pp. 151-188. No written homework on Ch. 5.
* Low-level programming: instruction sets, machine language, assembly
* PEP/8 architecture
* High-level vs. low-level languages: compilers and interpreters
WEEK 6: 2/21 - 2/25
Content: Problem Solving and algorithms (chapter 7).Homework: Read pp. 195-237. Problems from Chapter 6, due Thursday 3/3: 1-20, 53, 55. Write programs for outputting your name in PEP/7 machine language and assembly language.
* Algorithms and pseudocode.
* Recursion.
* Sorting algorithms.
WEEK 7: 2/28 - 3/4
Content: More on programming languages, Object-Oriented stuff (Chapter 9).Homework: Read pp. 285-325.
* Survey programming languages, imperative, OO, functional, scripting, etc.
* Programming paradigms: top-down, OOP, event-driven, etc.
WEEK 8: 3/7 - 3/11
The midterm exam is Thursday, March 10thHomework: Read pp. 245-276.
WEEK 9: 3/21 - 3/25
Content: Programming with Scratch (not in text book).Homework: Read pp. 333-380. Write a program of your choosing in Scratch. Due Thursday 3/31.
* Topics in software engineering.
* Introduction to Scratch
* More Scratch; event-driven scratch
WEEK 10: 3/28 - 4/1
* Recursive functions* Introduction to data structures
* Trees, lists, graphs, and applications
WEEK 11: 4/4 - 4/8
* Security, public key cryptography* Hacking, cracking
* Key signing party
WEEK 12: 4/11 - 4/15
Homework: Ambiguous sentences + tic-tac-toe, due Tuesday April 19. Read chapter 13.* Artificial intelligence
* Conversational agents
* Natural Language Processing
* Games!
WEEK 13: 4/18 - 4/22
No class Thursday, April 21st (Holy Thursday)Content: Networking, Internet, WWW (chapters 15 and 16).
Homework: Read pp. 497-542. Chapter 15, problems 1-25, due Tuesday 4/26.
* Intro to networks, network protocols
* TCP/IP, DNS, MIME
* Web, blogs, cookies, HTML, JavaScript, XML, ...
WEEK 14: 4/25 - 4/29
Homework: Problems from Chapter 10: 1-18, 49, 50, 55, 57, 58, 59 due Tuesday 5/3.* What is an OS? Memory management
* Process management, scheduling
* File systems, file types, file access
* Disk scheduling
WEEK 15: 5/2 - 5/6
Thursday, May 5th is the last day of classContent: Some Theory.
Homework: Read pp. 549-582.
* Turing machines
* The halting problem
* Automata
* Open Source Software Development