Discipline Information, including important sutff such as Academic Honesty, Late Work, Contact Information, etc that is the same for all CS courses.
Prerequisites This is aimed at as student who has had prior exposure to programming in a Turing-complete language such as JavaScript, C, C++, or Java. It is also a continuation from the course CS352. To be placed in this course, you will need to pass a test on the command-line linux interface and complete a project that demonstrates your programming proficiency. See the index page for further information on placement.
The Book Morrison, J. M., Computing in Python, Chapters 0-5.
Description This intermediate course begins with a tour of the Python programming language. It emphasizes the design and implementation of simple computer programs. Python is an object-oriented scripting language with an accessible structure that is used to develop fundamental programming and problem solving skills. We will learn abstract concepts and common computer programming constructs including variables, conventions, conditional execution, iteration, recursion, and file system access.
Objectives A student who takes this course will know how to:
- work with a computer via a command line interface
- understand the ethical dimensions of the fact that data are property, and that owners can control who can see, read, and write to their data.
- program the computer to accomplish tasks in a procedural language.
- write and debug simple, complete applications.
- do object-based programming and simple object-oriented programming.
- create their own objects and use those created by others.
- collaborate on computational projects with their peers.
- solve problems and automate processes by writing custom applications in a modern programming environment using the procedural programming paradigm.
- demonstrate these skills by creating programs.
Rough Outline
- Variables, Expressions and Types in Python(1.5 weeks) You will work on creating and manipulating symbols and objects in Python. The basic types are explained. You will learn how to use the Python interactive shell and how to write very simple Python programs.
- Python Functions(1 week) You will learn how to write procedures called functions in Python. You will see how various symbol tables pass in and out of visibility and how to properly test functions you create.
- Conditional Execution (.5 weeks) You will learn how to cause your program to react to its current state and to make decisions.
- Looping and Recursion(2.5 weeks) You will learn how to make a program perform repetitive tasks.
- Power Programming Tools (2 weeks) You will learn about Python FileIO, the OS and system modules. You will use these to create efficient and professional-looking applications
- Python's Class Mechanism (2 weeks) You will learn how to create classes, which are blueprints for custom objects that you can use in your programs.
- Extended topics Topics may include: context managers; decorators; sorting algorithms; regular expressions.
- Final Project(1-2 wks) This is a capstone project you write that develops a simple but useful application by applying the techniques you learn in this class. You need to begin to think about this in about the 8th week of the course.
Goal: You will learn how to solve problems and automate processes by writing custom applications in a modern programming environment using the procedural programming paradigm. You will demonstrate this skill by creating these sorts of programs.
Class Mechanics: a description of the general workings of NCSSM Computer Science Classes.
Grading
Assessment and Grading: This course will include formal assessment through homework problems, tests, quizzes and a capstone design project, as well as informal assessment through in-class assignments. These assessments will determine student progress in achieving the desired objectives and outcomes for this course. Part of the participation grade is deterrmined by your progress using Coding Bat. Your grade for the course will be calculated as follows:
Grading Categories | |
---|---|
Participation | 15% |
Lab Practicals | 30% |
Reading Quizzes | 20% |
Programming Assignments/Homework | 35% |
Depending on the actual breakdown of assignments, these weightings may vary slightly. All classes have a local class guide; consult that for the definitive word.
Grading Scale:
A: 90 - 100
B: 80 - 89
C: 70 - 79
D: Below 69
Revised: 10 August 2016