15-110: Principles of Computing
Spring 2024 | Fall 2023 | |
Spring 2023 | Fall 2022 | |
Spring 2022 | Fall 2021 | |
Spring 2021 | Fall 2020 | |
Spring 2020 | Fall 2019 | |
Fall 2016 |
This is a course in fundamental computing principles for students with little to no computing background. It covers the following topics:
- Programming constructs involving sequencing, selection, iteration, and recursion.
- Data organization such as arrays and lists.
- Use of abstraction in computing for data representation, computer organization, computer networks, functional decomposition, and application programming interfaces.
- Use of computational principles in problem-solving like divide and conquer, randomness, and concurrency.
- Classification of computational problems based on complexity, non-computable functions, and using heuristics to find reasonable solutions to complex problems.
- Social, ethical and legal issues associated with the development of new computational artifacts will also be discussed.
07-070: Teaching Techniques for Computer Sciencec
Spring 2024 | Fall 2023 |
This course is a broad introduction to teaching techniques and DEI issues in the context of computer science education. It is targeted to first-time undergraduate and graduate SCS TAs, with the goal of providing instruction, hands-on practice, and feedback to TAs to improve their instructional proficiency.
CS Scholars Programming Course
Summer 2023
Summer 2022
Summer 2021
The Computer Science Scholars program brings high school students from underrepresented backgrounds to the CMU campus for four weeks to take courses in programming and math, learn about the field of computer science through seminars and industry visits, and complete a specialized project. The programming component of this program gives students an introduction to basic Python programming.
05-391/05-891: Designing Human-Centered Software
This course is an introduction to designing, prototyping, and evaluating user interfaces. If you take only one course in Human-Computer Interaction, this is the course for you. It covers the following learning goals:
- Explain what a user interface is and identify different components of user interfaces
- Apply design methodologies to support the design and ideation process
- Use prototyping methods to create interface prototypes at different levels of fidelity
- Demonstrate how evaluation methods can measure the usability of an interface
SAMS Programming Course
The Summer Academy for Mathematics and Science (SAMS) program brings high school students to the CMU campus for six weeks to take courses in math, programming, science, and standardized testing, while also completing a specialized project. The programming component of this program gives students an introduction to basic Python programming.
15-112: Fundamentals of Programming and Computer Science
Spring 2019
Fall 2018
Spring 2018
Fall 2017
Spring 2013
A technical introduction to the fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles, we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications. This course assumes no prior programming experience. Even so, it is a fast-paced and rigorous preparation for 15-122. Students seeking a more gentle introduction to computer science should consider first taking 15-110. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.
05410/05610: User-Centered Research & Evaluation (UCRE)
This course provides and overview and introduction to the field of human-computer interaction (HCI). It introduces students to tools, techniques, and sources of information about HCI and provides a systematic approach to design. The course increases awareness of good and bad design through observation of existing technology, and teaches the basic skills of task analysis, and analytic and empirical evaluation methods. This is a companion course to courses in visual design (51-422) and software implementation (05-430, 05-431). When registering for this course, undergraduate students are automatically placed the wait list. Students will be then moved into the class, based on if they are in the BHCI second major and year in school e.g. seniors, juniors, etc This course is NOT open to students outside the HCI major. When registering for this course, undergraduate students are automatically placed the wait list. Students will be then moved into the class, based on if they are in the BHCI second major and year in school.
05633-B/05433-B: User Interface Lab (Section B - GUI)
This course is a lab complement to 05-630 that focuses on practice in the skills needed for prototyping and development of simple graphical user interfaces. In this lab rapid development tools such as graphical user interface layout editors will be combined with simple code to create functioning interfaces for a range of practical applications. This course is for HCII Masters, BHCI dual majors, and others with basic programming skills, rather than necessarily a strong programming or Computer Science background.