Bachelor Degree - School: Engineering
o Class: L-8 (Ministerial Decree No 270 of 2004)
o Course type: Bachelor's Degree
o Duration: 3 years
o Access type: Open with entry skills test
o School: Engineering
o Department: Civil Engineering and Computer Science Engineering
o Course code: H24
This Degree aims at training graduates who have already acquired knowledge and skills useful in technical and applicative professions, as they are a fundamental basis for the insights provided through a Master Degree in Computer Engineering.
Rather than being presented with specific computer technologies, students focus is on their ability to analyse and solve computer and engineering problems with a systematic and effective approach. To this end, graduates should master not only basic knowledge, but also specific skills on the following Computer Science issues:
methods (automata and logics of computing machinery, algorithms and programming languages, modelling for systems and computer networks, dynamic system analysis and control system synthesis); operational tools (installation, configuration, management of information systems based on the Internet and the Web, mobile computing systems and automation systems); applications (management, maintenance and development of information systems to manage further systems, e.g. civil, economic, social ones; social networks; information systems; automation systems for industrial processes; industrial and space robotics)
This Degree offers 2 curricula: ‘Online’ Computer Engineering, Robotics and Automation, Software and Web Systems.
Graduates can work in businesses, public administration, as freelancers and in consulting firms. They can: install, set up, manage and maintain communication networks, computing plants and systems at both distributed and mobile levels; shape, design and implement complex architectures and automatic systems; perform formal and vocational education activities in Computer Science; assist specialists in Informatics and Telematics research.
They can work in civil, economic, industrial, transport, energy, avionics, satellite, medical, environmental and land sectors.
Online curriculum website: inginformatica.uniroma2.it/laurea_triennale_online
Professor Vincenzo Grassi
Sig.ra Adele Marrese
Tel: +39 06 7259.7121
Capitolo 1: VECTOR SPACES 1.1 Definition of vector space and calculus in a vector space. 1.2 Examples: numerical spaces, spaces of matrices, geometric spaces, space of polynomials. 1.3 Concept of subspace, span, generators. 1.4 Linearly independent and linearly dependent system of vectors. 1.5 Lemma of Steinitz. Basis and dimension of a vector space. 1.6 Intersection and union of subspaces, Grassmann formula. Capitolo 2: MATRICES 2.1 Diagonal matrices, symmetrical, triangular. Point product of numerical vectors. Product of matrices. 2.2 The algebra of square matrices. Inverse matrix and transpose matrix. 2.3 Elementary operations on a matrix. Reduced matrix. The Gauss Algorithm. 2.4 Rank of a matrix. Theorem of the rank. Rank using elementary operations. 2.5 Determinant: development of Laplace, properties and calculus by elementary operations. 2.6 Rank using determinants. Theorem of Kronecker. 2.7 Explicit calculation of the inverse of a matrix: the classical adjoint matrix and the Gauss-Jordan Algorithm. Capitolo 3: LINEAR SYSTEMS 3.1 Linear systems and matrices. 3.2 Theorem and the rule of Cramer. 3.3 Compatible linear systems. Theorem of Rouche'-Capelli. 3.4 Equivalent systems, elementary operations on a linear system. 3.5 Free variables and parametric representation. 3.6 Homogeneous linear systems: parametric and cartesian representation of a subspace. 3.7 Associated homogeneous linear system. Capitolo 4: LINEAR MAPS 4.1 Coordinates in a vector space. The coordinates map. 4.2 Linear maps. Matrix of a linear map. Matrix of change of coordinates. Construction of linear maps. Correspondence between linear maps and matrices. 4.3 Structure of a linear map: kernel and image. Theorem of Dimension. 4.4 The algebra of endomorphisms. Substitution in a polynomial. Similar matrices. 4.5 Eigenvalues and eigenvectors of an endomorphism. The characteristic polynomial. Eigenspaces. Algorithm for a diagonalization of a matrix. Capitolo 5: THE JORDAN FORM 5.1 Generalities on polynomials. Fundamental Theorem of Algebra. 5.2 Block matrices and general properties. Invariant subspaces of an operator and block matrices. 5.3 Jordan blocks. String. The theorem on the Jordan canonical form of a operator. Nilpotent operators. Explicit calculation of a string base of an operator. Calculation of the canonical form without knowing a string basis. 5.4 Minimal polynomial. Theorem of Cayley-Hamilton. Equations in the algebra of matrices. Capitolo 6: LINEAR SYSTEMS OF DIFFERENTIAL EQUATIONS 6.1 Linear systems of differential equations. Associated homogeneous equation. The general solution. The Cauchy problem. 6.2 Explicit solution using the exponential of a matrix. Capitolo 7: QUADRATIC FORMS 7.1 Symmetric bilinear forms. Symmetric matrices. Quadratic forms. Gram matrix. Congruent matrices. 7.2 The Gauss-Lagrange Algorithm. Orthogonal bases in a pseudoeuclidean space. The law of inertia: index, signature and rank of a symmetric matrix. 7.3 Canonical form with respect to congruence. Definite forms, semi-definite and not-definite. Principal minor criterion. Criterion of Jacobi. 7.4 Euclidean spaces. Rule in Euclidean space. Cauchy-Schwarz inequality. Properties of Euclidean norm. Orthonormal bases. Algorithm of Gram-Schmidt. Orthogonal matrices. The group $O (2)$. 7.5 Fourier coefficient. Orthogonal projection on a line. Orthogonal complement of a line. 7.6 Outline on The Principal Axis Theorem and on Eigenvalues of a symmetric matrix.
The numbers of the paragraphs refer to the text " Elementi di Fisica - Meccanica e Termodinamica” di P. Mazzoldi, M. Nigro, C. Voci, Ed. EdiSES. Requirements of the course are the knowledge of vector algebra, trigonometry, differential and integral calculus fundamentals It is strongly suggested to read the Appendices B and C. It is also recommended to carefully read the examples on the book at every paragraph, which should be considered as solved exercises. SUMMARY Kinematics 1.1 Introduction. 2.1 Planar motion. Position and speed (in "polar velocity components" only eq. 2.4). 2.2 Acceleration in planar motion (in "Components of acceleration Cartesian" only the first and the last paragraphs). 2.5 Circular motion in space. 2.7 Some observations on the kinematics of the material point. 1.2 Rectilinear motion. 1.3 Speed in a straight line. 1.4 Acceleration in rectilinear motion. 1.5 Vertical motion of a body. 2.4 Parabolic motion. 1.6 Simple harmonic motion. 2.3 Circular motion (up to eq. 2.13 but including "vector notation" except eq. 2.18). Dynamics of a particle 3.1 Principle of inertia. Introduction to the concept of force. 3.2 Newton laws. 3.4 Resulting forces. Equilibrium. Support reactions. 3.5 Classification of forces. 3.6 Dynamic forces. 3.7 Gravity. 3.8 Friction force. 3.9 Inclined plane. 3.11 Viscous friction force. 1.7 Linear movement damped exponentially. 3.12 Centripetal forces. 3.14 Tension of the wires. 3.10 Elastic forces. 10.1 Recalling the properties already seen. 10.5 Summation of harmonic motions along orthogonal axes (reading). 10.6 Harmonic oscillator damped by a viscous force (reading). 10.7 Forced Harmonic Oscillator (reading). 3.13 Pendulum. 4.7 Angular momentum. Moment of force. (Except eq. 4.17). RELATIVE MOTIONS 5.1 Frames of Reference. Speed and relative acceleration. 5.2 inertial reference systems. Galilean relativity. 5.3 d Rectilinear translational. 5.4 Circular uniform motion. 5.5 Some comments (reading). Work and energy for the material point 3.3 Momentum. Impulse. 4.1 Work. Power. Kinetic energy. (Except. 4.1 eq). 4.2 Work of the weight force. 4.3 Work of an elastic force. 4.4 Work of the friction. 4.5 Conservative forces. Potential energy. 4.6 Conservation of mechanical energy. 10.3 harmonic oscillator energy. 4.7 Angular momentum. Moment of force. (Eq. 4.17). 4.8 Some observations on the particle dynamics. 11.1 Central forces. 11.2 The gravitational force. 11.5 Gravitational potential energy. (Except "Energy potential of a spherical mass"). 11.4 Gravitational Field. DYNAMICS OF MATERIAL POINTS SYSTEMS 6.1 Systems of material points. internal forces and external forces. 6.2 Centre of mass of a system of material points. Theorem of motion of the centre of mass. 7.2 Bodies with continuous mass distribution. Density. Position of the centre of mass. 6.3 Conservation of momentum. 8.1 Collisions between two material points. 8.2 Completely inelastic collision. 8.3 Elastic collision. 8.4 Inelastic collision. 6.4 Theorem of the angular momentum 6.5 Conservation of the angular momentum. 6.7 Koenig’s theorems. 6.10 Property of forces applied at different points. 6.6 Reference system of the centre of mass. RIGID BODIES 7.1 Definition of a rigid body. Basic properties. 7.11 Static equilibrium of a rigid body. 7.3 Motion of a rigid body. 7.4 Rotations around a fixed axis in an inertial reference system. (Except "no parallelism between L and ω, the precession of the angular momentum"). 7.5 Moment of inertia. 7.6 Huygens- Steiner theorem. 7.8 Rolling motion without slipping. 7.9 Angular Impulse. 7.10 Reading: conservation in the motion of a rigid body. WAVES The paragraphs numbers refer to the text "General Physics - Mechanics and Thermodynamics" by S. Focardi, Massa I., A. Uguzzoni, Ed. Ambrosiana. 11.1 Introduction. 11.2 Differential equation of the wave. 11.12 Intensity of sound waves. 11.3 Superimposition of waves. 11.4 Interference. 11.5 Standing waves. 11.6 Beats and group velocity. 11.9 Standing waves on a vibrating string. 11.19 Doppler Effect. 11.18 Diffraction. 11.16 Law of reflection. 11.17. Refraction. Thermometry and Calorimetry 12.1 Systems and thermodynamic states. 12.2 Thermodynamic equilibrium. Thermal equilibrium principle. 12.3 Definition of temperature. Thermometers. 13.1 Laws of the gases. Equation of state for ideal gases. (Only "Law isobaric Volta Gay-Lussac" and "Law isochoric Volta Gay-Lussac"). 13.2 Ideal gas thermometer at constant volume. 12.7 Calorimetry. 12.8 Isothermal processes. Phase changes. 12.4 Adiabatic systems. Joule's experiments. Heat. 12.9 Heat transfer. First law of thermodynamics 12.5 The first law of thermodynamics. Internal energy. 12.6 Thermodynamic transformations. Work and heat. 13.1 Gas Laws. Equation of state for ideal gases. 13.3 Gas transformations. Work. 13.4 Heat. Specific heats. 13.5 Internal energy of an ideal gas. 13.6 Study of some transformations. 13.7 Cyclic transformations. Carnot cycle. Second law of thermodynamics 14.1 Expressions of the second law of thermodynamics. 14.2 Reversibility and irreversibility. 14.3 Carnot's theorem. 14.5 Clausius’s theorem. 14.6 The entropy function. 14.7 The principle of the increase of entropy. 14.8 The calculation of entropy changes. 14.11 Conclusions on the entropy.
Graphical representation of systems of equations: block diagrams, flow graphs, and their simplification rules. Modelling of electric/hydraulic/mechanical circuits by using Bond Graphs: power exchange, the concepts of ports and bonds, components. Rules for converting a circuit into a bond graph into a block diagram and differential equations. Simple models of discrete time and hybrid systems. Introduction to Matlab/Simulink. Coding and debugging of simple programs. Numerical simulation of differential equations, difference equations, and dynamical systems. Symbolic computation of the response of simple dynamic systems, and manipulation of the response of simple systems and the relative equations. Introduction to the Arduino platform. Programming via the Arduino IDE and via Matlab/Simulink. Construction of simple circuits e mechanisms, and their control via Arduino. Visualization of data in Matlab/Simulink.
Mathematical Preliminaries: relations, functions. Chomsky Hierarchy. Regular Languages, regular expressions, deterministic and nondeterministic finite automata. Parsing of regular languages. Context-free languages and deterministic and nondeterministic pushdown automata. Parsing of context-free languages: Cocke-Younger-Kasami parser, chop-expand parser, LL(1) parsers, LR(0) parsers, LR(1) parsers, LALR(1) parsers. Turing Machines and type 0 grammars and languages. Type 1 grammars and languages. Decidable, undecidable, and semidecidable problems. Knuth-Morris-Pratt pattern matcher. Hoare triples for partial correctness.
Computing models; algorithmic complexity and examples. Basic data types: lists, queues, stacks; Tree data structures: search trees, binary trees, balanced trees; Sorting methods and their complexity; Design and analysis of algorithms; Set representation: hash tables, priority queues; Graphs: representation, basic algorithms (shortest paths, spanning trees), connected components, flux and matching problems. Centrality measures.
- Electrostatics: Electric charge and Coulomb's law, continous charge distribution, conservation of charge. The electric field: the electric field of point charges, the electric field of a continous charge distribution, electric field lines, the dipole Electric potential energy and potential: Electric potential energy, electric potential, potential from the field and viceversa, potential from point charges, potential from a continous charge distribution, equipotential surfaces. Gauss' law: some applications of the Gauss' law. Capacitance: capacitors, calculating the capacitance, capacitors in series and parallel, enery storage in an electric field. Ohm's law: metals and insulators, a microscopic model, resistivity and resistance, Ohm's law, resistors in series and parallel, disiËpation on a resistance. Magnetic field: Magnetic Interactions and magnetic poles - Magnetic force on a moving Charge – Charges in circular motion - Magnetic Force on a current wire. Magnetic Dipole - Equivalence between a coil and a Magnet - Torque on a circular current Currents generated by magnetic fields: Magnetic field generated by a moving charge - Magnetic field generated by currents - Parallel currents - Magnetic field generated by a solenoid – Ampere law - Magnetic field energy Faraday Law: Faraday Experiment - Faraday-Neumann-Lenz Law - Induced Electric Fields Inductance: Induction Concept - LR Circuits Maxwell equations and electromagnetic waves: Basic equations of electromagnetism in the integral form - displacement current - Maxwell equations in integral form - D'Alembert equation and electromagnetic waves
Integrazion of functions of many variables Curvilinear integrals of the first and second type Basics of complex analysis Integrals solvable by residus Laplace transform Linear differential equations of the first and second order with constant coefficients Systems of linear differential equations of the first and second order with constant coefficients
Introduction. Computer organization and Design. Structures and functionality. Abstraction layers. Technology to build Processors and Memory. Historical perspective. Representation of the information. Representation of the integer.Representation in floating point (IEEE 754). Computer arithmetic. Character representation. Ascii - BCD. The C language. Fundamentals of C. Operators and espressione. Data I/O.Editing and execution of a program written in C-language. The control. Functions. Procedures. Program structures. Array. Pointer. Dynamic Memory management. The MIPS Instruction SET. Addressing modes. R- instructions, I-instructions and J instructions. The assembly directives. The control instructions. Pseudo-instructions. Risc vs ciac architectures. Digital networks. Combinatorial networks. BoolÕs Algebra. Design of combinatoria Networks. Sequential Networks, asynchronous and synchronous.. Design pf Sequential Networks. Mealy and Moore machines. Design of an ALU Memory. Organization and Architecture. Cache Memory, Main Memory. Read and write in RAM. Hierarchy of memory. The processor: Data Path and Control. Design of a processor: single_sycle and multi_cycle. The control as combinatorial network and sequential machine respectively. Elements of Microprogramming. Study case: The MIPS. The pipeline. The control for pipelined CPU, the Hazard problem. Branch prediction, Data Hazard. Hierarchy of Memory, Virtual memory, Virtual machine, Cache control and coherence. I/O Subsystems. I/O Devices. Disk, keyboard flash memories, mouse, monitors and special devices. RAID Disk. Performance measures. Simple relations. Benchmarks.
Introduction to operating systems Recall on the organization of computer systems Operating system objectives Mono-programmed Batch Systems Multi-programmed Batch Systems Time-sharing systems Architecture of UNIX/Windows Systems Execution environments Basic aspects of software security Processes and Threads Process Concepts and process states Multi-programming and swapping Process control structures Image of a process Job lists and scheduling Processes on UNIX/Windows Systems Multi-Threading Supports Threads in UNIX/Windows systems Scheduling the CPU Reference metrics Classic scheduling algorithms Scheduling on UNIX/Windows systems Virtual File System and I/O Basic concepts File allocation and access methods Implementation of the Virtual File system Management of I/O Buffers Access permissions Memory management Address binding Fixed and variable partitions Pagination and segmentation Virtual memory Shared memory and file-mapping Memory management on UNIX/Windows systems Synchronization Spinlocks, mutexes, and semaphores Synchronization support in UNIX/Windows systems Events Synchronous and asynchronous event reporting and handling mechanisms Event-management in UNIX/Windows systems System Services for Network programming Communication protocols stack Sockets on UNIX/Windows systems
– Data Base Systems: fundamental properties – Data Base design: Conceptual design Entity - Relationship model Logical design Relational model Relational algebra Normalization SQL Physical design physical organization and query management transaction management
1. Fundamental definitions in graph theory. Connectivity, cycles, trees, Eulerian circuits. Bipartite graphs and coloring problems. 2. Optimality conditions for the minimum spanning tree and the shortest path problems. The maximum flow and the minimum cut problems. Matchings in bipartite graphs. 3. Counting techniques, pemutations, combinations, pigeon-hole principle. Proofs by induction. 4. Linear programming. The simplex method. Duality theory and optimality conditions. Sensitivity analysis. 5. Integer Linear programming. Branch and bound. 6. Selected applications. Railway scheduling and planning. Route planning for a food delivery company. 7. Tutorial for AMPL (A Mathematical Programming Language).
1) Structural properties: reachability, controllability, observability, reconstructability. 2) Eigenvalue assignment through static state-feedback (Mitter formula, Ackermann formula). 3) State observer design and dynamic output feedback. 4) Elements of realization theory. 5) Youla-Kucera parametrization of stabilizing controllers (the SISO case).
Introduction to mobile devices Android operating system Mobile operating systems Life cycle of an App Android SDK The android development environment Java Dev Kit Android Events management in a mobile environment Basic Android libraries App development, life cycle Localization of an app File management 2D graphics Management of hardware equipment Thread and AsyncTask Activity and fragment Extension of basic classes Database in the mobile environment Memory management Energy management The Android store
– Data Base Systems: fundamental properties – Data Base design: Conceptual design Entity - Relationship model Logical design Relational model Relational algebra Normalization SQL Physical design physical organization and query management transaction management
Course schedule 1 Introduction. Objectives, content, didactic method, assessment. 2 The technological entrepreneur. Readings: Text book chapter 1 3 Evaluating opportunities for new technology ventures. Readings: Text book chapter 2. 4 Presentation by the instructor of the group project. 5 The organizational vision. Readings: Text book chapter 3. 6 Case study Johnson & Johnson. 7 Internal analysis. Distinctive competencies. Readings: Text book chapter 4 (4.1 - 4.3). 8 External analysis. Critical success factors. Readings: Text book chapter 4 (4.4 - 4.5). 9 Case study. Crown Cork & Seal. 10 24/10/2019 The different approaches to competitive strategy. Readings: Text book chapter 4 (4.6 – 4.9). Articolo: How to Develop a Great Digital Strategy, Sloan Management Review, 8 Nov. 2016. 11 Project work Students work on the group project 12 Project work Students work on the group project 13 Case study. Nouvelles Frontieres. 14 Corporate strategy. The strategic planning process. Readings: Text book chapter 7. 15 The marketing plan Readings: Text book chapter 11. Ford D. e Ryan C., Taking Technology to Market, Harvard Business Review, 1981. 16 The endogeneous determinants of technological innovation. Readings: Roberts E., Managing Invention and Innovation: What We've Learned, Research-Technology Management, 1988. Podcast: The Essential of Innovation http://www.mckinsey.com//Insights/Innovation/The_essentials_of_innovation?cid=other-eml-alt-mip-mck-oth-1511 17 Case study The Sojourner at Simmons. 18 The impact of technological innovation on competitive forces. Technology strategy Readings: Text book chapter. 5 19 Case study Cray Research Inc. 20 Implementation of technology strategy. The make or buy decision: Make Readings: Text book chapter. 9 21 Implementation of technology strategy. The make or buy decision: Buy.. Readings: Text book chapter. 10 22 Case study Emi Ltd (A). 23 Project work Students work on the group project 24 Technological leadership and competitive advantage. Readings: Teece D. J., Capturing Value from Knowledge Assets, California Management Review, 1998. 25 Case study Emi Ltd (B). 26 Presentations by the students I) How to finance a start-up. Text book chapter. 18 II) How to convince investors. Text book chapter. 19 III) The group project.
Part one Introduction to Computer Networks. Access and Core networkS. Transmission media. Delay & loss in packet-switched networks. Protocols Layers and service models. Internet backbone Principles of application layer protocols. The World Wide Web: HTTP. File Transfer: FTP. E-mail on the Internet. DNS: the directory service of the Internet. TRansport layer principles. Multiplexing and demultiplexing. UDP protocol. Reliable data transfer: principles. Congestion control: principles. TCP Protocols. Network service models. Routing principles. Hierarchical routing. IP protocol. Routing in the Internet. Router Architecture. The link layer: introduction and services. Multiple Access Protocols and LANs. LAN Addresses and ARP. Ethernet network. Hub, Bridge and Switch. LAN 802.11. Part two Programming network applications. Socket. Connection-oriented and connectionless Applications. Multiplexing / O. Examples of Applications. Software components of the Web: Web Client; Web Server; Web Proxy. HTTP / 1.1 protocol. General characteristics and evolution of the protocol. Methods, headers and response codes. Mechanisms for the optimization of the network bandwidth. Connection Management: persistent connections and pipelining. Web Server Architecture and components. Software architectures. Management of static resources. The Apache Web server. Technologies for the generation of dynamic resources. Logical levels of a Web-based service. Multi-tier architectures. Overview of the main technologies for middle tier and their evolution: CGI, FastCGI, API server, Java servlets, PHP, JSP. Apache Tomcat.
Computational Science (CN). CN/Interactive Visualization - Use of APIs for developing user interfaces using standard input components such as menus, sliders, and buttons. Graphics and Visualization (GV). GV/Fundamental Concepts - Media applications including user interfaces - Use of standard APIs for the construction of UIs and display of standard media formats (see CN) Platform-Based Development (PBD). PBD/Web Platforms - Web programming languages (HTML5, Java Script, CSS) - Web platform constraints. Programming Languages (PL). PL/Object-Oriented Programming - Object-oriented design o Decomposition into objects carrying state and having behavior o Class-hierarchy design for modeling - Definition of classes: fields, methods, and constructors - Subclasses, inheritance, and method overriding - Dynamic dispatch: definition of method-call - Subtyping o Subtype polymorphism; implicit upcasts in typed languages o Notion of behavioral replacement: subtypes acting lik! e supertypes o Relationship between subtyping and inheritance - Object-oriented idioms for encapsulation o Privacy and visibility of class members o Interfaces revealing only method signatures o Abstract base classes - Using collection classes, iterators, and other common library components - PL/Event-Driven and Reactive Programming - Events and event handlers - Canonical uses such as GUIs, servers - Using a reactive framework o Defining event handlers/listeners - Externally-generated events and program-generated events - Separation of model, view, and controller. PL/Basic Type Systems - A type as a set of values together with a set of operations o From Primitive types (e.g., numbers, Booleans) to Compound types built from other types (e.g., records, unions, arrays, lists, functions, references) - Association of types to variables, arguments, results, and fields - Type safety and errors caused by using values inconsistently given their intended types - Goals and limitati! ons of static typing - Generic types (parametric polymorphism) - Complementary benefits of static and dynamic typing PL/Language Translation and Execution - Interpretation vs. compilation to native code vs. compilation to portable intermediate representation - Language translation pipeline: parsing, optional type-checking, translation, linking, execution o Execution as native code or within a virtual machine o Alternatives like dynamic loading and dynamic (or -just-in-time -) code generation - Run-time representation of core language constructs such as objects (method tables) - Run-time layout of memory: call-stack, heap, static data o Implementing loops, recursion, and tail calls - Memory management o Manual memory management: allocating, de-allocating, and reusing heap memory o Automated memory management: garbage collection as an automated technique using the notion of reachability.PL/Runtime Systems - Dynamic memory management approaches and techniques - Data layout for objects and activation records - Other common features of virtual mach! ines, such as class loading, threads, and security. PL/Advanced Programming Constructs - Control Abstractions: Exception Handling - Object-oriented abstractions: Multiple inheritance - Meta-classing. PL/Concurrency and Parallelism - Constructs for thread-shared variables and shared-memory synchronization - Models for passing messages between sequential processes - Thread states and state diagrams - Structures (ready list, i/o blocked list, condition blocked list, and so forth) - The role of locks, monitors, read-writers, and so forth. PL/Type Systems - Type checking - Static overloading. Software Development Fundamentals (SDF). SDF/Development Methods - Program comprehension - Program correctness o Types of errors (syntax, logic, run-time) o The concept of a specification o Defensive programming (exception handling) o Code reviews o Testing fundamentals - Structural and behavioral models of software designs - Design patterns - Software architecture concepts and standard ar! chitectures (e.g. client-server, n-layer, pipes-and-filters). SE/Software Construction - Coding practices: techniques, idioms/patterns, mechanisms for building quality programs o Using exception handling mechanisms. SE/Software Verification and Validation - Verification and validation concepts - Inspections, reviews, audits - Testing o Unit, integration, validation, and system testing o Black-box and white-box testing techniques o Regression testing and test automation - Defect tracking