Introduction to Computer Science II
Instructor: Ramgopal Mettu
Teaching Assistant:Ellis Fenske
This course is the continuation of CMPS 1500**. While CMPS 1500 focused on a broad array of topics in computer science and a single language (Python), this class will focus on several core topics in the design, analysis and implementation of computational tools. From the practical perspective, we will learn different paradigms of software development and their associated languages. From the theoretical perspective, we will explore in mathematical detail some of the topics covered in CMPS 1500 (e.g. first-order logic), along with new concepts such as program correctness. A key focus of this course is shape the initial, broad exposure to computer science from CMPS 1500 into a specific set of skills that can be used to design, reason about, and implement computational tools. Some of the key topics we will cover will be:
- Functional and imperative programming
- Data structures, abstract data types and object-oriented design
- Program correctness and verification
We will explore these topics in the context of several applications and programming languages (e.g., Scheme, Java, C/C++, Python, PHP, etc.). The high-level goal of this course is to train students to be able to draw from a versatile set of skills, which in turn will provide a strong foundation for further study in computer science. At the end of this course, students should be able to:
- Understand and be able to apply theoretical and practical concepts of software development to develop basic computational tools (e.g., for networking, cryptography, modeling in computational science, and web-based tools).
- Understand the similarities and differences between a number of programming paradigms.
- Gain experience in selecting the most effective programming approach for a given computational task.
- Be experienced in the methodology and practice of developing and verifying software programs.
**A note on prerequisites: If you would like to register for CMPS 1600 but have not taken CMPS 1500, please make an appointment with me. I will consider such requests on a case-by-case basis.
Meeting Time and PlaceLectures: MWF 2:00-3:00p, Stanley Thomas 302
Discussions: Th 9:30-10:45a , Th 11:00-12:15p, Stanley Thomas 302
|Office:||Stanley Thomas 303E|
|Office Hours:||MW 1-2 or by appointment|
|Teaching Assistant:||Ellis Fenske|
|Office:||Stanley Thomas 309|
|Office Hours:||Th 2-3p or by appointment|
Template design by Andreas Viklund