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

Detailed instructions

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: