Exploration of Computing
This course, designed for the non-engineer, will provide students with a solid foundation in the concepts and terminology behind computers, the Internet, and software development. It will give you better understanding and insight when working with technology. It will be particularly useful to managers and PMs who work with or who lead programmers and other tech workers. It will also be useful for those in Sales and Marketing who want a better understanding of tech concepts and terms.
While we will be going into quite some depth, the course is specifically designed for non-technical students. The instructor has over 20 years of experience teaching computer science concepts to non-engineering Stanford students including students in humanities, social science, fine arts, and business. Students will come away with a good understanding of the core components used by computers and the Internet, but we won't concern ourselves with the nuances needed to write robust programs implementing these mechanisms.
Some programming experience at the High School level of above will help students get the most out of the class, but the course can be successfully completed with no prerequisites.
Foundational Topics Covered:
- Computer Hardware, How a CPU Works, Machine Languages, CPUs and GPUs, Memory Hierarchy
- Strengths and Limitations of Digital Representation of Information, Digital vs. Analog, Binary vs. Decimal, Lossy and Lossless Compression
- Operating Systems, What an OS actually does, Processes and Threads, Memory Management and Paging
- Computer Networks, Topology and Connection Medium, The Internet Protocol Stack, Implications of the IP Protocol and Packet Switching, Lag and Latency
- The Web, HTML and CSS, Strengths and Weaknesses of Client-Side vs. Server-Side Processing
This foundation will then let us explore a variety of tech-related topics including:
- Computer Security Mechanisms, How Computers are Attacked, Defensive Measures
- Cloud Computing, Infrastructure as a Service, Platform as a Service, and other Models of Cloud Computing
- Artificial Intelligence and Machine Learning
- Software Engineering, Software Processes, Agile vs. Traditional Development
- User Interfaces and Human-Computer Interaction
- Computer Theory and Algorithmic Complexity
Who should take this course
- Non-engineers who are interested in working for tech companies
- MBAs and Product Managers
- Anyone who works with tech personnel including Sales and Marketing
|Dates:||March 29 - June 4, 2021|
Computer Science Department Requirement
Students taking graduate courses in Computer Science must enroll for the maximum number of units and maintain a B or better in each course in order to continue taking courses under the Non Degree Option.
Pre-registration for this course will secure your enrollment request and ensure timely processing of your application for potential course approval. Please note: course enrollment will be confirmed after March 19, 2021; after completing your pre-registration, no further action is required on your part.
This course may not currently be available to learners in some states and territories.