Python Programming I ITCS1870

This course introduces students to the Python programming language. Students will write procedural and object-oriented applications. Student programs will include arithmetic operations, strings, functions, decisions and loops, and object-oriented constructs.

Correlated Learning Outcomes

  • AL-06 Investigate the use of random/pseudo random number generation in cybersecurity applications. [Applying]
  • AR-04 Examine the internal representation of non-numeric data. [Analyzing]
  • AR-05 Compare different methods for converting numerical data from one format to another. [Analyzing]
  • CYB-06 Examine ethical issues related to cybersecurity. [Analyzing]
  • CYB-11 Use the principles of secure design. [Applying]
  • CYB-12 Illustrate the security implications of relying on open design vs the secrecy of design. [Applying]
  • CYB-16 Explain the tradeoffs of developing a program in a type-safe language. [Understanding] See also PL-10.
  • CYB-17 Implement programs that properly handle exceptions and error conditions. [Applying] See also SDF-12.
  • CYB-21 Describe key terms in cryptology, including cryptography, cryptanalysis, cipher, cryptographic algorithm, and public key infrastructure. [Understanding]
  • CYB-22 Use a variety of ciphers to encrypt plaintext into ciphertext. [Applying]
  • IM-01 Contrast the difference between information and data. [Analyzing]
  • PL-01 Design a simple class hierarchy using superclasses, subclasses, and abstract classes. [Creating]
  • PL-02 Diagram control flow in a program using dynamic dispatch. [Applying]
  • PL-03 Use access and visibility modifiers to secure class data and methods. [Applying]
  • PL-04 Implement in code OOP constructs, including encapsulation, abstraction, inheritance, and polymorphism. [Applying]
  • PL-05 Implement algorithms which utilize immutable and mutable variables. [Applying]
  • PL-06 Contrast functional and object-oriented programming paradigms. [Analyzing]
  • PL-10 Explain the security implications of a type-safe language for software development. [Understanding]
  • SDF-01 Design an algorithm in a programming language to solve a simple problem. [Creating]
  • SDF-02 Use the techniques of decomposition to modularize a program. [Applying]
  • SDF-03 Compare multiple algorithms for a given problem. [Analyzing]
  • SDF-04 Create simple programs that use abstract data types (ADTs). [Creating]
  • SDF-06 Create programs which use defensive programming techniques, including input validation, type checking, and protection against buffer overflow. [Creating] See also CYB-15.
  • SDF-07 Create code in a programming language that includes primitive data types, references, variables, expressions, assignments, I/O, control structures, and functions. [Creating]
  • SDF-14 Analyze programming code that utilizes preconditions, postconditions, and invariants. [Analyzing]
  • SDF-15 Apply a variety of strategies to test and debug programs. [Applying]
  • SDF-16 Use an integrated development environment (IDE) to create, execute, test, and debug secure programs. [Applying]
  • SDF-17 Use standard libraries for a given programming language. [Applying]
  • SDF-18 Apply consistent documentation and program style standards. [Applying]
  • SP-07 Examine various ethics scenarios in computing. [Analyzing]
  • SP-08 Support the ethical responsibility of ensuring software correctness, reliability, and safety. [Evaluating]
  • SP-09 Compare professional codes of conduct from the ACM, IEEE Computer Society, and other organizations. [Analyzing]
  • SP-16 Use effective oral, written, electronic, and visual communication techniques with stakeholders. [Applying]
  • SP-17 Interpret the impact of both verbal and nonverbal cues during communication among team members. [Understanding]
  • SP-18 Develop technical artifacts. [Creating]