Stern College Syllabi -- Spring and Fall 2021-2022 courses --- COMP (Computers)
Permanent URI for this collectionhttps://hdl.handle.net/20.500.12202/7160
Geralt Pixabay License: Free for commercial use. No attribution required. https://pixabay.com/photos/technology-developer-touch-finger-3389888/
Browse
Browsing Stern College Syllabi -- Spring and Fall 2021-2022 courses --- COMP (Computers) by Issue Date
Now showing 1 - 17 of 17
- Results Per Page
- Sort Options
Item Restricted COMP 3650 Object Oriented Software Design(2021-01) Waxman, JoshuaOverview: The major theme of this course is how to structure real, large programming projects, in a way that they are easy to maintain across the product lifetime. Our Java programs will consist of multiple classes, in multiple source files in IntelliJ projects / in the same directory. These examples are, generally, “toy examples” – that is, simple enough projects where you can see their full scope and understand the idea, but complex enough to convey that same idea. We will revisit object-oriented ideas you’ve already seen like encapsulation and inheritance as they occur in Java, explore additional ones such as polymorphism and generics. We will then explore program architecture and see some Design Patterns which help in that structure, all advancing certain recurring Design Principles. ___ This is the second or third programming course in the series. You will come in with some knowledge of Java, since this is not just a repeat of your Introductory course with a new language. We will begin with a brief review of Java programming, but will quickly more on to the aforementioned topics. ____ Prerequisites: COMP 1300C (Intro to Computer Science)Item Restricted COMP 1320C Data Structures(2021-01) Broder, Alan J.Overview: This course provides a survey of fundamental data structures and algorithms needed to implement efficient, scalable programs. Upon successful completion of this course you will have mastered the material needed to analyze a computing problem and to select the data structure that solves the problem with predictable and appropriate use of computing time and memory resources. _____ This course covers the following topics: arrays, sorting, stacks and queues, linked lists, recursion, binary trees, hash tables, heaps, and graphs. A significant part of this course involves actually writing Python programs that implement the above topics – in labs, for homework, and on exams. However, this course is not a Python programming course, so students must have already mastered Python programming through prior coursework or independent study. ____ Prerequisites: COMP 1300C, and competence in Python programming, including the ability to define new classes and methods, and to use inheritance.Item Restricted COMP 3640 - E Programming Languages(2021-01) Waxman, JoshuaOverview: In this course, we have three main objectives. ____ (A) We will study features of programming languages and how they are implemented. For instance, when passing parameters to functions, is it pass-by-value, pass-by-reference, or pass-by-name? What is the difference? What are the benefits of one design choice over another? How does one implement pass-by-name? (B) We will study how to implement a compiler. How do we specify the syntax? How do we scan? How do we parse? (C) We will learn several practical and programming languages (Excel VBA, Kotlin, C++,) as time permits to add to the ones you already know, or else learn new features of a programming language you know (e.g. generators, enumerate and zip in Python).Item Restricted COMP 1001C-EF Programming for Non-CS Majors(2021-01) Teitelman, LawrencePrerequisites: ● None, other than a desire to l earn and explore and have fun i n the process �� ____ Course Objectives: Students completing this course should be able to ● Identify the components of a computer and its input/output components ● Divide a computational problem into a series of smaller tasks and, i n turn, concrete steps ● Write well-structured and documented code i n the Python programming language ● Apply Python programming skills to practical, real-world problems including the collection, analysis, presentation, and visualization of data from various sourcesItem Restricted COMP 1300C Introduction to Computer Science(2021-01) Broder, Alan J.Overview: Programming is an essential skill for students with an interest in mathematics, science, engineering, business, and of course Computer Science. This course introduces the application of Computer Science concepts through the development of procedural and object-oriented programs in the Python 3 language. In this course, you will develop the skills needed to program computers to effectively solve real-world problems in business and science. Upon successful completion of this course you will also have mastered the material needed for more advanced courses in Computer Science. _____ We will cover the following topics in this course: number systems, built-in data types, variables, arithmetic and logical expressions, conditionals and loops, lists, dictionaries, tuples, graphics, input and output, functions and modules, and object oriented programming with custom data types. A significant part of this course involves actually writing Python programs that implement the above topics – in labs, for homework, and on exams.Item Restricted COMP 3610-B Operating Systems(2021-01) Teitelman, LawrencePrerequisites: ● Ability to code in a high-level programming language, and willingness to learn others as needed ● Familiarity with basic data structuresItem Restricted COMP 4930H Topics: Natural Language Processing(2021-01) Waxman, JoshuaOverview: We will explore algorithms for understanding and producing human language. We will consider NLP applications of tokenization, word and sentence segmentation, part-of-speech tagging, morphological analysis, syntax parsing, and more. We will explore the overlap between NLP, information retrieval, machine learning and deep learning. Practically, we will implement many of these algorithms or utilize popular NLP frameworks to apply these algorithms. Prerequisites: Data Structures and CalculusItem Restricted COMP 3563-D1 Database Systems(2021-01) Teitelman, LawrencePrerequisites: ● Data Structures (COMP 1320) ● Ability to program in Python ______ Course Objectives: Through this course, students should be able to ● design a database using appropriate normal forms ● apply the theory of relational algebra to write queries using Structured Query Language (SQL) ● build a client application that dynamically queries and updates databases ● appreciate the foundational infrastructure for database management systemsItem Restricted COMP2545: Algorithms - Fall 2021(2021-09) Waxman, JoshuaOverview: We are going to study and implement (in Python 3.9) a series of classic algorithms, with an eye towards their computational complexity. These are useful algorithms, so you will hopefully be able to make practical use them or their analogues. Further, you will hopefully develop an intuition as to the runtime of various algorithms, including ones you devise yourself. This intuition can help you design better algorithms in general, and to predict when you should look to improve the runtime by algorithmic improvement. A significant part of this course involves actually writing Python programs that implement the above topics – in class, for homework, and on exams.Item Restricted COMP2314C: Applied Linux Programming and Scripting - Fall 2021(2021-09) Broder, AlanThe Linux Operating System provides the infrastructure that powers the vast majority of the Internet. This course introduces you to Linux, with a focus on the operating system features that are accessible from the command line and programming or scripting languages such as Python and AWK. Through significant programming projects, you will learn how to develop and manage software within the Linux environment, with emphasis on applications that manipulate real-life datasets and interface with data obtained live from the Internet. Pre-requisite: COMP 1300C. This course assumes that you already know Python 3. We will cover the following topics in this course: the history of Linux and other “free software” and open source systems, the Linux command line (aka “the Shell”) and built-in features, permissions and processes, regular expressions, the “gawk” variant of the AWK programming language, version control and automated application building, HTML, advanced Python features (such as generators) and its libraries. We will also cover Hadoop and, Spark, which are systems used by Google, Yahoo, Yelp, and many other companies to do massively scalable computations on clusters of Linux computers. A significant part of this course involves actually writing AWK scripts and Python programs that address the above topics – in labs, for homework, on exams, and for a semester project. We will use publicly available databases as interesting and realistic examples similar to data that might be encountered in business settings.Item Restricted COMP2512C: Networking and Communications - Fall 2021(2021-09) Teitelman, LawrenceFundamentals of networking and communications, network concepts, hardware, software, and programming. Data communications, wide and local area networks, communications architecture and protocols.Item Restricted COMP1300C: Introduction to Computer Science - Fall 2021(2021-09) Broder, AlanProgramming is an essential skill for students with an interest in mathematics, science, engineering, business, and of course Computer Science. This course introduces the application of Computer Science concepts through the development of procedural and objectoriented programs in the Python 3 language. In this course, you will develop the skills needed to program computers to effectively solve real-world problems in business and science. Upon successful completion of this course you will also have mastered the material needed for more advanced courses in Computer Science.Item Restricted COMP2115P: Computer Systems - Fall 2021(2021-09) Shamash, AriThe course is devoted to exploring the interaction between a program, the operating system, and the hardware. Topics include: the C programming language emphasizing pointers, explicit dynamic memory allocation, and formatted I/O; machine-level representation of programs; processor architecture; program optimization; the memory hierarchy; processes; UNIX I/O; concurrent programming. The course will facilitate a hands-on introduction to C/UNIX programming and systems programming. The goal is to both understand a high-level assembly language, and to know what goes on at a computer level when you compile and run a program. We will learn assembly language first, then C, and then integrate it with computer systems and operating systems.Item Restricted COMP1504A: Discrete Structures - Fall 2021(2021-09) Teitelman, LawrenceBoolean algebra and predicate calculus; proof methods; sets, functions, and relations; combinatorics; graph theory and algorithms; mathematical induction and recursion; probability and average case analysis of algorithms. Prerequisite: three years of high school mathematics.Item Restricted COMP1001C-EF: Programming for Non-CS Majors - Fall 2021(2021-09) Teitelman, LawrenceCourse Objectives: Students completing this course should be able to ● Identify the components of a computer and its input/output components ● Divide a computational problem into a series of smaller tasks and, in turn, concrete steps ● Write well-structured and documented code in the Python programming language ● Apply Python programming skills to practical, real-world problems including the collection, analysis, presentation, and visualization of data from various sourcesItem Restricted COMP3920F: Applied Machine Learning - Fall 2021(2021-09) Glassman, ZacharyOverview: This course provides an introduction to the practice and theory of machine learning. Upon successful completion of this course you will understand how to apply machine learning to real world problems through proper model and model metric selection. You will also gain experience implementing a real machine learning project leveraging what you have learned in the course. This course covers a wide variety of machine learning topics balancing between theory of machine learning and practical applied skills. The course will involve writing Python code both for labs, home, and exams, however, students are expected to be competent in Python programming through prior programming or independent study. Additionally, students are expected to have a good grasp ofItem Restricted COMP3780E: Web Development - Fall 2021(2021-09) Waxman, JoshuaOverview: In this course, we cover the essential concepts and some of the core technologies in website development. The modules of the course will cover, at an introductory to intermediate level: Hypertext Markup Language (HTML) and eXtensible Markup Language (XML); Cascading Style Sheets (CSS); client-side scripting with JavaScript; advanced JavaScript in the sense of a typed language from Microsoft, TypeScript, as well as the jQuery library; responsive design via the popular CSS Bootstrap framework; briefly, since you have a Python background, server side scripting using the Django framework; and as a modern user interface framework, React and some of its popular libraries, such as Redux. We will explore Full Stack Development using JavaScript / TypeScript with NodeJS. There are plenty of other cutting-edge technologies which rise and fall every year, but the selections of technologies we will study here are stable and should provide a solid foundation for web development.