James Madison University, Fall 2021 Semester
The following materials are subject to change throughout the semester.
Section numbers are from
Computer Science: An Overview, 12th edition.
Before the Semester
    Aug 23 – Aug 25
- Reading
 
 Course Syllabus
 CS 101 Home Page
 The Study Cycle- To-Do
 
 Get the required textbook
 Complete the pre-survey
Unit 1: Introduction
    Aug 25 – Aug 27
- 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
 
 Tour of Resources- Theory
 
 Intro Videos- Exercise01
        
 Unit01 Exercises - Practice
 - Lab01
        
 Lightbot puzzle solving 
Unit 2: Data Storage
    Aug 30 – Sep 03
- 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 - Theory
 
 Binary Videos- Exercise02
        
 Unit02 Exercises A 
        
 Unit02 Exercises B - Practice
 
 Logisim Tutorial- Lab02
        
 Logisim ripple carry adder 
Unit 3: Program Execution
    Sep 06 – Sep 10
    - 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 - Theory
 
 Machine Videos- Exercise03
        
 Unit03 Exercises A 
        
 Unit03 Exercises B - Practice
 - Lab03 
        
 CPU and RAM simulator 
Unit 4: Operating Systems and Computer Networking
    Sep 13 – Sep 17
    - 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 - 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
    Sep 21 – Sep 25
    - Review
 - Practice Exam on Canvas
 
 Exam 1: Units 1 through 4 
    Sep 25 – Sep 27
    - Exam 1
 - On Canvas, must be completed by 5pm on Monday
 
Unit 5: Information Security
    Sep 27 – Oct 01
- 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 
Project 1: Unit 1 - Unit 5 Topics
    Oct 04 – Oct 08
Unit 6: Algorithms and Python
    Oct 11 – Oct 15
- 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
 
 Python Videos 1- 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 
 Guest Speaker 1 - Theory of Computation
    Oct 18 – Oct 20
    - Speaker
 - Introduction to Theory of Computation
 
Unit 7: Programming Languages and Python Programming
    Oct 25 – Oct 29
    - 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 
 Exam 2: Units 5 through 7 and information from guest speaker
    Oct 29 – Nov 01
    - Exam 2
 - On Canvas, must be completed by 5pm on Monday
 
Unit 8: Software Engineering
    Nov 01 – Nov 05
- 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 and Agile Methodology  
Unit 9: Data Structures
    Nov 8 – Nov 12
- 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 3- Exercise09
        
 Unit09 Exercises A
        
 Unit09 Exercises B - Practice
 
 Learn Python, Part 7: Lists
 Learn Python, Part 8: Loops- Lab09
        
 Visualizing binary trees 
Unit 10: Database Systems.  Project 2 assigned
    Nov 15 – Nov 19
- 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
 
 DBSnap Tutorial
 Codecademy (Learn SQL)
 Learn SQL in 20 Minutes (Tutorialzine)- Lab10
        
 Exploring your SQLite data 
 Guest Speaker 2: Artificial Intelligence.  Project 2 Outline Due  
    Nov 30 – Dec 2
    - Speaker
 - Introduction to AI
 
 Exam 3: Units 8 through10 and information from guest speaker
    Dec 3 – Dec 5
    - Exam 3
 - On Canvas, must be completed by 5pm on Monday
 
Project 2: Presentations
    Dec 7, Dec 9, Dec 14, Dec 16
Please read the following for the final project: