A comparative study of literatures across historical periods, examining international and inter-linguistic relations, literary movements, and connections to aesthetics and philosophy.
Programming I introduces fundamental CS concepts through incremental development of small programs. It covers problem abstraction, flow control, functions, and I/O, targeting students with no prior programming experience.
Homework was due Monday through Thursday, often involving participation tasks that took significant time. Students also faced weekly Friday quizzes, with midterms scheduled on Sundays.
Introduction to Data Science programming using Python with no prior experience required, emphasizing analysis of real datasets and visual communication.
Projects were extremely time-consuming and often repetitive, but students appreciated that the grade was largely based on their completion rather than just exams.
Programming II covers Object-Oriented Programming, introducing array-based and linked data structures like lists, stacks, and queues to solve complex problems.
Students reported a large amount of busy work, some of which was challenging and time-consuming. Exams were inconsistent in difficulty, with multiple-choice and programming components varying in ease.
Data Science Programming II covers intermediate Python data science, including graph data structures, reproducibility tools, A/B testing, and basic ML techniques like clustering and classification.
Grading was based on six biweekly projects, two midterms, and one final. Projects took a long time, and homework was described as heavy, ranging from easy to challenging.
Programming III is the third course in the programming fundamentals sequence, covering data structures, algorithms, and complexity analysis with an emphasis on professional code quality.
Project workloads varied significantly, ranging from one to over twenty hours per week depending on group dynamics. Exams were generally not considered super difficult, though some students noted that tests covered obscure topics mentioned only briefly in lecture.
Introduction to the theory and practice of compiler design, comparing programming language features and their implementation implications through required programming projects.
Introduction to Artificial Intelligence covering search, deduction, knowledge representation, machine learning, and probabilistic reasoning with applications in NLP, vision, and robotics.
Exams were reported as extremely difficult, with one student stating they were impossible to prepare for using class materials alone. Another described the exams as 'sadistic' but noted the instructor was helpful when students reached out.
Theory & Algorithms for Data Science covers probability, concentration inequalities, high-dimensional geometry, estimation, optimization, PAC learning, and distribution testing using Python.
Introduction to Software Security covers secure design, secure programming, vulnerability assessment, static/dynamic analysis tools, and system defenses across the SDLC.
The class required weekly quizzes, a participation event, and extra credit opportunities. One student noted that while the course was less challenging than core CS classes, missing quizzes made getting an A difficult.
Introduction to Big Data Systems covers deploying distributed systems for storing and analyzing large datasets using unstructured and structured storage, query languages, streaming data, and machine learning in Python.
Algorithmic Game Theory & Learning covers non-cooperative and cooperative game theory, mechanism design, and equilibrium computation using tools from TCS, optimization, and ML.
Introduction to high-performance computing focusing on shared-memory systems, multithreaded programming, vectorization, and memory hierarchy using numerical algorithms as case studies.
Lectures primarily involved case study go-throughs with code. Practice exams were provided for review, supporting the course's lenient grading structure.
The workload is demanding, with students reporting that 30 hours a week is not unusual to do well. Individual projects can require a minimum of 30 to 50 hours to complete, making the material and assignments time-intensive.
Covers DBMS design and implementation, including data models, file organization, query processing, concurrency control, recovery, and hands-on experience with relational and network-based systems.
The course had no coding requirement; most weeks involved group projects taking a few hours, though some weeks required more time. Students advised starting early.
Introduction to software development of user interfaces, covering UI paradigms, diverse user input handling, and platform-specific APIs for web, mobile, desktop, and voice interfaces.
An introduction to the principles and practices of managing and exploring different kinds of data. Work with both relational databases and Not only SQL (NoSQL) databases to organize and analyze structured, semi-structured, and unstructured data. Write basic queries, forecast time-series data, and evaluate data quality and patterns through exploratory data analysis. Explore data cleaning techniques such as interpolation and imputation, to address missing or inconsistent values. Apply data engineering techniques, including data pipelines, data warehouses, and processes for moving and transforming data using Extract-Transform-Load (ETL) and Extract-Load-Transform (ELT). Learn how modern language models can be adapted using contextual information from custom datasets and strengthened with techniques that incorporate external knowledge sources.
One student found the lectures had almost no correlation to the homework, creating the feeling of taking two separate classes and requiring significant extra effort to connect the material.
COMPUTER SCIENCES CAPSTONE involves building a software product from start to finish with a corporate client, using agile techniques like Design Thinking and Scrum, while developing, testing, and documenting the project.
In Josiah Hanna’s autonomous robotics offering, the total workload was fine. He collected questions before class to address complex concepts in clear detail.
The course typically includes four moderate quizzes and four straightforward programs, though one student warned that the final program was particularly challenging.