CS 150 — Introduction to Programming with Python
Problem solving, data types, control flow, functions, and testing in Python.
- Prerequisites:
- None. Includes weekly two-hour hands-on programming laboratory.
- Typically Offered:
- Fall, Spring
Subject Code: CS • Section 9.4
Undergraduate courses offered by the faculty in Computer Science, supporting major curricula, academic minors, and the Alkimi Core.
Catalog Documentation
Courses in Computer Science are designed around rigorous empirical, theoretical, and applied principles. Coursework builds systematically from 100-level introductory surveys through 400-level advanced capstones and research seminars.
Prerequisites must be completed with a grade of C- or higher (unless specified otherwise by the academic department). Students who have not satisfied course prerequisites may only enroll with explicit written permission of the instructor and department chair.
Catalog Citation
Official descriptions, credit distributions, and prerequisites authorized by the Faculty Senate.
Subject Summary
Complete Listings
Problem solving, data types, control flow, functions, and testing in Python.
Object-oriented principles (encapsulation, inheritance, polymorphism), abstract data types, linked lists, stacks, queues, binary trees, recursion, and algorithm efficiency in Java or C++.
Machine representation of data, instruction set architectures (RISC-V/x86), processor datapath and control, memory hierarchies, caching, and assembly programming.
Advanced algorithm design and asymptotic analysis (O, Ω, Θ), balanced search trees, heaps, hash tables, graph algorithms (BFS, DFS, Dijkstra, Prim), divide-and-conquer, and dynamic programming.
Software development lifecycles, requirements engineering, architectural design patterns, unit testing, continuous integration, code reviews, and collaborative team engineering.
Process management, multi-threading, concurrency and synchronization, CPU scheduling, virtual memory management, file systems, device drivers, and POSIX shell programming.
Relational data modeling, relational algebra, SQL querying, schema normalization (1NF through BCNF), indexing, transaction processing, ACID properties, and NoSQL databases.
Regular expressions, finite state automata, context-free grammars, pushdown automata, Turing machines, decidability, halting problem, and NP-completeness.
Heuristic search algorithms, adversarial game playing, probabilistic reasoning, reinforcement learning, natural language processing, and ethical implications of autonomous systems.
First semester of comprehensive capstone design. Student teams define requirements, design software architecture, evaluate feasibility, and develop prototype specifications.
Completion, rigorous testing, deployment, and public exhibition of full-stack capstone software project defined in CS 490.