James Madison University, Fall 2022 Semester
The following materials are subject to change throughout the semester.
Section numbers are from
Computer Science: An Overview, 12th edition.
Unit 0: Get Ready!
Aug 24 – Aug 26
- Concepts
- Use of resources and best practices for learning
- Reading
- Course Syllabus
- CS 101 Home Page
- The Study Cycle
- Slides
- Tour of Resources
- Theory
- To-Do
- Get the required textbook
- Complete the pre-survey by Friday at noon: 5pts
- Canvas Setup, including recognizable photo, completed by Friday at noon: 5pts
Unit 1: Introduction
Aug 29 – Sept 2
- Concepts
- Algorithms
- Reading
- Preface, Table of Contents
0.1 The Role of Algorithms
0.2 The History of Computing
0.3 An Outline of Our Study
0.4 Themes of Computer Science - Slides
- Big Ideas
- History and GCD
- Theory
- Intro Videos
- Exercise01 Unit01 Exercises A Unit01 Exercises B
- Practice
- Lab01 Lightbot puzzle solving
Unit 2: Data Storage and Guest Speaker
Sep 05 – Sep 09
- Concepts
- Logic gates, binary, hexadecimal, RAM, hard disk, ASCII, overflow
- Reading
- 1.1 Bits and Their Storage
1.2 Main Memory
1.3 Mass Storage
1.4 Representing Information as Bit Patterns
1.5 The Binary System - Slides
- Unit02 Slides
- Theory
- Binary Videos
- Exercise02 Unit02 Exercises A Unit02 Exercises B
- Practice
- Binary Tutorial
- Lab02 Practice Binary
Unit 3: Program Execution
Sep 12 – Sep 16
- Concepts
- How CPUs work, instructions, machine cycle, code vs data, masking
- Reading
- 2.1 Computer Architecture
2.2 Machine Language
2.3 Program Execution
2.4 Arithmetic/Logic - Slides
- Unit03 Slides
- Theory
- Machine Videos
- Exercise03 Unit03 Exercises A Unit03 Exercises B
- Practice
- Lab03 CPU and RAM simulator
Unit 4: Operating Systems and Computer Networking
Sep 19 – Sep 23
- Concepts
- Reading
- 3.1 The History of Operating Systems
3.2 Operating System Architecture
3.3 Coordinating the Machine's Activities
4.1 Network Fundamentals
4.2 The Internet
4.3 The World Wide Web - Slides
- Unit04 Slides
- Theory
- OS and Network videos
- Exercises04 Unit04 Exercises A Unit04 Exercises B
- Practice
- Command Line Basics
- Lab04 Command Line and Web Pages
Review Units 1 through 4 and Complete Web pages; and Guest Speaker
Sep 26 – Sep 28
- Concepts
- Creating web pages
- Review
- Review quizzes, homework keys, labs, and take the practice exam on canvas
Exam 1: Units 1 through 4 and Information from Guest Speakers
Sep 29 – Sep 30
- Exam 1
- On Canvas, must be completed by 5pm on Friday
Unit 5: Information Security and Guest Speaker
Oct 03 – Oct 07
- Concepts
- Access control, privilege levels, malware, DoS, encryption, keys
- Reading
- 3.5 Operating System Security
4.5 Network Security and Encryption - Theory
- Security Videos
- Exercise05 Unit05 Exercises A Unit05 Exercises B
- Practice
- Command Line Review
- Lab05 Telnet vs ssh, encryption
Introduction to Python and Finches; and Guest Speaker
Oct 10 – Oct 11
Unit 6: Algorithms and Python
Oct 17 – Oct 21
- Concepts
- Primitives, pseudocode, problem solving, decisions, loop control
- Reading
- 5.1 The Concept of an Algorithm
5.2 Algorithm Representation
5.3 Algorithm Discovery
5.4 Iterative Structures - Theory
- Exercise06 Unit06 Exercises A Unit06 Exercises B
- Practice
- Learn Python, Part 1: Numbers Learn Python, Part 5: Variables
- Start here until requested to pay Codecademy (1. Hello World) then go to another part of the site that is free but based on an older verision of Python, Python 2: Codecademy Python Syntax and (2. Strings and Console Output)
- Lab06 Introduction to Python
Unit 7: Programming Languages and Python Programming; and Guest Speaker
Oct 24 – Oct 28
- Concepts
- Paradigms, compiler vs interpreter, variables, functions, scope
- Reading
- 6.1 Historical Perspective
6.2 Traditional Programming Concepts
6.3 Procedural Units - Theory
- Python Videos 2
- Example of function calls Anohter example of function calls
- Exercise07 Unit07 Exercises A Unit07 Exercises B
- Practice
- Learn Python, Part 2: Logic Expressions
- Learn Python, Part 6: Conditionals
- Lab07 Finches and CodingBat
Theory of Computation Guest Speaker
Oct 31 – Nov 01
- Speaker
- Introduction to Theory of Computation
Exam 2: Units 5 through 7 and Information From Guest Speakers
Nov 03 – Nov 04
- Exam 2
- On Canvas, must be completed by 5pm on Friday
Unit 8: Software Engineering and Guest Speaker
Nov 07 – Nov 11
- Concepts
- Software life cycle, prototyping, coupling, cohesion, UML diagrams
- Reading
- 7.1 The Software Engineering Discipline
7.2 The Software Life Cycle
7.3 Software Engineering Methodologies
7.4 Modularity
7.5 Tools of the Trade - Theory
- Lecture Slides
- SW Eng Videos
- Exericses08 Unit08 Exercises A Unit08 Exercises B
- Practice
- Learn Python, Part 3: Words and Letters
- Learn Python, Part 4: Changing Text
- Python Tutor Select python, then select different python examples, start with hello and happy examples
- Lab08 Debugging
Unit 9: Data Structures and Finch Python Project Assigned
Nov 14 – Nov 18
- Concepts
- Arrays, lists, stacks, queues, trees, pointers, contiguous vs linked
- Reading
- 8.1 Basic Data Structures
8.2 Related Concepts
8.3 Implementing Data Structures
8.4 A Short Case Study - Theory
- Lecture Slides
- Python Videos
- Exercise09 Unit09 Exercises A Unit09 Exercises B
- Practice
- Learn Python, Part 7: Lists
- Learn Python, Part 8: Loops
- Lab09 Visualizing binary trees
Thanksgiving Break
Nov 21 – Nov 25
Unit 10: Database Systems
Nov 28 – Dec 02
- Concepts
- File system vs DBMS, schemas, relational model, SQL, data mining
- Reading
- 9.1 Database Fundamentals
9.2 The Relational Model
9.6 Data Mining
9.7 Social Impact of Database Technology - Theory
- Database Videos
- Exercise10 Unit10 Exercises A Unit10 Exercises B
- Practice
- Codecademy (Learn SQL)
- Learn SQL in 20 Minutes (Tutorialzine)
- Lab10 Exploring your SQLite data
Guest Speaker on Artificial Intelligence and Student Finch Presentations
Dec 05 – Dec 09
- Speaker
- Introduction to AI
Exam 3: Units 8 through 10; Information From Guest Speakers; and Finch Projects
Dec 12 – Dec 16
- Exam 3
- On Canvas, will be assigned according to your final exam time