CS 1110 is a 4 credit course designed that introduces computer programming concepts. It is also the first course for computer science majors, so it emphasizes the development and analysis of algorithms.

Who is this class for? CS 1110 is designed expressly for students without programming experience to learn introductory-level programming concepts and algorithm development and analysis. So, if you don't have programming experience, not only are you welcome, but you are our primary audience! You can take the course as the beginning of a path to a CS major or minor, or as your only/last course in computing.

The course is not the right fit for the following kinds of students:

  1. If you "just" want to learn the basics of Python, and are not looking for development in fundamental programming skills, you should take CS 1133 or a class from this list of alternatives to CS 1110 instead. Python per se is not the focus of CS 1110.
  2. If you have taken or are taking CS 2110/ENGRD 2110, CS 2112, or a course offered or cross-listed with a CS number 3000 or above, you are not permitted to take CS 1110; take a course from this list of alternatives to CS 1110 instead.
  3. Affiliated CS majors: ditto.

We recommend that students with CS AP credit or close-to-equivalent experience start in CS 2110: you can always switch to CS 1110 during add/drop.


CS 1112: Introduction to Computing Using MATLAB
CS 1112 is the primary alternative to CS 1110. It has the same class components as CS 1110 (4 credits, 2 lectures/1 lab per week) and offers the "coziness" of a smaller class. Both courses prepare students for CS 2110 and future computer science courses. CS 1110 has slightly more emphasis on software application development. CS 1112, which uses MatLab, has slightly more emphasis on scientific computation. While CS 1112 assumes no programming experience, it does require a comfort with mathematics, at the level of one semester of calculus. If you are an engineering student whose interests lie outside the digital major cluster (CS, ECE, ORIE, ISST), you might consider that course instead.

CS 1133: The Short Course
CS 1133 is a 2-credit course that covers the first half of CS 1110. It focuses on the basics in programming in Python, but does not include a lot of the computer science material in CS 1110.

CS/INFO 1300: Introductory Design and Programming for the Web
The World Wide Web is both a technology and a pervasive and powerful resource in our society and culture. To build functional and effective web sites, students need technical and design skills as well as analytical skills for understanding who is using the web, in what ways they are using it, and for what purposes. In this course, students develop skills in all three of these areas through the use of technologies such as XHTML, Cascading Stylesheets, and PHP. Students study how web sites are deployed and used, usability issues on the web, user-centered design, and methods for visual layout and information architecture. Through the web, this course provides an introduction to the interdisciplinary field of information science.

AMST/ENGL/INFO 1350: Introduction to Cultural Analytics: Data, Computation, and Culture
From the course description: This course will prepare students in the humanities to analyze, interpret, and visualize cultural data with computational methods. After a basic introduction to the programming language Python, we will cover topics such as data collection and curation through web scraping and data retrieval, text mining, image analysis, network analysis, and data visualization. We will survey and discuss how these computational tools are applied in humanistic research. We will also reflect on the specific problems, challenges, and ethical dilemmas posed by the computational study of culture.
This course is specifically designed for students in the humanities who have no previous programming background.

CS/ORIE/STSCI 1380: Data Science for All
From the course description: This course provides an introduction to data science. Given data from economics, medicine, biology, or physics, collected from internet denizens, survey respondents, or wireless sensors, how can one understand the phenomenon generating the data, make predictions, and improve decisions? We focus on building skills in inferential thinking and computational thinking, guided by the practical questions we seek to answer. The course teaches critical concepts and skills in computer programming and statistical inference, in conjunction with hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. We will also consider social issues in data analysis such as privacy and design.
Assumes basic high school mathematics. No calculus or programming experience required.

CS 2043: UNIX Tools and Scripting Six-week course. UNIX and UNIX-like systems are increasingly being used on personal computers, mobile phones, web servers, and many other systems. They represent a wonderful family of programming environments useful both to computer scientists and to people in many other fields, such as computational biology and computational linguistics, in which data is naturally represented by strings. This course takes students from shell basics and piping, to regular-expression processing tools, to shell scripting and Python. Other topics to be covered include handling concurrent and remote resources, manipulating streams and files, and managing software installations.
Prerequisites/Corequisites Prerequisite: one programming course or equivalent programming experience. No previous knowledge of UNIX or expertise in any particular language is assumed.

AEM 2840: Python Programming for Data Analysis & Business Modeling
From the course description: This course is an introduction to programming with Python for students aiming to enter the world of business analytics. Using business applied cases students will increase decision making efficiency and productivity through a detailed understanding of Python programming languages. Students will also learn how to use a range of Python libraries for data analytics such as NumPy, MatPlotLib, Seaborn, Pandas, and Scikit.
Enrollment preference given to: Dyson students.

Also available Winter 2021 and thus perhaps other winters as well.

EAS 2900: Computer Programming and Meteorology Software
From the course description: Introduction to Python computer programming and visual software packages specifically tailored for meteorological application usage. Topics include basic Python programming (this includes problem analysis, algorithm development, and program writing and execution), data manipulation, and instruction in the use of GrADS, and GEMPACK visual display tools.
Prerequisite: EAS 1310 and MATH 1110, or equivalent.

ORIE 3120: Practical Tools for Operations Research, Machine Learning and Data Science The practical use of software tools and mathematical methods from operations research, machine learning, statistics and data science. Software tools include structured query language (SQL), geographical information systems (GIS), Excel and Visual Basic programming (VBA), and programming in a scripting language (either R or Python). Operations research methods include inventory management, discrete event simulation, and an introduction to the analysis of queuing systems. Machine learning and statistical methods include multiple linear regression, classification, logistic regression, clustering, time-series forecasting, and the design and analysis of A/B tests. These topics will be presented in the context of business applications from transportation, manufacturing, retail, and e-commerce.
Prerequisite or corequisite: ENGRD 2700.

STSCI 4060: Python Programming and its Applications in Statistics
From the course description: The first part of the course teaches basic Python programming knowledge and skills. The second part deals with Python application in statistics (e.g., data visualization and statistical analysis), Python-database integration (e.g., access, update and control an Oracle database), and Python web services (e.g., database-driven dynamic webpages using Python CGI scripts). These techniques are utilized in a comprehensive course project.
Enrollment preference given to: students in the MPS Program in Applied Statistics. Prerequisite: basic programming skills (any language), SQL (Oracle preferred) and SAS.

NS 4300: Proteins, Transcripts, and Metabolism: Big Data in Molecular Nutrition This course will cover fundamental concepts of big data analysis at an introductory level in the context of gene expression at the mRNA and protein levels with a focus on metabolic regulatory networks. Programming in Python and R will be required, but no prior experience is necessary. Programming in this course will focus methods to parse large data sets and perform informatics analyses.
Prerequisite: one semester introductory biology lecture (BIOMG 1350, BIOG 1440, or equivalent), biochemistry (NS 3200, BIOMG 3300, or equivalent), and introductory statistics (STSCI 2150, PAM 2100, AEM 2100, or equivalent).

ORIE 5270: Big Data Technologies This course offers a broad overview of computational techniques and mathematical skills useful for data scientists. Topics include: unix shell, regular expressions, version control: (git), data structures and algorithms, working with databases, data analysis using Python and related libraries (Pandas, NumPy/Scipy, scikit-learn), parallel computing (Map-Reduce, Spark, Hadoop), basic finite-precision arithmetic, an overview of standard machine learning and optimization algorithms, and time-permitting, a guided tour of functional programming.
Enrollment limited to: ORIE M.Eng. students.

TECH 5300: Fundamentals of Modern Software This is a crash course in how software works and what it can do. It covers the basics of programming, databases, and web applications. There is a strong emphasis on learning by doing and the course includes weekly programming assignments in Python.
Enrollment limited to: Johnson and Law Cornell Tech students. Prerequisite: TECH 5310.