CS 101: Introduction to Computer Science
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